ProgGen and extensibility
After my first post about ProgGen (see here), I realised one of the reasons of power of that component of the ModelCVS framework - not only does the parser that APG have constructed allow code to be understood, but the recognition that the elements of any language that are used in any particular application are the ones that are important. That is, many languages have extensive grammars, not all of which are used in any given application. If a source application uses only 60% of the grammar, that is all that is required to be understood by the parser – not the remaining 40% – therefore, the parser can be constructed quicker that if the whole language was required.
Following on from this, if means that if a new language is required to be targeted for parsing, and standardised into a metamodel, it will limit the amount of work that is needed to initially develop the parser, and therefore produce results quickly while the more esoteric parts of the language grammer can be worked on.
The real point here is that the ModelCVS framework works with a set of interlocking standards at many levels. Output from the parsers is NOT the target language, but a description of the semantics of the source, which can then be forward engineered in many directions – UML, a target language, documentation or others…..)
