Abstract
Research in formal description of programming languages over the past four decades has led to some significant achievements. These include formal syntax and semantics for complete major programming languages, and theoretical foundations for novel features that might be included in future languages. Nevertheless, to give a completely formal, validated description of any significant programming language using the conventional frameworks remains an immense effort, disproportionate to its perceived benefits. Our diagnosis of the causes of this disappointing situation highlights two major deficiencies in the pragmatic aspects of formal language descriptions in conventional frameworks: lack of reusable components, and poor tool support. Part of the proposed remedy is a radical shift to a novel component-based paradigm for the development of complete language descriptions, based on simple interfaces between descriptions of syntactic and semantic aspects, and employing frameworks that allow independent description of individual programming constructs. The introduction of a language-independent notation for common programming constructs maximises the reusability of components. Tool support for component-based language description is being developed using the ASF+SDF Meta-Environment; the aim is to provide an efficient component-based workbench for use in design and implementation of future programming languages, accompanied by an online repository for validated formal descriptions of programming constructs and languages.
Highlights
Research in formal description of programming languages over the past four decades has led to some significant achievements
The syntax of a language determines the set of well-formed programs and their hierarchical structure; static semantics involves checking that programs are well-typed; and dynamic semantics specifies the observable effect of running a program
The static semantics is applied to the abstract syntax tree of the program, and determines whether the program is statically correct; if so, the dynamic semantics is applied to the same tree
Summary
Research in formal description of programming languages over the past four decades has led to some significant achievements. Part of the proposed remedy involves a radical shift to a novel component-based paradigm for the development of complete language descriptions [25] This paradigm is based on simple interfaces between descriptions of syntactic and semantic aspects, and employs frameworks that allow independent description of individual programming constructs, such as Modular SOS [24, 27] and action semantics [23]. We are developing tool support for component-based language descriptions using the ASF+SDF Meta-Environment [2]; our aims are to provide an efficient component-based workbench for use in design and implementation of future programming languages, and to establish an online repository for validated formal descriptions of programming constructs and languages.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.