This means that the form (the syntax and its resonance with the domain expert's concepts) and context (for example, the spreadsheet presentation of Visicalc) are vitally important to the success of a DSL.The rules for writing correct programs are often called the concrete syntax; and it has its own rules of composition just as the abstract syntax does.
But this guide was created to help you navigate your way through all those adjectives and shed the only light you’ll ever need on an otherwise confusing, strenuous experience.Something Old A compiler runs through a number of phases in processing an input language program: The two main tool-sets I know of to help with compiler construction are the LEX/YACC pair from UNIX and ANTLR.Both of these help with the lexical and parsing phase, and use a specification of the syntax/grammar to do their work.We're interested in code generators, but the regular expression handler in my editor is interpreted; the same AST works equally well.Each node in the AST is an instance of a class, with qualifying attributes (e.g.Back then, it was practically unheard of to do this.
These days, 'code generation' is so well established that Wikipedia has a new meaning for it - i.e.
In computing terms, many of the ideas about compilers are not old - they're positively ancient.
Descriptions of syntax still derive from BNF (Backus Normal/Naur Form), dating back to the 1950's; parsing techniques were regularized in the 1960s. Now, if we're fashionably up-to-date, we'll shun general-purpose programming languages ('GPLs') like Java or C# and do development by creating a model or writing a program in a Domain Specific Language ('DSL'). Let's look at what happens in language terms when we use a DSL, taking regular expressions as an example.
I'm going to start by drilling down into old "code generation" and compare it relationship to DSLs and modelling ... Using this common basis, I'll explain the reason behind the recent fashion for "XML with everything" and the de-facto standard approach to defining languages in XML.
Finally, I will actually describe the first steps in code generation.
Code Generation for Dummies Matthew Fowler New Technology / enterprise, When I was a lad, code generation referred to the final phase of a compiler.