On the scope of static checking in definitional languages

ACM '84 Pub Date : 1900-01-01 DOI:10.1145/800171.809622
B. Szymanski, N. Prywes, E. Lock, A. Pnueli
{"title":"On the scope of static checking in definitional languages","authors":"B. Szymanski, N. Prywes, E. Lock, A. Pnueli","doi":"10.1145/800171.809622","DOIUrl":null,"url":null,"abstract":"The paper concerns the use in software development of a class of very high level languages characterized as definitional, where a specification of a program consists of assertions expressed as conditional equations. As compared to logic programming, where assertion are expressed in the form of Horn clauses, definitional languages are more amenable to efficient compilation. Also, use of equations is a natural way of expressing mathematical models in science, engineering and economics, where computer simulation of such models is often required. Finally, definitional languages are well suited for programming dataflow machines, another important building block in a Fifth Generation Project. Thus, in many applications definitional languages are preferred choice for programming new generation computers.\n In using definitional languages to develop programs, a user relies heavily on static analysis during the compilation stage of development, as compared to the traditional practice of relying much more extensively on dynamic analysis performed by execution of the program with test data. As this seems to be the common trend in development of all software tools for Fifth Generation Computers, the limits of static checking are investigated for definitional languages in this paper.\n A comprehensive approach to selecting and implementing automatic checks in the compiler is proposed. The checking methodology consists of representing the specification of a program by a directed graph and propagating various attributes throughout the entire graph. The choice of attributes and checks depends greatly on the types of errors that users are prone to make. This approach is described in the context of the MODEL language and compiler. The paper reports also on an experiment to evaluate the effectiveness of various checking methods incorporated in the compiler and on reliance of static vs dynamic methods of checking. The types of checking constructed were: syntax analysis, ambiguity in naming, completeness of definitions, data type consistency, dimensionality (corresponds to nesting of loops), ranges of dimensions (corresponds to loop terminations) and circular logic.","PeriodicalId":218138,"journal":{"name":"ACM '84","volume":" 9","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM '84","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/800171.809622","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10

Abstract

The paper concerns the use in software development of a class of very high level languages characterized as definitional, where a specification of a program consists of assertions expressed as conditional equations. As compared to logic programming, where assertion are expressed in the form of Horn clauses, definitional languages are more amenable to efficient compilation. Also, use of equations is a natural way of expressing mathematical models in science, engineering and economics, where computer simulation of such models is often required. Finally, definitional languages are well suited for programming dataflow machines, another important building block in a Fifth Generation Project. Thus, in many applications definitional languages are preferred choice for programming new generation computers. In using definitional languages to develop programs, a user relies heavily on static analysis during the compilation stage of development, as compared to the traditional practice of relying much more extensively on dynamic analysis performed by execution of the program with test data. As this seems to be the common trend in development of all software tools for Fifth Generation Computers, the limits of static checking are investigated for definitional languages in this paper. A comprehensive approach to selecting and implementing automatic checks in the compiler is proposed. The checking methodology consists of representing the specification of a program by a directed graph and propagating various attributes throughout the entire graph. The choice of attributes and checks depends greatly on the types of errors that users are prone to make. This approach is described in the context of the MODEL language and compiler. The paper reports also on an experiment to evaluate the effectiveness of various checking methods incorporated in the compiler and on reliance of static vs dynamic methods of checking. The types of checking constructed were: syntax analysis, ambiguity in naming, completeness of definitions, data type consistency, dimensionality (corresponds to nesting of loops), ranges of dimensions (corresponds to loop terminations) and circular logic.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
论定义语言中静态检查的作用范围
本文关注的是在软件开发中使用一类非常高级的语言,其特征是定义的,其中程序的规范由表示为条件方程的断言组成。与逻辑编程(断言以Horn子句的形式表示)相比,定义语言更易于高效编译。此外,在科学、工程和经济学中,使用方程是表达数学模型的一种自然方式,在这些领域中经常需要对这些模型进行计算机模拟。最后,定义语言非常适合编程数据流机器,这是第五代项目中的另一个重要构建块。因此,在许多应用程序中,定义语言是新一代计算机编程的首选。在使用定义语言开发程序时,用户在开发的编译阶段严重依赖于静态分析,而传统的实践则更广泛地依赖于通过使用测试数据执行程序来执行的动态分析。由于这似乎是第五代计算机所有软件工具发展的共同趋势,本文研究了定义语言的静态检查的局限性。提出了一种在编译器中选择和实现自动检查的综合方法。检查方法包括用有向图表示程序的规范,并在整个图中传播各种属性。属性和检查的选择在很大程度上取决于用户容易犯的错误类型。这种方法是在MODEL语言和编译器的上下文中描述的。本文还报道了一个实验,以评估编译器中包含的各种检查方法的有效性,以及静态检查方法与动态检查方法的依赖关系。所构建的检查类型有:语法分析、命名中的歧义、定义的完整性、数据类型一致性、维度(对应于循环嵌套)、维度范围(对应于循环终止)和循环逻辑。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Beyond the data processing horizon The IEEE Software Engineering standards process PVS - design for a practical verification system A national perspective on computer security AFIPS secondary education curriculum in information technology
×
引用
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