Abstract

A program development environment based on a high-level semantic representation of programs rather than a textual representation was investigated. Several programming languages are supported through the use of language parameterized tools. These tools are knowledgeable about each language in the environment; the tools are driven by a set of language dependent tables. Each programming language is described using a formal notation known as an annotated abstract syntax description. The description includes information about the structure of program trees for the language, the semantics of the various node types in the language, and prettyprinting rules for the language. A meta-tool was developed which translates the annotated abstract syntax (AAS) description into compact tables that can be used efficiently by language parameterized tools. The primary tool built was a language parameterized structure editor, driven by language dependent tables. The editor was parameterized into an Ada structure editor using an abstract syntax description for Ada, and tables produced by the AAS translator. The ability to parameterize the structure editor to additional languages was demonstrated by building a Pascal structure editor. It took two (summer student) days to write a complete Pascal abstract syntax description and bring up a fully functional Pascal editor. In addition to being language parameterized, the structure editor supports top-down development, it lets the user view the program at various levels of detail, and it provides interactive language consulting.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

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.