skip to main content
10.1145/512644acmconferencesBook PagePublication PagespoplConference Proceedingsconference-collections
POPL '86: Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ACM1986 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
St. Petersburg Beach Florida 1 January 1986
ISBN:
978-1-4503-7347-0
Published:
01 January 1986
Sponsors:
Next Conference
January 19 - 25, 2025
Denver , CO , USA
Bibliometrics
Skip Abstract Section
Abstract

The papers in this volume were presented at the Thirteenth Annual ACM Symposium on the Principles of Programming Languages, sponsored jointly by SIGACT and SIGPLAN. They were selected from 165 abstracts submitted in response to the program committee's call for papers. We thank all those who submitted abstracts for their interest in POPL.Submissions were not formally refereed, but each was read by the entire program committee. As usual, technical excellence was an essential criterion, but our selections were also influenced by factors such as topicality and the desire to strike a balance between papers of theoretical and practical interest. Because of this, and especially in light of the large number of abstracts submitted this year, we expect that revised or expanded versions of many of the submissions will eventually appear in refereed journals.

Proceeding Downloads

Skip Table Of Content Section
Article
Free
Remote attribute updating for language-based editors

A major drawback to the use of attribute grammars in language-based editors has been that attributes can only depend on neighboring attributes in a program's syntax tree. This paper concerns new attribute-grammar-based methods that, for a suitable class ...

Article
Free
Dynamically bypassing copy rule chains in attribute grammars

Attribute grammars require copy rules to transfer values between attribute instances distant in an attributed parse tree. We introduce copy bypass attribute propagation that dynamically replaces copy rules with nonlocal dependencies, resulting in faster ...

Article
Free
Global storage allocation in attribute evaluation

Global storage allocation for attributes in an attribute grammar evaluator is discussed and an algorithm for determining if a given set of attribute occurrences can share a common global storage is obtained.

Article
Free
Finding the source of type errors

It is a truism that most bugs are detected only at a great distance from their source. Although polymorphic type-checking systems like those in ML help greatly by detecting potential run-time type errors at compile-time, such systems are still not very ...

Article
Free
A maximum-flow approach to anomaly isolation in unification-based incremental type inference

A crucial aspect of a program intended for general use is its behavior in the presence of erroneous inputs. For instance, much attention has been devoted to the problems of error detection, reporting, and correction in compilers<sup>1,2</sup>. As ...

Article
Free
Hierarchical VLSI design systems based on attribute grammars

The attribute grammar technique used for design of structure editors is suggested as a foundation for building <i>hierarchical incremental design editors</i> for VLSI circuits. The usual definition of attribute grammars is extended: the cycles that ...

Article
Free
Code motion of control structures in high-level languages

One trend among programmers is the increased use of abstractions. Through encapsulation techniques, abstractions extend the repertory of data structures and their concomitant operations that are processed directly by a compiler. For example, a compiler ...

Article
Free
Compilers and staging transformations

Computations can generally be separated into stages, which are distinguished from one another by either frequency of execution or availability of data. <i>Precomputation</i> and <i>frequency reduction</i> involve moving computation among a collection of ...

Article
Free
Higher-order strictness analysis in untyped lambda calculus

A function is said to be <i>strict</i> in one of its formal parameters if, in all calls to the function, either the corresponding actual parameter is evaluated, or the call does not terminate. Detecting which arguments a function will surely evaluate is ...

Article
Free
Retargetable high-level alias analysis

All optimizing compilers must deal with the problem of aliases arising due to the presence of multiple names that reference the same memory areas. Presented in this paper is a staged, high-level alias analysis methodology that provides detailed alias ...

Article
Free
High-quality code generation via bottom-up tree pattern matching

High-quality local code generation is one of the most difficult tasks the compiler-writer faces. Even if register allocation decisions are postponed and common subexpressions are ignored, instruction selection on machines with complex addressing can be ...

Article
Free
A parallel language and its compilation to multiprocessor machines or VLSI

A language <b>Crystal</b> and its compiler for parallel programming is presented. The goal of <b>Crystal</b> is to help programmers in seeking efficient parallel implementations of an algorithm, and managing the complexity that might arise in dealing ...

Article
Free
Towards programming with knowledge expressions

Explicit use of knowledge expressions in the design of distributed algorithms is explored. A non-trivial case study is carried through, illustrating the facilities that a design language could have for setting and deleting the knowledge that the ...

Article
Free
Limitations of synchronous communication with static process structure in languages for distributed computing

Modules in a distributed program are active, communicating entities. A language for distributed programs must choose a set of communication primitives and a structure for processes. This paper examines one possible choice: synchronous communication ...

