PROFIT: A System Integrating Logic Programming and Attribute Grammars

PROFIT is a system and a programming language where Prolog is extended with concepts needed in compiler writing applications. The special facilities include a deterministic error-recovering form of definite clause grammars (DCGs), functions as conditional equations, and functional terms modelling inherited and synthesized attributes of attribute grammars. PROFIT supports a multi-paradigm method of writing compilers in a compact and natural way. Most notably PROFIT can be used to express one-pass compilation within the framework of logical one-pass attribute grammars, a proper superset of L-attributed grammars.

[1]  Günter Riedewald,et al.  Using an Attribute Grammar as a Logic Program , 1988, PLILP.

[2]  Pierre Deransart,et al.  Attribute Grammars: Definitions, Systems and Bibliography , 1988 .

[3]  Ralph Morelli,et al.  Book reivew: LOGIC PROGRAMMING: FUNCTIONS, RELATIONS AND EQUATIONS. Edited by Doug DeGroot and Gary Lindstrom (Prentice-Hall) , 1987, SGAR.

[4]  Gregor von Bochmann,et al.  Semantic evaluation from left to right , 1976, CACM.

[5]  Per Brinch Hansen Programming a personal computer , 1982 .

[6]  Pedro Rangel Henriques A Semantic Evaluator Generating System in Prolog , 1988, PLILP.

[7]  Jukka Paakki A Practical Implementation of DCGs (Abstract) , 1990, CC.

[8]  M. Martin,et al.  The parser generating system PGS , 1989, Softw. Pract. Exp..

[9]  David H. D. Warren Logic programming and compiler writing , 1980, Softw. Pract. Exp..

[10]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[11]  Wlodzimierz Drabent Do Logic Programs Resemble Programs in Conventional Languages? , 1987, SLP.

[12]  Michael J. O'Donnell,et al.  Equational Logic as a Programming Language , 1985, Logic of Programs.

[13]  Doug DeGroot,et al.  Logic programming - functions, relations and equations , 1986 .

[14]  M. H. van Emden,et al.  Logic Programming with Equations , 1987, J. Log. Program..

[15]  Jan Maluszynski,et al.  A grammatical view of logic programming , 1988, PLILP.

[16]  Jean-François Monin A Compiler Written in Prolog: The Véda Experience , 1988, PLILP.

[17]  José Meseguer,et al.  EQLOG: Equality, Types, and Generic Modules For Logic Programming , 1986, Logic Programming: Functions, Relations, and Equations.

[18]  Jan Maluszynski,et al.  Relating Logic Programs and Attribute Grammars , 1985, J. Log. Program..

[19]  Sanjai Narain A Technique for Doing Lazy Evaluation in Logic , 1986, J. Log. Program..

[20]  Ole Lehrmann Madsen,et al.  Extended Attribute Grammars , 1981, Comput. J..

[21]  Uwe Kastens,et al.  GAG: A Practical Compiler Generator , 1982, Lecture Notes in Computer Science.

[22]  Jim Welsh,et al.  Structured System Programming , 1980 .

[23]  Barrett R. Bryant,et al.  Rapid prototyping of programming language semantics using Prolog , 1989, [1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference.

[24]  Jia-Huai You,et al.  FUNLOG: A Computational Model Integrating Logic Programming and Functional Programming , 1986, Logic Programming: Functions, Relations, and Equations.

[25]  Isabelle Attali,et al.  Compiling TYPOL with Attribute Grammars , 1988, PLILP.

[26]  David H. D. Warren,et al.  Definite Clause Grammars for Language Analysis - A Survey of the Formalism and a Comparison with Augmented Transition Networks , 1980, Artif. Intell..

[27]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[28]  Daniel J. Rosenkrantz,et al.  Attributed Translations , 1974, J. Comput. Syst. Sci..

[29]  Jukka Paakki,et al.  An error-recovering form of DCGs , 1990, Acta Cybernetica.

[30]  Mary Shaw,et al.  Prospects for an engineering discipline of software , 1990, IEEE Software.

[31]  Jukka Paakki,et al.  A Logic-Based Modification of Attribute Grammars for Practical Compiler Writing , 1990, International Conference on Logic Programming.

[32]  Jukka Paakki Prolog in Practical Compiler Writing , 1991, Comput. J..

[33]  Jacques Cohen,et al.  Parsing and compiling using Prolog , 1987, TOPL.