|
ABSTRACT
The ASF+SDF Meta-Environment is an interactive language development environment whose main application areas are definition and implementation of domain-specific languages, generation of program analysis and transformation tools, and production of software renovation tools. It uses conditional rewrite rules to define the dynamic semantics and other tool-oriented aspects of languages, so the effectiveness of the generated tools is critically dependent on the quality of the rewrite rule implementation. The ASF+SDF rewrite rule compiler generates C code, thus taking advantage of C's portability and the sophisticated optimization capabilities of current C compilers as well as avoiding potential abstract machine interface bottlenecks. It can handle large (10,000+ rule) language definitions and uses an efficient run-time storage scheme capable of handling large (1,000,000+ node) terms. Term storage uses maximal subterm sharing (hash-consing), which turns out to be more effective in the case of ASF+SDF than in Lisp or SML. Extensive benchmarking has shown the time and space performance of the generated code to be as good as or better than that of the best current rewrite rule and functional language compilers.
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
|
|
| |
3
|
Appel, A. W. and Gonçalves, M. J. R. 1993. Hash-consing garbage collection. Technical report CS-TR-412-93, Princeton University,
|
 |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
|
| |
8
|
|
 |
9
|
|
| |
10
|
|
| |
11
|
Clavel, M., Durán, F., Eker, S., Lincoln, P., Marti-Oliet, N., Meseguer, J., and Quesada, J. 1999. Maude: Specification and programming in rewriting logic---Maude system documentation. Technical report, SRI International, Menlo Park, CA.
|
| |
12
|
Courcelle, B. and Franchi-Zannettacci, P. 1982. Attribute grammars and recursive program schemes I and II. Theoret. Comput. Sci. 17, 163--191 and 235--257.
|
| |
13
|
|
| |
14
|
|
| |
15
|
Klaus Didrich , Andreas Fett , Carola Gerke , Wolfgang Grieskamp , Peter Pepper, OPAL: design and implementation of an algebraic programming language, Proceedings of the international conference on Programming languages and system architectures, p.228-244, April 1994, Zurich, Switzerland
|
| |
16
|
Dik, C. H. S. 1989. A fast implementation of the Algebraic Specification Formalism. M.S. thesis, Programming Research Group, University of Amsterdam, Amsterdam, The Netherlands.
|
| |
17
|
Dinesh, T. B., Haveraaen, M., and Heering, J. 2001. An algebraic programming style for numerical software and its optimization. Sci. Program. 8, 4 (Sept./Oct.), 247--259. Special issue on Coordinate-Free Numerics.
|
| |
18
|
Field, A. J. and Harrison, P. G. 1988. Functional Programming. Addison-Wesley, Reading, MA.
|
| |
19
|
Field, J. 1992. A simple rewriting semantics for realistic imperative programs and its application to program analysis. In Proc. ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (San Francisco, CA). ACM Press, New York, NY, 98--107. Also published as Technical report YALEU/DCS/RR--909, Yale University, New Haven, CT.
|
 |
