The ergo support system: an integrated set of tools for prototyping integrated environments
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Design of a Pretty-printing Library
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Journal of Functional Programming
There and back again: arrows for invertible programming
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Syntax-Directed Pretty Printing A First Step Towards a Syntax-Directed Editor
IEEE Transactions on Software Engineering
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Linear, bounded, functional pretty-printing
Journal of Functional Programming
Invertible syntax descriptions: unifying parsing and pretty printing
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
FliPpr: a prettier invertible printing system
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
A new approach to correct-by-construction pretty-printing is presented. The basic methodology is the one of classical (not necessarily correct) pretty-printing: users convert values to pretty-printer documents, and a general rendering algorithm turns documents into strings. The main novelty is that dependent types are used to ensure that, for each value, the constructed document is correct with respect to the value and a given grammar. Other parts of the development use well-established technology: the pretty-printer document interface is basically that of Wadler (2003), but with more precise types, and a single additional primitive combinator; and Wadler's rendering algorithm is used. It is proved that if a given value is pretty-printed, and the resulting string parsed (with respect to the same, unambiguous grammar), then the original value is obtained. No guarantees are made about "prettiness".