Formal Semantics Based Translator Generation and Tool Development in Practice
2009 (English)In: Proceedings of 20th Australian Software Engineering Conference (ASWEC 2009), IEEE Computer Society, 2009, 256-266 p.Conference paper (Refereed)
In this paper we report on a long-term research effort to develop and use efficient language implementation generators in practice. The generator is applied to a number of different languages, some of which are used for projects in industry. The used formal specification style is operational semantics, primarily in the form called natural semantics, represented and supported by a meta-language and tool called the relational meta language (RML), which can generate efficient implementations in C, on par with hand-implemented code. Generating implementations from formal specifications are assumed to give advantages such as: high level descriptions, higher degree of correctness, and consistency between specification and implementation. To what extent can this be realized in practice? Does it scale to large language implementations? To answer some of these questions we have developed specifications of a range of languages: imperative, functional, object-oriented (Java), and equation-based (Modelica). The size of specifications range from half a page to large specifications of 60 000 lines. It turns out to be possible to generate efficient compilers, also for large languages. However, the performance of the generator tool and the user support of the development environment become increasingly important for large specifications. To satisfy such user needs the speed of the generator was increased a factor of ten to reduce turn-around time, and an Eclipse plug-in including a debugger were developed. For very large specifications, the structuring and modularity of the specification itself also become essential for performance and maintainability.
Place, publisher, year, edition, pages
IEEE Computer Society, 2009. 256-266 p.
, Australian Software Engineering Conference, ISSN 1530-0803
IdentifiersURN: urn:nbn:se:kth:diva-163782DOI: 10.1109/ASWEC.2009.46ISI: 000268134000027ScopusID: 2-s2.0-70349493342ISBN: 978-0-7695-3599-9OAI: oai:DiVA.org:kth-163782DiVA: diva2:803867
2009 Australian Software Engineering Conference, ASWEC 2009; Gold Coast; Australia; 14 April 2009 through 17 April 2009
QC 201504202009-10-132015-04-122016-06-13Bibliographically approved