This paper describes the considerations behind the design of the programminglanguage Edison including the reasons why a large number of well-known language featuges were excluded. It also discusses the linguistic pro...
详细信息
This paper describes the considerations behind the design of the programminglanguage Edison including the reasons why a large number of well-known language featuges were excluded. It also discusses the linguistic problems of writing a concise language report.
The design of the programminglanguage Euclid requires that a compiler for the language produce legality assertions to aid in verification of programs written in the language. This paper analyzes the legality assertio...
详细信息
A design for a separate compilation facility for the SIMULA 67 programminglanguage is presented. The paper explores the problems with existing separate compilation schemes, and proposes a new scheme that allows top-d...
详细信息
A design for a separate compilation facility for the SIMULA 67 programminglanguage is presented. The paper explores the problems with existing separate compilation schemes, and proposes a new scheme that allows top-down, bottom-up, or even parallel development and integration of program modules. An evaluation of the proposal and a discussion of its applicability to other languages are then given.
The first version of Gypsy was introduced in 1976 to support the specification and construction of verified programs. A second version has evolved based on the experiences of the last two years. The changes introduced...
详细信息
ISBN:
(纸本)9780897910002
The first version of Gypsy was introduced in 1976 to support the specification and construction of verified programs. A second version has evolved based on the experiences of the last two years. The changes introduced in the second version are described. Some experiences with the specification and proof methodology are discussed, and the status of the implementation of the Gypsy compiler and verification system is summarized.
SP/k is a compatible subset of the PL/I language that has been designed for teaching programming. The features of the SP/k language were chosen to encourage structured problem solving by computers, to make the languag...
详细信息
SP/k is a compatible subset of the PL/I language that has been designed for teaching programming. The features of the SP/k language were chosen to encourage structured problem solving by computers, to make the language easy to learn and use, to eliminate confusing and redundant constructs, and to make the language easy to compile. The resulting language is suitable for introducing programming concepts used in various applications, including business data processing, scientific calculations and non-numeric computation. SP/k is actually a sequence of language subsets called SP/1, SP/2, … SP/8. Each subset introduces new programminglanguage constructs while retaining all the constructs of preceding subsets. Each subset is precisely defined and can be learned or implemented without the following subsets.
Most current approaches to mechanical program verification transform a program and its specifications into first-order formulas and try to prove these formulas valid. Since the first-order predicate calculus is not de...
详细信息
Most current approaches to mechanical program verification transform a program and its specifications into first-order formulas and try to prove these formulas valid. Since the first-order predicate calculus is not decidable, such approaches are inherently limited. This paper proposes an alternative approach to program verification: correctness proofs are constructively established by proof justifications written in an algorithmic notation. These proof justifications are written as part of the program, along with the executable code and correctness specifications. A notation is presented in which code, specifications, and justifications are interwoven. For example, if a program contains a specification 3x P(x), the program also contains a justification that exhibits the particulat value of x that makes P true. Analogously, justifications may be used to state how universally quantified formulas are to be instantiated when they are used as hypotheses. Programs so justifiled may be verified by proving quantifier-free formulas. Additional classes of justifications serve related ends. Formally, justifications reduce correctness to a decidable theory. Informally, justifications establish the connection between the executable code and correctness specifications, documenting the reasoning on which the correctness is based.
The computer algebra language MACSYMA enables the programmer to include symbolic physical units in computer calculations, and features automatic detection of dimensionally-inhomogeneous formulas and conversion of inco...
详细信息
The computer algebra language MACSYMA enables the programmer to include symbolic physical units in computer calculations, and features automatic detection of dimensionally-inhomogeneous formulas and conversion of inconsistent units in a dimensionally homogeneous formula. Some examples illustrate these features.
Communication with the computer is by artificial languages: programminglanguages and command languages, as well as ad hoc languages of messages. While many such languages are sufficiently rich to permit proper expres...
详细信息
Communication with the computer is by artificial languages: programminglanguages and command languages, as well as ad hoc languages of messages. While many such languages are sufficiently rich to permit proper expression of what must be said, some are so limited or inconsistent that a user must go to needless effort in learning the language and using it to communicate successfully with the *** part of the final exam of a course on the design of computer languages for human use, students were asked to suggest what “... the languagedesigner can do to make the programming process as difficult as possible.” This paper contains some of the more popular responses, annotated with examples from current programminglanguages and systems.1
The power and convenience of a programminglanguage may be enhanced for certain applications by permitting treelike data structures to be defined by recursion. This paper suggests a pleasing notation by which such str...
详细信息
The power and convenience of a programminglanguage may be enhanced for certain applications by permitting treelike data structures to be defined by recursion. This paper suggests a pleasing notation by which such structures can be declared and processed; it gives the axioms which specify their properties, and suggests an efficient implementation method. It shows how a recursive data structure may be used to represent another data type, for example, a set. It then discusses two ways in which significant gains in efficiency can be made by selective updating of structures, and gives the relevant proof rules and hints for implementation. The examples show that a certain range of applications in symbol manipulation can be efficiently programmed without introducing the low-level concept of a reference into a high-level programminglanguage.
General principles of structured programming, and practical aspects of applying those principles within the programminglanguage PL/I, are discussed. Suitable extensions (and contractions) of that language are suggest...
详细信息
暂无评论