archives

Design, Implementation, Use, and Evaluation of Ox: An Attribute- Grammar Compiling System based on Yacc, Lex, and C


Home 

About 

Browse 

Search 

Register 

Subscriptions 

Deposit Papers 

Help
    

Bischoff, Kurt M. (1992) Design, Implementation, Use, and Evaluation of Ox: An Attribute- Grammar Compiling System based on Yacc, Lex, and C. Technical Report TR92-31, Department of Computer Science, Iowa State University.

Full text available as:Postscript
Adobe PDF

Abstract

Design, Implementation, Use, and Evaluation of
Ox: An Attribute Grammar Compiling System
based on Yacc, Lex, and C
by Kurt M. Bischoff
TR#92-31
December, 1992
Ox generalizes the function of Yacc in the way that attribute
grammars generalize context-free grammars.  Ordinary Yacc and Lex
specifications may be augmented with definitions of synthesized
and inherited attributes written in C syntax.  From these
specifications, Ox generates a program that builds and decorates
attributed parse trees.  Ox accepts a most general class of
attribute grammars.  The user may specify postdecoration
traversals for easy ordering of side effects such as code
generation.  Ox handles the tedious and error-prone details of
writing code for parse-tree management, so its use eases problems
of security and maintainability associated with that aspect of
translator development.
The translators generated by Ox use internal memory management
that is often much faster than the common technique of calling
malloc once for each parse-tree node.
Ox is a Yacc/Lex/C preprocessor, and is designed to bring
attribute grammars closer to the mainstream of Unix-based
language development.  Ox inherits all of the familiar syntax and
semantics of Yacc, Lex, and C.  It is relatively easy to convert
programs between Ox code and "pure Yacc/Lex/C" code.
Ox has been used to build a compiler for a small (eighty grammar
rules) block-structured imperative programming language.
This paper considers Ox's design, implementation, and use,
evaluates the performance of Ox-generated evaluators, and makes
recommendations for improvements in Ox.

Subjects:All uncategorized technical reports
ID code:00000034
Deposited by:Staff Account on 01 December 1992



Contact site administrator at: ssg@cs.iastate.edu