20
|
|
| |
21
|
Franz, M. 1994. Code-generation on-the-fly: A key to portable software. Ph.D. thesis, ETH Zurich, Zurich, Switzerland. Available online at ftp://ftp.inf.ethz.ch/pub/publications/dissertations/th10497.ps.
|
| |
22
|
Groote, J. F., Koorn, J. W. C., and van Vlijmen, S. F. M. 1995. The safety guaranteeing system at station Hoorn-Kersenboogaard. In Proceedings of the Tenth Annual Conference on Computer Assurance (COMPASS '95). IEEE, Computer Society Press, Los Alamitos, CA, 57--68.
|
| |
23
|
Hartel, P. H. et al. 1996. Benchmarking implementations of functional languages with "Pseudoknot," a float-intensive benchmark. J. Funct. Program. 6, 621--655.
|
 |
24
|
|
| |
25
|
Hendriks, P. R. H. 1991. Implementation of modular algebraic specifications. Ph.D. thesis, University of Amsterdam, Amsterdam, The Netherlands.
|
| |
26
|
Hillebrand, J. A. 1996. Experiments in specification re-engineering. Ph.D. thesis, University of Amsterdam, Amsterdam, The Netherlands.
|
 |
27
|
|
| |
28
|
|
| |
29
|
Kamperman, J. F. Th. 1996. Compilation of term rewriting systems. Ph.D. thesis, University of Amsterdam, Amsterdam, The Netherlands.
|
| |
30
|
|
| |
31
|
|
 |
32
|
|
| |
33
|
|
| |
34
|
Moonen, L. 1997. A generic architecture for data flow analysis to support reverse engineering. In Proceedings of the Second International Workshop on the Theory and Practice of Algebraic Specifications (ASF+SDF '97), M. P. A. Sellink, Ed. Electronic Workshops in Computing. Springer/British Computer Society, London, UK.
|
| |
35
|
|
| |
36
|
|
| |
37
|
Olivier, P. A. 2002. Benchmarking of functional/algebraic language implementations. Available online at http://www.cwi.nl/∼olivierp/benchmark/.
|
| |
38
|
|
| |
39
|
Peyton Jones, S. L., Hall, C. V., Hammond, K., Partain, W. D., and Wadler, P. L. 1993. The Glasgow Haskell compiler: A technical overview. In Proceedings of Joint Framework for Information Technology Technical Conference (JFIT), Keele, England). DTI/SERC, London, U.K., 249--257.
|
| |
40
|
|
| |
41
|
Plasmeijer, M. J. and van Eekelen, M. C. J. D. 1994. Concurrent CLEAN---version 1.0---Language refence manual. Technical report draft, Department of Computer Science, University of Nijmegen, Nijmegen, The Netherlands.
|
| |
42
|
|
| |
43
|
|
| |
44
|
Sjaak Smetsers , Eric Nöcker , John van Groningen , Rinu Plasmeijer, Generating efficient code for lazy functional languages, Proceedings of the 5th ACM conference on Functional programming languages and computer architecture, p.592-617, June 1991, Cambridge, Massachusetts, United States
|
| |
45
|
|
 |
46
|
|
| |
47
|
|
| |
48
|
van den Brand, M. G. J., Eijkelkamp, S. M., Geluk, D. K. A., Meijer, Osborne, H. R., and Polling, M. J. F. 1995. Program transformations using ASF+SDF. In Proceedings of ASF+SDF '95. Technical Report P9504. Programming Research Group, University of Amsterdam, Amsterdam, The Netherlands, 29--52.
|
| |
49
|
|
| |
50
|
|
| |
51
|
Mark G. J. van den Brand , Arie van Deursen , Jan Heering , H. A. de Jong , Merijn de Jonge , Tobias Kuipers , Paul Klint , Leon Moonen , Pieter A. Olivier , Jeroen Scheerder , Jurgen J. Vinju , Eelco Visser , Joost Visser, The ASF+SDF Meta-environment: A Component-Based Language Development Environment, Proceedings of the 10th International Conference on Compiler Construction, p.365-370, April 02-06, 2001
|
| |
52
|
van der Meulen, E. A. 1996. Incremental typechecking. In Language Prototyping: An Algebraic Specification Approach, A. van Deursen, J. Heering, and P. Klint, Eds. AMAST Series in Computing, vol. 5. World Scientific, Singapore, 199--248.
|
| |
53
|
van Deursen, A. 1994. Executable language definitions: Case studies and origin tracking techniques. Ph.D. thesis, University of Amsterdam, Amsterdam, The Netherlands.
|
| |
54
|
van Deursen, A., Heering, J., and Klint, P., Eds. 1996. Language Prototyping. AMAST Series in Computing, vol. 5. World Scientific, Singapore.
|
| |
55
|
|
| |
56
|
|
| |
57
|
|
| |
58
|
van Roy, P. 1993. The wonder years of sequential Prolog implementation. J. Logic Program. 19/20, 385--441.
|
| |
59
|
Vinju, J. J. 1999. Optimizations of list matching in the ASF+SDF compiler. M.S. thesis, Programming Research Group, University of Amsterdam, Amsterdam, The Netherlands. Available online at http://www.cwi.nl/∼jurgenv/.
|
| |
60
|
Visser, E. 1997. Syntax definition for language prototyping. Ph.D. thesis, University of Amsterdam, Amesterdam, The Netherlands. Available online at http://www.cs.uu. nl/∼visser/publications/ftp/Vis97.thesis.ps.gz.
|
CITED BY 35
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ross Tate , Michael Stepp , Zachary Tatlock , Sorin Lerner, Equality saturation: a new approach to optimization, Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 21-23, 2009, Savannah, GA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Grit Denker , Carolyn Talcott , Grigore Rosu , Mark van den Brand , Steven Eker , Traian Florin Şerbănuţă, Rewriting Logic Systems, Electronic Notes in Theoretical Computer Science (ENTCS), v.176 n.4, p.233-247, July, 2007
|
|
|
|
|
|
Nicolas Palix , Charles Consel , Laurent Réveillère , Julia Lawall, A stepwise approach to developing languages for SIP telephony service creation, Proceedings of the 1st international conference on Principles, systems and applications of IP telecommunications, July 19-20, 2007, New York City, New York
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Francisco Durán , Manuel Roldán , Emilie Balland , Mark van den Brand , Steven Eker , Karl Trygve Kalleberg , Lennart C. L. Kats , Pierre-Etienne Moreau , Ruslan Schevchenko , Eelco Visser, The Second Rewrite Engines Competition, Electronic Notes in Theoretical Computer Science (ENTCS), v.238 n.3, p.281-291, June, 2009
|
|
|
|
|
|
|
|
|
|
|
|
|
|