首页> 外文会议>International conference on Software engineering >Transformation techniques; constructive or destructive? (Panel Session)
【24h】

Transformation techniques; constructive or destructive? (Panel Session)

机译:转换技术;建设性还是破坏性的? (小组会议)

获取原文

摘要

R.M. Burstall:

The Transformation Approach to Program Development

The postulate underlying the transformation approach to program development is that programs are complicated, hard to understand and prone to errors because we want them to be efficient. The desire for efficiency saturates our programming habits, so much so that the simplest and least efficient way to write a program never even crosses our mind. In contrast mathematicians in making definitions seek clarity and what Dijkstra calls 'separation of concerns': they pay no attention to efficiency of computation.

So the idea is to start with a program which does the right job but entirely sacrifices efficiency in favour of simplicity and modularity. We then transform it by correctness preserving transformations until a tolerably efficient, though less perspicuous, program is obtained.

E.W. Dijkstra:

Given the specifications, a text fit for "automatic execution" has to be composed, and it has to be proved that results satisfying the specifications correspond to that text. For the purpose of this discussion I regard that proof obligation as the core of the programming task.

The idea of program transformations is to produce the desired text B not directly, but to derive it from a text A via successive transformations from a suitable repertoire, the assumption being that the text A is the easier one to design, while the text B, when viewed as a program, is the more attractive one. The correctness proof for text B then consists of (a) the correctness proof for the original program A, (b) the chain of transformations with for each transformation the verification that it has been legally applied.

P. Pepper:

Our trouble comes from the - apparently intrinsic - incompatibility of clearness and efficiency which forces us to change over from the easily readable to the easily executable. This means organizing the construction of software in the form of a development process gradually abandoning clarity in favour of economy. If the single steps of this process are done according to formalized rules they are called program transformations. The discovery was that they can be done even in complicated cases.

A programming methodology should be applicable to all stages of such a development in a uniform way. Transformations can be used with existential quantifiers, recursive functions, variables and with goto's equally well; they harmonize particularly well with specification tools like abstract data types and characteristic predicates and give freedom for programming styles and notations.

机译:

R.M。爆裂

程序开发的转换方法

程序开发的转换方法所基于的假设是程序复杂,难以理解并且容易出错,因为我们希望它们高效。对效率的渴望充斥了我们的编程习惯,以至于最简单,最最小高效的编写程序的方法永远都不会被我们忽略。相反,数学家在进行定义时则寻求清晰度和Dijkstra所谓的“关注点分离”:他们不重视计算效率。

因此,我们的想法是从一个程序开始,该程序执行正确的工作,但为了简化和模块化而完全牺牲了效率。然后,我们通过保留正确性的转换对其进行转换,直到获得可以容忍的高效(尽管不那么明显)的程序。

E.W。迪克斯特拉

鉴于规范,必须编写适合“自动执行”的文本,并且必须证明满足规范的结果与该文本相对应。出于讨论的目的,我认为证明义务是编程任务的核心。

程序转换的思想是不直接生成所需的文本B,而是通过从适当的库中进行连续的转换,从文本A导出文本B,前提是假设文本A更易于设计,而文本A更易于设计。从程序上看,文本B是更具吸引力的。然后,文本B的正确性证明包括(a)原始程序A的正确性证明,(b)转换链,并对每个转换都验证其合法使用。

P。胡椒

我们的麻烦来自于-显然是内在的-透明性和效率的不兼容,这迫使我们从易于阅读的代码转换为易于执行的代码。这意味着以开发过程的形式来组织软件的构建,逐渐放弃清晰性,而转而寻求经济性。如果此过程的单个步骤是根据形式化规则完成的,则称为程序转换。发现是即使在复杂的情况下也可以做到。

编程方法应以统一的方式适用于此类开发的所有阶段。转换可以与存在量词,递归函数,变量以及goto一起使用。它们与抽象数据类型和特征谓词之类的规范工具特别协调,并为编程样式和符号提供了自由。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号