Aspect-oriented prolog in a language processing context

Language processors can be derived from logic grammars. That several concerns in the processor such as parsing, several kinds of analysis or transformations, can be specified as aspects of the logic grammar is demonstred. For that purpose, the authors bring the concepts of aspect-oriented programming to Prolog in a systematic way, based on established Prolog technology. The authors illustrate that typical Prolog programming techniques can be described as generic aspects and provided in a library to support reusable concerns. A domain-specific language (DSL) is developed to improve readability of aspect-oriented specifications.

[1]  Stepwise Enhancement and Higher-Order Programming in Prolog , 2000, J. Funct. Log. Program..

[2]  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.

[3]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[4]  Wamberto Weber Vasconcelos Designing Prolog Programming Techniques , 1993, LOPSTR.

[5]  Leon Sterling,et al.  Composition based on skeletons and techniques , 1993 .

[6]  Günter Kniesel,et al.  Uniform Genericity for Aspect Languages , 2004 .

[7]  Don Batory,et al.  Scaling Step-Wise Refinement , 2004, IEEE Trans. Software Eng..

[8]  SWI-Prolog 5.6 Reference Manual , 2004 .

[9]  Viljem Zumer,et al.  Implementation of multiple attribute grammar inheritance in the tool LISA , 1999, SIGP.

[10]  Kris De Volder Aspect-Oriented Logic Meta Programming , 1998, ECOOP Workshops.

[11]  Hui Wu,et al.  Weaving a debugging aspect into domain-specific language grammars , 2005, SAC '05.

[12]  Beate Baum Another Kind of Modular Attribute Grammars , 1992, CC.

[13]  Leon Sterling,et al.  Constructing provably correct logic programs , 1994 .

[14]  Günter Riedewald,et al.  Towards automatical migration of transformation rules after grammar extension , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[15]  Leon Sterling,et al.  Skeletons and techniques as a normative approach to program development in logic-based languages , 1996 .

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

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

[18]  Joost Visser,et al.  Object-oriented tree traversal with JJForester , 2001, Sci. Comput. Program..

[19]  Ralf Lämmel,et al.  Evolution of rule-based programs , 2004, J. Log. Algebraic Methods Program..

[20]  L. Naish Multi-paradigm Logic Programming Higher-order Logic Programming in Prolog , 1995 .

[21]  Günter Riedewald Prototyping by Using an Attribute Grammar as a Logic Program , 1991, Attribute Grammars, Applications and Systems.

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

[23]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[24]  Ralf Lämmel Reuse by Program Transformation , 1999, Scottish Functional Programming Workshop.

[25]  Leon Sterling,et al.  A methodology for program construction by stepwise structural enhancement , 1994 .

[26]  Marija Kulas,et al.  Debugging Prolog Using Annotations , 2000, WLPE@ICLP.

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

[28]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[29]  Ralf Lämmel,et al.  Prological Language Processing , 2001, LDTA@ETAPS.

[30]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

[31]  Ralf Lämmel,et al.  The Language Development Laboratory , 1997 .

[32]  Marija Kulas,et al.  Annotations for Prolog - A Concept and Runtime Handling , 1999, LOPSTR.

[33]  David Stuart Robertson,et al.  A Simple Prolog Techniques Editor for Novice Users , 1991, ALPUK.

[34]  Robert Giegerich,et al.  Attribute coupled grammars , 1984, SIGPLAN '84.

[35]  Ralf Lämmel,et al.  Functional meta-programs towards reusability in the declarative paradigm , 1998 .

[36]  Leon Sterling,et al.  Applying Techniques to Skeletons , 1993, ICLP Workshop on Construction of Logic Programs.

[37]  Görel Hedin,et al.  JastAdd--an aspect-oriented compiler construction system , 2003, Sci. Comput. Program..

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

[39]  Kenneth Slonneger,et al.  Formal syntax and semantics of programming languages - a laboratory based approach , 1995 .

[40]  Klaus Ostermann,et al.  Back to the Future: Pointcuts as Predicates over Traces , 2005 .

[41]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

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

[43]  Ralf Lämmel,et al.  Declarative Aspect-Oriented Programming , 1999, PEPM.

[44]  Theo D'Hondt,et al.  Aspect-Orientated Logic Meta Programming , 1999, Reflection.

[45]  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..

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

[47]  Stephen R. Adams Modular grammars for programming language prototyping , 1991 .

[48]  Günter Riedewald The LDL - Language Development Laboratory , 1992, CC.