ACM Home Page
Please provide us with feedback. Feedback
An interpreter generator using tree pattern matching
Full text PdfPdf (852 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
San Antonio, Texas
Pages: 169 - 179  
Year of Publication: 1979
Authors
Christoph M. Hoffmann  Purdue University, W. Lafayette, IN
Michael J. O'Donnell  Purdue University, W. Lafayette, IN
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): 3,   Downloads (12 Months): 31,   Citation Count: 5
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/567752.567768
What is a DOI?

ABSTRACT

Equations provide a rich, intuitively understandable notation for describing nonprocedural computing languages such as LISP and Lucid. In this paper, we present techniques for automatically generating interpreters from equations, analagous to well-known techniques for generating parsers from context-free grammars. The interpreters so generated are exactly faithful to the simple traditional mathematical meaning of the equations-no lattice-theoretic or fixpoint ideas are needed to explain the correspondence. The main technical problem involved is the extension of efficient practical string matching algorithms to trees. We present some new efficient table-driven matching techniques for a large class of trees, and point out unsolved problems in extending this class. We believe that the techniques of this paper form the beginnings of a useful discipline of interpreting, comparable to the existing discipline of parsing.


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
{AW76} Ashcroft, E. and W. Wadge, Lucid-A Formal System for Writing and Proving Programs. SIAM J on Computing 5:3, 336-354.
3
4
 
5
 
6
{Car76} Cargill, T., Deterministic Operational Semantics for Lucid, Res. Rept. CS-76-19, Univ. of Waterloo.
 
7
{DS76} Downey, P., and R. Sethi, Correct Computation Rules for Recursive Languages. SIAM J on Computing 5:3, 378-401.
 
8
 
9
{FW76,1} Friedman, D., and D. Wise, Cons should not evaluate its arguments, 3rd Int. Colloq. on Automata, Languages and Programming, Edinburgh.
 
10
{FW76,2} Friedman, D., and D. Wise, Output Driven Interpretation of Recursive Programs, or Writing Creates and Destroys Data Structures. Inf. Proc. Letters 5:6, 85-89.
 
11
{GHM76} Guttag, J., E. Horowitz and D. Musser, Abstract Data Types and Software Validation, Inf. Sci. Inst. Res. Rept. ISI/RR-76-48, Univ. of Southern Cal.
 
12
{Go77} Goguen, J., Abstract E-rors for Abstract Data Types, IFIP Working Conf. on Formal Descr. of Progr. Concepts, J. Dennis, ed., North-Holland.
13
 
14
{Ho78} Hoffmann, C., Matching Tree Patterns, Technical Rept. 291, Dept. of Comp. Sci., Purdue University, 1978.
 
15
{Jo77} Johnson, S. D., An Interpretive Model for a Language Based On Suspended Construction, Tech. Rept. 68, Dept. of Comp. Sci., Indiana University.
 
16
{KB70} Knuth, D., and P. Bendix, Simple Word Problems in Universal Algebras. Computational Problems in Abstract Algebra, J. Leech, ed., Pergamon Press, Oxford, 263-297.
 
17
{KMP77} Knuth, D., J. Morris, and V. Pratt, Fast Pattern Matching in Strings, SIAM J on Computing 6:2, 323-350.
18
 
19
 
20
{Sta77} Staples, J., A Class of Replacement Systems with Simple Optimality Theory, Bull. of the Australian Math. Soc., to appear.
 
21
{Wa76} Wand, M., First Order Entities as Defining Language. Techn. Rept. 29, Dept. of Comp. Science, Indiana University.
22
 
23
{Vu74} Vuillemin, J., Correct and Optimal Implementations of Recursion in a Simple Programming Language. JCSS 9:3, 332-354.

Collaborative Colleagues:
Christoph M. Hoffmann: colleagues
Michael J. O'Donnell: colleagues