The history of ideas that led to the first formalization of the syntax and semantics of PL/I is sketched. The definition method and notation are known as the Vienna Definition Language (VDL). The paper examines the re...
详细信息
The history of ideas that led to the first formalization of the syntax and semantics of PL/I is sketched. The definition method and notation are known as the Vienna Definition Language (VDL). The paper examines the relationship between VDL and both denotational semantics and the axiomatic approach to programming language definition.
This paper discusses IBM's technical contributions to high level programminglanguages from the viewpoint of specific languages and their contributions to the technology. The philosophy used in this paper is that ...
详细信息
This paper discusses IBM's technical contributions to high level programminglanguages from the viewpoint of specific languages and their contributions to the technology. The philosophy used in this paper is that it is the appropriate collection of features in a language which generally makes the contribution to the technology, rather than an individual feature. Those IBM languages deemed to have made major contributions are (in alphabetical order) APL, FORTRAN, GPSS, and PL/I. Smaller contributions (because of lesser general usage) have been made by Commercial Translator, CPS, FORMAC, QUIKTRAN, and SCRATCHPAD. Major contributions were made in the area of formal definition of languages, through the introduction of BNF (Backus-Naur Form) for defining language syntax and VDL (Vienna Definition Language) for semantics.
In this paper a comparison is presented of programminglanguages in the context of high energy physics software applications. The evaluation method used was specifically devised to address the issues of particular imp...
详细信息
In this paper a comparison is presented of programminglanguages in the context of high energy physics software applications. The evaluation method used was specifically devised to address the issues of particular importance to HEP applications, not just the technical features of the languages considered. The candidate languages evaluated were Ada, C, FORTRAN 77, FORTRAN 8x, Pascal and PL/I. Some conclusions are drawn and recommendations made regarding the role of FORTRAN and other programminglanguages in the current and future development of HEP software.
Static binding and type-checking, by which we mean the ability to bind names and assign types in advance of program execution is a desirable feature of many modern programminglanguages. In particular, it is one of th...
详细信息
Static binding and type-checking, by which we mean the ability to bind names and assign types in advance of program execution is a desirable feature of many modern programminglanguages. In particular, it is one of the most useful techniques for catching programming errors and is a powerful aid in program optimisation, However, many programming tasks, especially those involving persistent data, appear to require some form ofdelayedbinding and type checking. In this paper we illustrate the need for delaying those operations and examine a selection of languages to see how they provide a mixture of delayed and static operations. We conclude that, with the current state of language technology, the programmer needs explicit control over the timing of binding and type checking.
We describe a possible implementation of nontraditional control mechanisms in modern programminglanguages via the procedural mechanism of the hardware-supported administrative system of the EL'BRUS multiprocessor...
详细信息
We describe a possible implementation of nontraditional control mechanisms in modern programminglanguages via the procedural mechanism of the hardware-supported administrative system of the EL'BRUS multiprocessor computing system.
Dynamic binding, delaying the binding of a name in a program to an object implementing that name, is generally considered to be a property of weakly typed languages. Many strongly typed languages, however, provide met...
详细信息
Dynamic binding, delaying the binding of a name in a program to an object implementing that name, is generally considered to be a property of weakly typed languages. Many strongly typed languages, however, provide methods to dynamically link subprogram bodies to names, although most require static definition of the alternative bodies to maintain compile-time type checking. In strongly typed languages without this feature, access to operating system facilities is a common substitute, but such a mechanism typically is incompatible with compile-time type checking across the interface to the subprograms. A third approach is needed for dynamic binding of separately compiled subprograms under program control. This approach, incorporated into a language, provides the flexibility of the latter method while maintaining strong typing and is useful in many applications, including data base programming and monolingual programming environments.
Left-factored grammars have a particularly simple analysis process and the property that under certain conditions the outcome of this analysis yields operators in the sequence corresponding to their activation at exec...
详细信息
Left-factored grammars have a particularly simple analysis process and the property that under certain conditions the outcome of this analysis yields operators in the sequence corresponding to their activation at execution time. We propose a system base on three distinct types of processor, of which one performs syntax analysis, one performs operations on what are effectively left hand values and one performs operations on right hand values. Such a system is capable of executing directly programs written in what are loosely called ‘high-level’ languages.
A strategy for the formalisation of the syntactic aspects – abstract syntax, textual (or concrete) syntax, and context conditions (or ‘static semantics’) – of programminglanguages is described. The strategy empha...
详细信息
A strategy for the formalisation of the syntactic aspects – abstract syntax, textual (or concrete) syntax, and context conditions (or ‘static semantics’) – of programminglanguages is described. The strategy emphasises the centrality of abstract syntax in a complete language definition and is compatible with the principle of using a general purpose programming language as a metalanguage. The proposed technique for specifying (using a set of mutually recursive procedures) textual syntax and its relationship to abstract syntax provide a sort of programming language counterpart of BNF as far as overall structure is concerned, and the technique for specifying (using another set of mutually recursive procedures) context conditions parallels the use of attribute grammars or two-level grammars for the same purpose. The techniques are illustrated using the miniature language Asple.
It is meaningful that a language is provided with several semantic descriptions: e.g. one which serves the needs of the implementor, another one that is suitable for specification and yet another one that will be used...
详细信息
It is meaningful that a language is provided with several semantic descriptions: e.g. one which serves the needs of the implementor, another one that is suitable for specification and yet another one that will be used to explain the language to the user. In this case one has to guarantee that the various semantics are `consistent'. The attempt of this paper is to clarify the notion `consistency' and to present a general framework and theorems for consistency results.
This paper forms the substance of a course of lectures given at the International Summer School in computerprogramming at Copenhagen in August, 1967. The lectures were originally given from notes and the paper was wr...
详细信息
This paper forms the substance of a course of lectures given at the International Summer School in computerprogramming at Copenhagen in August, 1967. The lectures were originally given from notes and the paper was written after the course was finished. In spite of this, and only partly because of the shortage of time, the paper still retains many of the shortcomings of a lecture course. The chief of these are an uncertainty of aim - it is never quite clear what sort of audience there will be for such lectures - and an associated switching from formal to informal modes of presentation which may well be less acceptable in print than it is natural in the lecture room. For these (and other) faults, I apologize to the reader. There are numerous references throughout the course to CPL. This is a programming language which has been under development since 1962 at Cambridge and London and Oxford. It has served as a vehicle for research into both programminglanguages and the design of compilers. Partial implementations exist at Cambridge and London. The language is still evolving so that there is no definitive manual available yet. We hope to reach another resting point in its evolution quite soon and to produce a compiler and reference manuals for this version. The compiler will probably be written in such a way that it is relatively easy to transfer it to another machine, and in the first instance we hope to establish it on three or four machines more or less at the same time. The lack of a precise formulation for CPL should not cause much difficulty in this course, as we are primarily concerned with the ideas and concepts involved rather than with their precise representation in a programming language.
暂无评论