Writes Compilers Asa Hobby

At my school (http://www.cs.millersville.edu/) TuringMachines, push down automata, and FiniteAutomata (including RegularExpressions) are covered as a sophmore in a class on computational models that is a required class for all majors. Most people didn't seem to get what the point was unless they had already had experience writing parsers (there was one sophmore in my class who WritesCompilersAsaHobby).

CarletonUniversity introduced this requirement the year after I entered. -- SunirShah

See also GrokTheCompiler.

How many of us also write compilers as a hobby? I used to. -- DavidBrantley

By the standards I'm seeing discussed here, one might assert that even when a programmer is creating a new language, they are not necessarily a LanguageDesigner. However, it would seem to me that there is a ContinuumOfOriginality, that is to say, that even derivative or synthetic works often have elements of creativity (if not necessarily innovation). This can be seen in a project I am involved in called Basis, a collaborative effort to solve the reccurring requests for a systems-programming language with a QBasic-like syntax (it is also meant as a demostration of compiler programming, which is my own main involvement in it; I had simultaneously proposed similar projects for Lisp and Smalltalk like system languages, which fell flat). While I and a handful of others devised the grammar it will use, it is wholly derivative of earlier languages of the type, by intention (indeed, some suggested 'improvements' which I proposed were violently rejected as being too un-Basic-like). Still, there were some notable differences from the dialects which it is based upon, and it does not quite match any one of them. To what degree is this design, and to what degree is this 'writing'? -- JayOsako

It falls in two categories, design of the language, and design and implementation of the compiler/interpreter. If the language design is 100% provided, e.g. by ANSI standard, then there's no room left for further language design. If the language design is 80% provided via "make it like QBasic, but also add in some features to support XYZ", then there's room for 20% to be design. Similarly with the compiler; even if the language was 100% designed for you, you may (or may not) design the language implementation. If you take an existing compiler, and change just its grammar, that's not much in the way of design. If you start from scratch, you have to design subsystems (like for tracking types) and classes/data structures/methods.

In short, design is novel or customized solution to a set of problems, either in the language, its implementation, or both.

If you have this infliction, then perhaps try building an interpreter for TopsQueryLanguage.

EditText of this page (last edited August 12, 2007) or FindPage with title or text search