Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Generation of LR parsers by partial evaluation
Sperber M., Thiemann P. ACM Transactions on Programming Languages and Systems22 (2):224-264,2000.Type:Article
Date Reviewed: Nov 1 2000

One of the benefits of functional languages, compared to other languages, is the routineness of correctness proofs at each step of program development. The authors have used this property of Scheme to construct a recursive ascent general LR parser, which is then transformed using offline partial evaluation (also proven correct) into generators of efficient parsers. This last step uses Bondorf’s Similix and Thiemann’s PGG systems, both of which are publicly available on the Internet. The efficiency of the authors’ system matches or exceeds that of stack implemented recursive descent parser generators, and their system has the advantage of understandability and guaranteed correctness.

The performance of the generated parsers, including an imperative version, on three different grammars with inputs whose sizes range from 2 to 983 words, are compared to existing Yacc-based implementations: Mossin’s general parser, a direct-style LR parser, a continuation-based parser, and Bison-generated parsers. The differences in the performance times range from a trivial difference between the system presented here and the Bison-generated parsers, to more than a seven-times improvement over the LR parser. I would have liked to see a column reporting statistical confidence levels for these differences added to the run-time tables.

After detailed descriptions of each of the general parsers considered, the paper ends with pointers to the parser code on the Internet. The 58 references include an address for the PGG system as well.

Reviewer:  D. Appleby Review #: CR123100
Bookmark and Share
 
Parsing (D.3.4 ... )
 
 
Applicative (Functional) Languages (D.3.2 ... )
 
 
Parsing (F.4.2 ... )
 
 
Program Transformation (I.2.2 ... )
 
 
Applicative (Functional) Programming (D.1.1 )
 
 
Automatic Programming (D.1.2 )
 
Would you recommend this review?
yes
no
Other reviews under "Parsing": Date
Optimization of parser tables for portable compilers
Dencker P., Dürre K., Heuft J. ACM Transactions on Programming Languages and Systems 6(4): 546-572, 1984. Type: Article
Aug 1 1985
Syntax analysis and error recovery
Boullier P., Cambridge University Press, New York, NY, 1984. Type: Book (9780521268431)
Jun 1 1985
An efficient incremental LR parser for grammars with epsilon productions
Agrawal R., Detro K. Acta Informatica 19(4): 369-376, 1983. Type: Article
Jan 1 1986
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy