Language/Compiler Front Ends

Semantic Designs offers predefined language front ends ("domains") to enable the construction of custom compilers, analysis tools, or source transformation tools, based on first-class infrastructure (DMS) for implementing those custom tools.

SD believes that it has more language front ends than any other organization on Earth.

The list of language modules includes:

If your language or a specific dialect is not in this list, it can be defined straightforwardly to DMS. Semantic Designs is also willing to define other front ends dependent on market scale.

Typical Front End Features

  • Full lexical analysis, including reading source files in ASCII (ISO8859-1) or UNICODE
    • Conversion of literal values (numbers, escaped strings) into native values to enable easy computation over literal values
    • Literal strings represented internally in UNICODE to support 16-bit characters
    • Preprocessor support for those languages requiring it
  • Explicit grammars based directly on standards documents
  • Automatic construction of complete abstract syntax tree
    • Capture of comments and formats (shape) of literal values
    • Ability to parse tens of thousands of files and millions of lines into same workspace, enabling interprocedural and cross-file analysis/transformation
    • Ability to parse different languages into same workspace, enabling cross-language analysis/transformation
  • Complete support for manipulating trees
    • Full procedural API to visit/query/update/construct syntax trees
    • Full source regneration by prettyprinting and/or fidelity printing of syntax trees with comments and lexical formats
    • Automatic construction of source-to-source transformation system
    • Ability to define custom attribute-grammar-based analyzers
  • Available as source code to enable complete customization
    • Means to manage multiple language dialects with highly shared cores
  • Robustness due to careful testing and application across multiple customers

Many of these facilities come as a consistent consequence of the front ends being built to top of DMS.

See specific tools for specific languages.

For more information:    Follow us at Twitter: @SemanticDesigns

Language/Compiler Front Ends