ACM Home Page
Please provide us with feedback. Feedback
Making variables abstract: an equational theory for Russell
Full text PdfPdf (1.17 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Austin, Texas
Pages: 59 - 72  
Year of Publication: 1983
ISBN:0-89791-090-7
Authors
Alan Demers  Cornell University, Ithaca, New York
James Donahue  Xerox Palo Alto Research Center, Palo Alto, California
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 12,   Citation Count: 4
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/567067.567075
What is a DOI?

ABSTRACT

One of the fundamental notions of programming, and thus of programming languages, is the variable. Recently, the variable has come under attack. The proponents of "functional programming" have argued that variables are at the root of all our problems in programming. They claim that we must rid our languages of all manifestations of the "vonNeumann bottleneck" and learn to live in the changeless world of functional combinators.While we may not, believe all the claims of the functional programming advocates, there is evidence that the treatment of variables in most programming languages leaves much to be desired. In this paper we discuss how to make variables "abstract", i.e., how to introduce the notion of variable in to a language so that variables have reasonable mathematical properties. This paper includes:--- a discussion of language design principles that allow a more mathematical treatment of variables in programming language, and--- a description of an equational logic for the programming language Russell [Boehm80]. Although this logic follows much of the development of abstract data types (cf. [Guttag78]), it is novel in its treatment of a language in which expressions not only produce values but also can have effects. We discuss the over all structure of the logic and present in detail the rules particularly relevant to the semantics of variables. A complete presentation of the logic appears in [Demers82], and the rule numbers in this paper agree with the numbers used there.In the next section, we discuss the underlying language principles needed to make an equational specification of variables possible. In the sections that follow, we present a logic that does so for Russell.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
{Bates82} Bates, J. and R. Constable. The definition of µprl. TR-82-492, Department of Computer Science, Cornell University, 1982.
 
3
4
5
 
6
7
 
8
{Demers82} Demers, A. and J. Donahue. An equational theory for Russell. TR-82-534, Department of Computer Science, Cornell University, 1982.
 
9
{Dijkstra72} Dijkstra, E. Notes on structured programming. In Dahl, O-J., E. W. Dijkstra and C. A. R. Hoare, Structured Programming, Academic Press, 1972.
 
10
{Guttag78} Guttag, J. and J. Horning. The algebraic specification of data types. Acta Informatica 10 (1978), pp. 27-52.
 
11
{Hoare72} Hoare, C. A. R. Proofs of correctness of data representations. Acta Informatica 1 (1972), pp. 271-281.
12
 
13
{Martin-Lof79} Constructive mathematics and computer programming. Sixth International Congress for Logic, Methodology and Philosophy of Science, Hanover, Germany (1979).
14

Collaborative Colleagues:
Alan Demers: colleagues
James Donahue: colleagues