ACM DL

Programming Languages and Systems (TOPLAS)

Menu

Search Issue
enter search term and/or author name

Archive


ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 1 Issue 2, Oct. 1979

Operators
Kenneth E. Iverson
Pages: 161-176
DOI: 10.1145/357073.357074
Although operators, which apply to functions to produce functions, prove very useful in mathematics, they are absent from most programming languages. This paper illustrates their simplicity and power in terms of the operators of APL, and...

A Language for Array and Vector Processors
R. H. Perrott
Pages: 177-195
DOI: 10.1145/357073.357075
The scientific community has consistently demanded from computing machines an increase in the number of instructions executed per second. The latest increase has been achieved by duplication of arithmetic units for an array processor and the...

Use of a Nonprocedural Specification Language and Associated Program Generator in Software Development
N. S. Prywes, Amir and S. Shastry
Pages: 196-217
DOI: 10.1145/357073.357076
The Model II language and the associated program generator are used to explain and illustrate the use of very high level nonprocedural languages for computer programming. The effect of a very high level language is obtained in Model II through...

Comments on “Communicating Sequential Processes”
Richard B. Kieburtz, Abraham Silberschatz
Pages: 218-225
DOI: 10.1145/357073.357077
In his recent paper, “Communicating Sequential Processes” (Comm. ACM 21, 8 (Aug. 1978), 666-677), C.A.R. Hoare outlines a programming language notation for interprocess communication in which processes are...

Verification of Array, Record, and Pointer Operations in Pascal
David C. Luckham, Norihisa Suzuki
Pages: 226-244
DOI: 10.1145/357073.357078
A practical method is presented for automating in a uniform way the verification of Pascal programs that operate on the standard Pascal data structures Array, Record, and Pointer. New assertion language primitives are introduced for describing...

Simplification by Cooperating Decision Procedures
Greg Nelson, Derek C. Oppen
Pages: 245-257
DOI: 10.1145/357073.357079
A method for combining decision procedures for several theories into a single decision procedure for their combination is described, and a simplifier based on this method is discussed. The simplifier finds a normal form for any expression formed...

Is Sometimes Ever Better Than Always?
David Gries
Pages: 258-265
DOI: 10.1145/357073.357080
The “intermittent assertion” method for proving programs correct is explained and compared with the conventional method. Simple conventional proofs of iterative algorithms that compute recursively defined functions, including...

Compact Encodings of List Structure
Daniel G. Bobrow, Douglas W. Clark
Pages: 266-286
DOI: 10.1145/357073.357081
List structures provide a general mechanism for representing easily changed structured data, but can introduce inefficiencies in the use of space when fields of uniform size are used to contain pointers to data and to link the structure....

A Space Efficient Dynamic Allocation Algorithm for Queuing Messages
Eric Beyer, Peter Buneman
Pages: 287-294
DOI: 10.1145/357073.357082
A simple dynamic allocation algorithm is described for queuing variable length messages in memory. The algorithm makes use of the ability of many operating system to increase and decrease available memory as required. Some results describing its...

Noncanonical SLR(1) Grammars
Kou-Chung Tai
Pages: 295-320
DOI: 10.1145/357073.357083
Two noncanonical extensions of the simple LR(1) (SLR(1)) method are presented, which reduce not only handles but also other phrases of sentential forms. A class of context-free grammars called leftmost SLR(1) (LSLR(1)) is...