ACM Home Page
Please provide us with feedback. Feedback
The global storage needs of a subcomputation
Full text PdfPdf (664 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Salt Lake City, Utah, United States
Pages: 148 - 157  
Year of Publication: 1984
ISBN:0-89791-125-3
Authors
Jean-Claude Raoult  LRI, Bâtiment 490, Université de Paris-Sud, Orsay, 91405 Orsay Cedex
Ravi Sethi  Bell Laboratories, Murray Hill, New Jersey
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGADA: ACM Special Interest Group on Ada Programming Language
SIGAPL: ACM Special Interest Group on APL Programming Language
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 22,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   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/800017.800526
What is a DOI?

ABSTRACT

A defining characteristic of “functional” specifications is the absence of assignments: updates of tables and data structures are expressed by giving the relationship between the new and old values. An obvious implementation allocates separate space for new and old values and may consume a lot of storage. However, even when updates of attributes like symbol tables are expressed functionally, we would like to avoid making copies of the symbol table during attribute evaluation. In other words, if possible, the implementation should have a single global copy of the table that is updated using assignments. Since the value of the global copy changes during computation, the order of evaluation has to be chosen carefully. In this paper, we partition attributes into classes, the problem being to determine if there exists an evaluation order that allows each class to share a global storage area. The solution extends to handle symbol tables for block structured languages. More precisely, consider a directed acyclic graph D in which vertices represent attribute values to be computed. Associated with each vertex is a label indicating the storage area to be shared by the vertex. Storage used during the evaluation of D is studied by playing a pebble game on D with the following steps: (1) pebble (i.e. place a pebble) on a source; (2) pebble a vertex if all its successors have pebbles (a pebble may be moved to the vertex from one of its successors); (3) pick up a pebble. Each vertex must be pebbled exactly once. The use of global storage is formalized by defining single pebblings, in which at most one of the vertices with a given label has a pebble at any time. The results also apply to a form of pebbling, called chain pebbling, that allows symbol tables for block structured languages to be studied.


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
A.V. Aho and J. D. Ullman, "Optimization of straight line programs," SIAM J. Computing1(1), pp. 1-19 (March 1972).
 
2
T.P. Baker, Personal communication, November 1983.
 
3
P.A. Bernstein, D. W. Shipman, and W. S. Wong, "Formal aspects of serializability in database concurrency control," IEEE Trans. Software EngineeringSE-5(3), pp. 203-216 (May 1979).
4
 
5
 
6
C.A. Brown and P. W. Purdom, Jr, Specifying one-pass bottom-up compilers, Computer Science Dept., Indiana Univ., Bloomington IN (July 1981).
7
8
9
 
10
11
12
13
14
15
16
 
17
D. E. Knuth, "Semantics of context-free languages," Mathematical Systems Theory2(2), pp. 127-145 (1968). Errata 5(1), pp. 95-96 (1971).
 
18
K. Koskimies and K.-J. Räihä, "Modelling of space-efficient one-pass translation using attribute grammars," Software - Practice and Experience13, pp. 119-129 (1983).
 
19
 
20
P.M. Lewis II, D. J. Rosenkrantz, and R. E. Stearns, "Attributed translations," J. Computer and System Sciences9, pp. 279-307 (1974).
 
21
 
22
 
23
T. Marill, "Computational chains and the simplification of computer programs," IRE Trans. Electronic ComputersEC-11(2), pp. 173-180 (April 1962).
24
 
25
N. Pippenger, "Pebbling," Proc. Fifth IBM Symp. on Math. Foundations of Computer Science, pp. 1-19 (May 1980).
 
26
K.-J. Räihä, "On attribute grammars and their use in a compiler writing system," Report A-1977-4, Dept. of Computer Science, University of Helsinki (August 1977).
 
27
K.-J. Räihä, "A space management technique for multi-pass attribute evaluators," Report A-1981-4, Dept. of Computer Science, University of Helsinki (November 1981).
 
28
 
29
D. Schmidt, "Detecting global variables in denotational specifications," manuscript, Computer Science Dept., Edinburgh Univ. (May 1983).
 
30
J. Schwarz, "Verifying the safe use of destructive updates in applicative programs," pp. 395-411 in Program Transformations, 3rd Intl. Symposium on Programming, ed. B. Robinet, Dunod, Paris (1978).
 
31
R. Sethi, "Complete register allocation problems," SIAM J. Computing4(3), pp. 226-248 (September 1975).
 
32
R. Sethi, "A model of concurrent database transactions," 22nd Annual Symposium on Foundations of Computer Science, Nashville TN, pp. 175-184 (October 1981).
 
33
R. Sethi, "Pebble games for studying storage sharing," Theoretical Computer Science19(1), pp. 69-84 (July 1982).
 
34
R.E. Stearns, P. M. Lewis II, and D. J. Rosenkrantz, "Concurrency control for database systems," pp. 19-32 in 17th Annual Symposium on Foundations of Computer Science, Houston Texas (October 1976).

CITED BY  8

Collaborative Colleagues:
Jean-Claude Raoult: colleagues
Ravi Sethi: colleagues