The C programming language
Context-sensitive editing with PSG environments
An international workshop on Advanced programming environments
The TEXbook
Target code generation from G-machine code
Proc. of a workshop on Graph reduction
Structured COBOL programming (5th ed.)
Structured COBOL programming (5th ed.)
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Software—Practice & Experience
The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
TuringTool: A User Interface to Aid in the Software Maintenance Task
IEEE Transactions on Software Engineering
A language-independent pretty printer
Software—Practice & Experience
A process specification formalism
Fundamenta Informaticae
A design rationale for a language-based editor
Software—Practice & Experience
Eiffel: the language
A meta-environment for generating programming environments
ACM Transactions on Software Engineering and Methodology (TOSEM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Functional Programming and Parallel Graph Rewriting
Functional Programming and Parallel Graph Rewriting
GEL, a Graph Exchange Language.
GEL, a Graph Exchange Language.
ARM abstract rewriting machine
ARM abstract rewriting machine
Warm fusion in Stratego: A case study in generation of program transformation systems
Annals of Mathematics and Artificial Intelligence
Towards automated modification of legacy assets
Annals of Software Engineering
Cracking the 500-Language Problem
IEEE Software
From relational program dependencies to hypertextual access structures
Nordic Journal of Computing
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
The ASF+SDF Meta-environment: A Component-Based Language Development Environment
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Restructuring of COBOL/CICS legacy systems
Science of Computer Programming - Software maintenance and reengineering (CSMR 99)
Cost-Effective Maintenance Tools for Proprietary Languages
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Automated mass maintenance of a software portfolio
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
IELR(1): practical LR(1) parser tables for non-LR(1) grammars with conflict resolution
Proceedings of the 2008 ACM symposium on Applied computing
Stable, flexible, peephole pretty-printing
Science of Computer Programming
Accelerating the creation of customized, language-Specific IDEs in Eclipse
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
A survey of strategies in rule-based program transformation systems
Journal of Symbolic Computation
Science of Computer Programming
Domain-Specific Languages for Composable Editor Plugins
Electronic Notes in Theoretical Computer Science (ENTCS)
Pure and declarative syntax definition: paradise lost and regained
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Less is more: unparser-completeness of metalanguages for template engines
Proceedings of the 10th ACM international conference on Generative programming and component engineering
Embeddable framework for syntax-safe source code generation
Proceedings of the 2012 Joint International Conference on Human-Centered Computer Environments
Applications of the ASF+SDF meta-environment
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Renovation of the Asf+Sdf meta-environment: current state of affairs
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
Implementation of a prototype for the new ASF+SDF meta-environment
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
Obtaining a COBOL grammar from legacy code for reengineering purposes
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
An algebraic specification of a transformation tool for prolog programs
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
Specification of rewriting strategies
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
An algorithm for layout preservation in refactoring transformations
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
SFM'12 Proceedings of the 12th international conference on Formal Methods for the Design of Computer, Communication, and Software Systems: formal methods for model-driven engineering
A framework for extensible languages
Proceedings of the 12th international conference on Generative programming: concepts & experiences
A framework for extensible languages
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
Good documentation is important for the production of reusable and maintainable software. For the production of accurate documentation it is necessary that the original program text is not copied manually to obtain a typeset version. Apart from being tedious, this will invariably introduce errors. The production of tools that support the production of legible and accurate documentation is a software engineering challenge in itself. We present an algebraic approach to the generation of tools that produce typographically effective presentations of computer programs. A specification of a formatter is generated from the context-free grammar of a (programming) language. These generated formatters translate abstract syntax trees of programs into box expressions. Box expressions are translated by language-independent interpreters of the box language into ASCII or TEX. The formatting rules that are generated can easily be tuned in order to get the desired formatting of programs. We demonstrate this by means of real-life applications. Furthermore, we give a practical solution for the problem of formatting comments, which occur in the original text. The formatter generation approach proposed in this article can be used to generate formatting programs for arbitrary programming environments. Our formatter generation approach can be used to automatically generate formatters that have to be programmed explicitly in other systems.