Results 1 -
3 of
3
A PREttier Compiler-Compiler: Generating Higher-order Parsers in C
, 1995
"... This article reports on the utility in question three years after public release. Precc generates standard ANSI C and is `plug compatible' with lex-generated lexical analyzers prepared for the UNIX yacc compilercompiler. In contrast to yacc, however, the generated code is modular, which allows parts ..."
Abstract
-
Cited by 16 (5 self)
- Add to MetaCart
This article reports on the utility in question three years after public release. Precc generates standard ANSI C and is `plug compatible' with lex-generated lexical analyzers prepared for the UNIX yacc compilercompiler. In contrast to yacc, however, the generated code is modular, which allows parts of scripts to be compiled separately and linked together incrementally. The constructed code is relatively efficient, as is demonstrated by the example Occam parser treated in depth here, but the main advantages we claim are ease of use, separation of specification and implementation concerns, and maintainability
Specification, Verification and Prototyping of an Optimized Compiler
, 1994
"... This paper generalizes an algebraic method for the design of a correct compiler to tackle specification and verification of an optimized compiler. The main optimization issues of concern here include the use of existing contents of registers where possible and the identification of common expression ..."
Abstract
-
Cited by 12 (4 self)
- Add to MetaCart
This paper generalizes an algebraic method for the design of a correct compiler to tackle specification and verification of an optimized compiler. The main optimization issues of concern here include the use of existing contents of registers where possible and the identification of common expressions. A register table is introduced in the compiling specification predicates to map each register to an expression whose value is held by it. We define different kinds of predicates to specify compilation of programs, expressions and Boolean tests. A set of theorems relating to these predicates, acting as a correct compiling specification, are presented and an example proof within the refinement algebra of the programming language is given. Based on these theorems, a prototype compiler in Prolog is produced.
The PRECC Compiler Compiler
- in Proceedings of the UKUUG/SUKUG Joint New Year 1993 Conference
, 1993
"... PRECC is a UNIX utility that has been designed to extend the capabilities of the familiar LEX and YACC front-end design and implementation tools. The utility is a compiler-compiler that takes unlimited look-ahead and backtracking, the extended BNF notation, and parametrized grammars with (higher ord ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
PRECC is a UNIX utility that has been designed to extend the capabilities of the familiar LEX and YACC front-end design and implementation tools. The utility is a compiler-compiler that takes unlimited look-ahead and backtracking, the extended BNF notation, and parametrized grammars with (higher order) meta-parameters to the world of C programming. The generated code is standard ANSI C and is `plug compatible' with LEX-generated lexical analysers prepared for YACC. In contrast to YACC, however, the generated code is modular and thus allows parts of scripts to be compiled separately and linked in incrementally. But it remains efficient in practice, and the generated code has run as fast or faster than YACC-generated code in trials with real programming language specifications.

