Methods and tools for compiler construction
A One-Pass Algorithm for Overload Resolution in Ada
ACM Transactions on Programming Languages and Systems (TOPLAS)
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Journal of the ACM (JACM)
The Denotational Description of Programming Languages: An Introduction
The Denotational Description of Programming Languages: An Introduction
Compiler Construction
A simplified operator identification scheme for Ada
ACM SIGPLAN Notices
Rationale for the design of the Ada programming language
ACM SIGPLAN Notices - Rationale for the deisgn of the Ada programming language
The contour model of block structured processes
ACM SIGPLAN Notices
A unified language processing methodology
Theoretical Computer Science
Generating Model Checkers from Algebraic Specifications
Formal Methods in System Design
Algebraic implementation of CTL model checker
MMACTEE'06 Proceedings of the 8th WSEAS international conference on Mathematical methods and computational techniques in electrical engineering
Hi-index | 0.01 |
The language of universal algebras is used as an alternative approach for programming language specification. BNF rules are employed for specifying the signature of the language algebra instead of the context free syntax. The algorithm for program parsing is inductively defined by the following universal algebraic construction: Any function defined on the generators of a free algebra taking values in the carrier of another similar algebra can he uniquely extended to a homomorphism between the two algebras. Any conventional programming language can be specified by a finite set of BNF rules and its algebra of symbols is generated by a finite set of generator classes. Thus any function defined on the finite set of generators offers an algebraic mechanism for a universal algorithm for source language program parsing. The right-hand side of the BNF rules are the patterns searched by the algorithm in the source text of the program. The essential feature of this algorithm is that it can be used as a driver for code generation and optimization in a translator. This driver recognizes source language constructs in the source text. The code generator evaluates them into the target language regenerating the source language program inductively as a target language program. Therefore this parser is also called a program evaluator.