首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 171 毫秒
1.
蔡家楣 《计算机工程》1998,24(12):27-29,34
介绍基于扩展构造型演算的交互式多步证明系统。该系统中以函数式语言ML为开发环境,建立了ECC的项、规则证明策略和证明管理机制的描述,并引入规约类型、类类型、类和对象的表示,为面向对象的程序规约和定理证明系统的结合进行了一些探索。  相似文献   

2.
类型系统是一种设计和研究程序设计语言的形式化方法和工具。本文提出了一种新的用安全类型系统增强编译程序安全性的方法;给出了类型系统的形式化定义,引入了安全类型和安全类型系统的概念,并给出了安全类型系统的子类型规则和安全类型规则;最后讨论了安全类型系统在编译技术中的应用。  相似文献   

3.
介绍基于扩展构造型演算的交互式多步证明系统。该系统中以函数式语言ML为开发环境,建立了ECC的项、规则证明策略和证明管哩机制的描述,并引入规约类型、类类型、类和对象的表示,为面向对象的程序规约和定理证明系统的结合进行了一些探索。  相似文献   

4.
基于类型理论的面向对象程序设计   总被引:2,自引:1,他引:1  
构造性类型理论可作为程序开发的理论基础,其中类型作为程序规约,证明过程作为程序开发过程,从证明抽取满足程序规约的程序.本文提出了一种构造性类型理论TTOOP,引入了类规约类型和类类型的概念.类是类规约类型的元素,它又是一种类型,类的元素为对象.通过证明类规约可构造类,由此构造面向对象软件.  相似文献   

5.
类型系统与程序正确性问题   总被引:1,自引:0,他引:1  
类型系统能检出合法程序的语义错误,可以缩短调试时间,在执行程序之前捕获代码中的错误。类型系统的理论基础是类型化的λ演算。带子类型的高阶类型系统腿已成为类型化语言的演算核心。类型系统和直觉主义极小逻辑是同构的。证明系统的能力取决于类型系统,因而类型系统可以表迭程序的性质,并自动进行验证。  相似文献   

6.
MFS是一个基于重写技术的程序开发系统.它提供的程序设计语言MFSL是扩展的函数式语言与代数规约语言相结合的混合语言.在这种混合语言中引入了能够提高效率和满足用户特殊需求的优化规则定义机制.语言的类型系统以及在语言和系统中引入的证明和测试机制能够使人们在开发过程中较早地发现问题,提高所开发系统的正确性.在系统的实现中采用的必要平行最外归约策略、图归约、证据测试集等技术能够使所开发的系统具有很高的实现效率.应用这一程序开发系统,能够较快地开发出正确且效率较高的程序.  相似文献   

7.
本提出在LF类型理论中定义一组相互递归类型的方法,并对递归类型赋予操作语义,递归类型不仅可以表示通常的递归通常的递归数据结构,还可描述一般的递归问题求解,递归证明构造和递归程序构造过程。  相似文献   

8.
基于类型注解的认证编译器设计与实现   总被引:2,自引:0,他引:2  
基于类型注解的认证编译器是安全策略系统的核心部件,它不仅能够用C语言的类型安全子集编写的程序编译成优化的Intel x86/linux汇编语言程序,而且还可以根据类型安全策略的要求产生带注解的汇编程序.实验结果表明,新设计的认证编译器可实现:①类型安全的C语言子集的编译;②许多标准的局部优化;③可以对数组运行时越界操作进行检查.由于安全策略系统的证明是建立在含注解的代码基础之上的,因此,该认证编译器在移动代码安全检查中非常有用。  相似文献   

9.
类型系统的研究与进展   总被引:2,自引:0,他引:2  
1 引言类型系统源于罗素为避免朴素集合论中的悖论而引入的“分类”思想。后来邱奇在他的λ演算中也引入了“类型”。60年代初出现的Algol语言提出了数据类型的概念。逻辑学家J.Girard和计算机科学家J.Reynold在70年代初为类型系统引入了“多态性”,分别提出了System F和多态λ演算。另一方面,Mar-tin-L of为了研究数学的逻辑基础,在70年代初提出了直觉类型理论,后来也用于程序开发的研究。 80年代后,类型系统的研究更是蓬勃发展,在程序语言设计、程序开发和验证以及机器定理证明方面得到了广泛的应用。目前随着面向对象思想逐渐占据软件开发的主流,面向对象程序设计语言的类型系统逐渐成为人们研究的热点。在80年代初,L.Cardelli提出了“子类型”(subtype)的概念,在1985年,他结  相似文献   

10.
本文提出在LF类型理论中定义一组相互递归类型的方法,并对递归类型赋予操作语义.这样,递归类型不仅可以表示通常的递归数据结构,还可描述一般的递归问题求解、递归证明构造和递归程序构造过程.  相似文献   

11.
12.
Martin-Löf's type theory is a theory in which one can write both specifications and programs. By interpreting propositions as types, predicate logic is available when formulating a specification. The rules of type theory are formulated as tactics which makes a “top down” construction of programs possible. These ideas are illustrated by a formal derivation of a program for a partitioning problem.  相似文献   

