4 ms·
You'd be surprised how many different things can be represented as "compilers" (i.e., as sequences of transforms of some languages). Starting from the relativel
by sklogic 12y ago
You'd be surprised how many different things can be represented as "compilers" (i.e., as sequences of transforms of some languages). Starting from the relatively obvious things like computer algebra systems, CADs, CAE, and going into unexpected areas like even CRUD and computer games.
tl;dr: side effects are overrated.
- szabba 12y agoCould you expand upon this?
- sklogic 12y agoSure. Take a look at all the mathematical theories and models out there. They're all languages, and solving problems within a framework of any given mathematical theory is pretty similar to a process of compilation - a source language should be transformed into another language in which the solution can be "executed". Let's take CAD as an example. We've got a source language: a constructive solid geometry, for simplicity. Pretty much everything a CAD does boils down to various transforms of this language - into an optimised octree for rendering purposes, into G-code slices for production, into, say, SVG for blueprints, etc. CRUD stuff boils down to transforms between different semantic domains - a relational structure at one end and workflow graphs and document trees on another. It's really hard to come up with any practically important problem domain which would not benefit from being represented in terms of languages and transforms.