LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Eli: a complete, flexible compiler construction system
Communications of the ACM
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Growing languages with metamorphic syntax macros
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
ACM Transactions on Internet Technology (TOIT)
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Maude: specification and programming in rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
The ASF+SDF Meta-environment: A Component-Based Language Development Environment
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Origin Tracking in Primitive Recursive Schemes.
Origin Tracking in Primitive Recursive Schemes.
Pretty-Printing for Software Reengineering
ICSM '02 Proceedings of the International Conference on Software Maintenance (ICSM'02)
The metafront system: Safe and extensible parsing and transformation
Science of Computer Programming
A shortcut fusion rule for circular program calculation
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Silver: an Extensible Attribute Grammar System
Electronic Notes in Theoretical Computer Science (ENTCS)
Information Systems
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
Revised6 report on the algorithmic language scheme
Journal of Functional Programming
Semantics and pragmatics of new shortcut fusion rules
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
We propose an algebra of languages and transformations as a means of compositional syntactic language extension. The algebra provides a layer of high-level abstractions built on top of languages (captured by context-free grammars) and transformations (captured by constructive catamorphisms). The algebra is self-contained in that any term of the algebra specifying a transformation can be reduced to a constant catamorphism, before the transformation is run. Thus, the algebra comes ''for free'' without sacrificing the strong safety and efficiency properties of constructive catamorphisms. The entire algebra as presented in the paper is implemented as the Banana Algebra Tool which may be used to syntactically extend languages in an incremental and modular fashion via algebraic composition of previously defined languages and transformations. We demonstrate and evaluate the tool via several kinds of extensions.