Macro-by-example: Deriving syntactic transformations from their specifications
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Abstract continuations: a mathematical semantics for handling full jumps
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
A generalization of exceptions and control in ML-like languages
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Embedding type structure in semantics
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Continuation-Based Program Transformation Strategies
Journal of the ACM (JACM)
Deriving Target Code as a Representation of Continuation Semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Final Data Types and Their Specification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Continuation Semantics in Typed Lambda-Calculi (Summary)
Proceedings of the Conference on Logic of Programs
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Reification: Reflection without metaphysics
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Continuation-based multiprocessing
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
A sound and complete axiomatization of delimited continuations
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
A tutorial on the universality and expressiveness of fold
Journal of Functional Programming
Journal of Functional Programming
What is a purely functional language?
Journal of Functional Programming
Syntactic processing and functional sentence perspective
TINLAP '75 Proceedings of the 1975 workshop on Theoretical issues in natural language processing
A uniform architecture for parsing and generation
COLING '88 Proceedings of the 12th conference on Computational linguistics - Volume 2
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A monadic framework for delimited continuations
Journal of Functional Programming
Essentials of Programming Languages, 3rd Edition
Essentials of Programming Languages, 3rd Edition
Direct implementation of shift and reset in the MinCaml compiler
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Combinator Parsing: A Short Tutorial
Language Engineering and Rigorous Software Development
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
Journal of Functional Programming
On typing delimited continuations: three new solutions to the printf problem
Higher-Order and Symbolic Computation
Polymorphic delimited continuations
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Invertible syntax descriptions: unifying parsing and pretty printing
Proceedings of the third ACM Haskell symposium on Haskell
Delimited control in OCaml, abstractly and concretely: system description
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Hi-index | 0.00 |
Danvy's functional unparsing problem (Danvy in J. Funct. Program. 8(6), 621---625, 1998) is to implement a type-safe `printf' function, which converts a sequence of heterogeneous arguments to a string according to a given format. The dual problem is to implement a type-safe `scanf' function, which extracts a sequence of heterogeneous arguments from a string by interpreting (Friedman and Wand in LFP, pp. 348---355, 1984 and in Essentials of Programming Languages, MIT Press, 2008) the same format as an equally heterogeneous sequence of patterns that binds zero or more variables. We derive multiple solutions to both problems (Wand in J. ACM 27(1), 164---180, 1980) from their formal specifications (Wand in Theor. Comput. Sci. 20(1), 3---32, 1982).On one hand, our solutions show how the Hindley-Milner type system, unextended, permits accessing heterogeneous sequences with the static assurance of type safety. On the other hand, our solutions demonstrate the use of control operators (Felleisen et al. in Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, pp. 52---62, ACM Press, New York, 1988; Wand in POPL 85: Conference Record of the Annual ACM Symposium on Principles of Programming Languages, vol. 16, ACM Press, New York, 1985; Meyer and Wand in Logics of Programs, Lecture Notes in Computer Science, vol. 193, pp. 219---224, Springer, Berlin, 1985) to communicate with formats as coroutines (Wand in Proceedings of the 1980 ACM Conference on Lisp and Functional Programming, vol. 12, pp. 285---299, ACM Press, New York, 1980 and Haynes et al. in LFP, pp. 293---298, 1984).