【24h】

On the scope of static checking in definitional languages

机译:关于定义语言中的静态检查的范围

获取原文
获取原文并翻译 | 示例

摘要

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.

rn

In using definitional languages to develop programs, a user relies heavily on static analysis during the compilation stage of development, as compared to the traditionalpractice 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.

rn

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.

机译:

本文涉及一类称为定义的非常高级的语言在软件开发中的使用,其中程序的规范由表示为条件方程的断言组成。与以Horn子句形式表示断言的逻辑编程相比,定义语言更适合有效编译。同样,方程式的使用是在科学,工程和经济学中表达数学模型的一种自然方法,在这种情况下,经常需要对这些模型进行计算机模拟。最后,定义语言非常适合对数据流机器进行编程,这是第五代项目中的另一个重要组成部分。因此,在许多应用程序中,定义语言是用于编程新一代计算机的首选。 rn

在使用定义语言开发程序时,与开发过程相比,用户在开发的编译阶段严重依赖静态分析。传统的做法是更广泛地依赖于通过执行带有测试数据的程序来执行的动态分析。由于这似乎是第五代计算机所有软件工具开发的共同趋势,因此本文对定义语言的静态检查的限制进行了研究。 rn

选择和实现自动检查的综合方法在编译器中提出。检查方法包括用有向图表示程序的规范,并在整个图上传播各种属性。属性和检查的选择在很大程度上取决于用户容易犯的错误的类型。在MODEL语言和编译器的上下文中描述了这种方法。该论文还报告了一个评估编译器中各种检查方法的有效性的实验,以及对静态和动态检查方法的依赖。构造的检查类型为:语法分析,命名歧义,定义的完整性,数据类型一致性,维度(对应于循环嵌套),维度范围(对应于循环终止)和循环逻辑。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号