Abstract syntax based programming environments

D. B. Leblang
{"title":"Abstract syntax based programming environments","authors":"D. B. Leblang","doi":"10.1145/3304133.3304160","DOIUrl":null,"url":null,"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.","PeriodicalId":304626,"journal":{"name":"Proceedings of the AdaTEC Conference on Ada","volume":"37 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1982-10-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the AdaTEC Conference on Ada","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3304133.3304160","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
基于抽象语法的编程环境
研究了一种基于程序的高级语义表示而非文本表示的程序开发环境。通过使用语言参数化工具支持多种编程语言。这些工具了解环境中的每种语言;这些工具由一组与语言相关的表驱动。每种编程语言都使用一种称为带注释的抽象语法描述的形式化符号来描述。该描述包括有关该语言的程序树结构、该语言中各种节点类型的语义以及该语言的漂亮打印规则的信息。开发了一种元工具,可以将注释抽象语法(AAS)描述转换为紧凑的表,以便语言参数化工具有效地使用。构建的主要工具是由语言相关表驱动的语言参数化结构编辑器。使用Ada的抽象语法描述和AAS转换器生成的表,将编辑器参数化为Ada结构编辑器。通过构建Pascal结构编辑器,演示了将结构编辑器参数化为其他语言的能力。写一个完整的Pascal抽象语法描述和一个功能齐全的Pascal编辑器花了两天时间(暑期学生)。除了语言参数化之外,结构编辑器还支持自顶向下的开发,它允许用户在各个细节级别查看程序,并提供交互式语言咨询。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Design and implementation in Ada of a runtime task supervisor Lolita: a low level intermediate language for Ada Session details: Tools Comparative efficiency of different implementations of the Ada rendezvous Abstract syntax based programming environments
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1