13.
A Refinement of de Bruijn's Formal Language of Mathematics   总被引:3,自引:0,他引:3  
We provide a syntax and a derivation system fora formal language of mathematics called Weak Type Theory (WTT). We give the metatheory of WTT and a number of illustrative examples.WTT is a refinement of de Bruijn's Mathematical Vernacular (MV) and hence:– WTT is faithful to the mathematician's language yet isformal and avoids ambiguities.– WTT is close to the usualway in which mathematicians express themselves in writing.– WTT has a syntaxbased on linguistic categories instead of set/type theoretic constructs.More so than MV however, WTT has a precise abstractsyntax whose derivation rules resemble those of modern typetheory enabling us to establish important desirable properties of WTT such as strong normalisation, decidability of type checking andsubject reduction. The derivation system allows one to establish thata book written in WTT is well-formed following the syntax ofWTT, and has great resemblance with ordinary mathematics books.WTT (like MV) is weak as regardscorrectness: the rules of WTT only concern linguisticcorrectness, its types are purely linguistic sothat the formal translation into WTT is satisfactory as areadable, well-organized text. In WTT, logico-mathematical aspects of truth are disregarded. This separates concerns and means that WTT– can be easily understood by either a mathematician, a logician or a computerscientist, and– acts as an intermediary between thelanguage of mathematicians and that of logicians.  相似文献   

14.
We present a Theory of Specifications based on Martin-Löf's type theory, with rules for simultaneously constructing programs and their correctness proofs. The theory contains types for representing specifications whose corresponding notion of implementation is that of a pair formed by a program and a correctness proof. The rules of the theory are such that in implementations the program parts appear mixed together with the proof parts. A confluent and normalizing computational relation performs the task of separating programs from proofs. As a consequence, every implementation computes to a pair composed of a program and a proof of its correctness, and so the program extraction procedure is immediate.  相似文献   

15.
一种用于指针程序安全性证明的指针逻辑   总被引:7,自引:3,他引:4  
在高可信软件的各种性质中,安全性是被关注的重点,其中软件满足安全策略的证明方法是研究的热点之一.文中根据作者所设想的安全程序的设计和证明框架,为类C语言的一个子集设计了一个指针逻辑系统.该逻辑系统是Hoare逻辑系统的一种扩展,它用推理规则来表达每一种语句引起指针信息的变化情况.它可用来对指针程序进行精确的指针分析,所获得的信息用来证明指针程序是否满足定型规则的附加条件,以支持程序的安全性验证.该逻辑系统也可用来证明指针程序的其它性质.  相似文献   

16.
A general formulation of inductive and recursive definitions in Martin-Löf's type theory is presented. It extends Backhouse's Do-It-Yourself Type Theory to include inductive definitions of families of sets and definitions of functions by recursion on the way elements of such sets are generated. The formulation is in natural deduction and is intended to be a natural generalisation to type theory of Martin-Löf's theory of iterated inductive definitions in predicate logic.Formal criteria are given for correct formation and introduction rules of a new set former capturing definition by strictly positive, iterated, generalised induction. Moreover, there is an inversion principle for deriving elimination and equality rules from the formation and introduction rules. Finally, there is an alternative schematic presentation of definition by recursion.The resulting theory is a flexible and powerful language for programming and constructive mathematics. We hint at the wealth of possible applications by showing several basic examples: predicate logic, generalised induction, and a formalisation of the untyped lambda calculus.A shorter preliminary version of this paper appeared under the title An inversion principle for Martin-Löf's type theory in the Proceedings of the Workshop on Programming Logic in Båstad, May 1989, Programming Methodology Group Report 54, Chalmers University of Technology and the University of Göteborg, pages 177–190.  相似文献   

17.
Type systems and program logics are often thought to be at opposing ends of the spectrum of formal software analyses. In this paper we show that a flow-sensitive type system ensuring non-interference in a simple while-language can be expressed through specialised rules of a program logic. In our framework, the structure of non-interference proofs resembles the corresponding derivations in a state-of-the-art security type system, meaning that the algorithmic version of the type system can be used as a proof procedure for the logic. We argue that this is important for obtaining uniform proof certificates in a proof-carrying code framework. We discuss in which cases the interleaving of approximative and precise reasoning allows us to deal with delimited information release. Finally, we present ideas on how our results can be extended to encompass features of realistic programming languages such as Java.  相似文献   

18.
一种基于程序正确性证明理论的程序开发方法   总被引:3,自引:0,他引:3  
程序的形式推导方法是一种基于程序正确性证明理论的程序开发方法,它使得程序的开发和证明同时进行,程序开发完成的同时其正确性亦得以保 证,以两个问题的程序开发为例说明了程序的形式推导方法的使用。  相似文献   

19.
We describe a derivational approach to proving the equivalence of different representations of a type system. Different ways of representing type assignments are convenient for particular applications such as reasoning or implementation, but some kind of correspondence between them should be proven. In this paper we address two such semantics for type checking: one, due to Kuan et al., in the form of a term rewriting system and the other in the form of a traditional set of derivation rules. By employing a set of techniques investigated by Danvy et al., we mechanically derive the correspondence between a reduction-based semantics for type checking and a traditional one in the form of derivation rules, implemented as a recursive descent. The correspondence is established through a series of semantics-preserving functional program transformations.  相似文献   

20.
We present a graph-basedmodel of a generic type system for an OO language. The type system supports the features of recursive types, generics and interfaces, which are commonly found in modern OO languages such as Java. In the classical graph theory, we define type graphs, instantiation graphs and conjunction graphs that naturally illustrate the relations among types, generics and interfaces within complex OO programs. The model employs a combination of nominal and anonymous nodes to represent respectively types that are identified by names and structures, and defines graph-based relations and operations on types including equivalence, subtyping, conjunction and instantiation. Algorithms based on the graph structures are designed for the implementation of the type system. We believe that this type system is important for the development of a graph-based logical foundation of a formal method for verification of and reasoning about OO programs.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号