Article
Free
Atomic data abstractions in a distributed collaborative editing system

This paper describes our experience implementing CES, a distributed Collaborative Editing System written in Argus, a language that includes facilities for managing long-lived distributed data. Argus provides <i>atomic actions,</i> which simplify the ...

Article
Free
A really abstract concurrent model and its temporal logic

In this paper we advance the radical notion that a computational model based on the <i>reals</i> provides a more abstract description of concurrent and reactive systems, than the conventional <i>integers</i> based behavioral model of execution <i>...

Article
Free
Expressing interesting properties of programs in propositional temporal logic

We show that the class of properties of programs expressible in propositional temporal logic can be substantially extended if we assume the programs to be <i>data-independent.</i> Basically, a program is data-independent if its behavior does not depend ...

Article
Free
Operational semantics of a parallel object-oriented language

In this paper the semantics of the programming language POOL is described. It is a language that integrates the object-oriented structure of languages like Smalltalk-80 with facilities for concurrency and communication like the ones in Ada. The ...

Article
Free
Equational logic programming: an extension to equational programming

The paradigm of equational programming potentially possesses all the features provided by Prolog-like languages. In addition, the ability to reason about equations, which is not provided by Prolog, can be accommodated by equational languages. In this ...

Article
Free
Logic and inheritance

An elaboration of the Prolog language is described in which the notion of first-order term is replaced by a more general one. This extended form of terms allows the integration of inheritance---an <i>IS-A</i> taxonomy---directly into the unification ...

Article
Free
Unification in many-sorted algebras as a device for incremental semantic analysis

Language-specific editors for typed programming languages must contain a subsystem for semantic analysis in order to guarantee correctness of programs with respect to the context conditions of the language. As programs are usually incomplete during ...

Article
Free
Distributed data structures in Linda

A <i>distributed data structure</i> is a data structure that can be manipulated by many parallel processes simultaneously. Distributed data structures are the natural complement to parallel program structures, where a <i>parallel program</i> (for our ...

Article
Free
Para-functional programming: a paradigm for programming multiprocessor systems

One of the most important pragmatic advantages of functional languages is that concurrency in a program is <i>implicit</i> -- there is no need for special constructs to express parallelism as is required in most conventional languages. Furthermore, it ...

Article
Free
Annotations for distributed programming in logic

It has been recognised that languages like Concurrent Prolog and Parlog which use committed choice non-determinism have departed from the original concept of logic programming, but no new paradigm has been suggested. In this paper we propose that ...

Article
Free
Representation independence and data abstraction

One purpose of type checking in programming languages is to guarantee a degree of "representation independence:" programs should not depend on the way stacks are represented, only on the behavior of stacks with respect to push and pop operations. In ...

Article
Free
Using dependent types to express modular structure

Writing any large program poses difficult problems of organization. In many modern programming languages these problems are addressed by special linguistic constructs, variously known as modules, packages, or clusters, which provide for partitioning ...

Article
Free
"Type" is not a type

A function has a <i>dependent type</i> when the type of its result depends upon the value of its argument. Dependent types originated in the type theory of intuitionistic mathematics and have reappeared independently in programming languages such as CLU,...

Article
Free
Data flow analysis of applicative programs using minimal function graphs

Data or program flow analysis is concerned with the static analysis of programs, to obtain as much information as possible about their possible run time behavior without actually having to run the programs. Due to the unsolvability of the halting ...

Article
Free
A mechanically certified theorem about optimal concurrency of sorting networks

Our concern is the mechanical certification of transformations of sequential program executions into parallel executions with equivalent semantics. The objective of such transformations is to accelerate the execution of programs. The result reported ...

Article
Free
Executable specifications with quantifiers in the FASE system

We present an overview of the FASE system for executable specifications based upon final, rather than initial, algebras. Particular emphasis is placed upon the execution of expressions involving quantifiers. The need for such expressions is explained, ...

Recommendations

Acceptance Rates

Overall Acceptance Rate824of4,130submissions,20%
YearSubmittedAcceptedRate
POPL '152275223%
POPL '142205123%
POPL '041762916%
POPL '031262419%
POPL '021282822%
POPL '011262419%
POPL '001513020%
POPL '991362418%
POPL '981753218%
POPL '972253616%
POPL '961483423%
POPL '941733923%
POPL '931993920%
POPL '922043015%
POPL '911523120%
POPL '891913016%
POPL '881772816%
POPL '871082927%
POPL '831702816%
POPL '821213831%
POPL '811212420%
POPL '791462718%
POPL '781352720%
POPL '771052524%
POPL '76902022%
POPL '751002323%
POPL '731002222%
Overall4,13082420%