ABSTRACT
Current languages for safely manipulating values with names only support term languages with simple binding syntax. As a result, no tools exist to safely manipulate code written in those languages for which name problems are the most challenging. We address this problem with Romeo, a language that respects α-equivalence on its values, and which has access to a rich specification language for binding, inspired by attribute grammars. Our work has the complex-binding support of David Herman's λm, but is a full-fledged binding-safe language like Pure FreshML.
- B. E. Aydemir et al. Mechanized metatheory for the masses: The PoplMark challenge. In Proceedings of the 18th International Conference on Theorem Proving in Higher Order Logics, TPHOLs'05, pages 50--65, Berlin, Heidelberg, 2005. Springer-Verlag. ISBN 3-540-28372-2, 978-3-540-28372-0. URL http://dx.doi.org/10.1007/11541868_4. Google ScholarDigital Library
- W. Clinger and J. Rees. Macros that work. In Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '91, pages 155--162, New York, NY, USA, 1991. ACM. ISBN 0-89791-419-8. URL http://doi.acm.org/10.1145/99583.99607. Google ScholarDigital Library
- R. K. Dybvig, R. Hieb, and C. Bruggeman. Syntactic abstraction in scheme. Lisp Symb. Comput., 5 (4): 295--326, Dec. 1992. ISSN 0892-4635. URL http://dx.doi.org/10.1007/BF01806308. Google ScholarDigital Library
- S. Erdweg, T. van der Storm, and Y. Dai. Capture-avoiding and hygienic program transformations. In Proceedings of the 28th European Conference on Object-Oriented Programming. To appear.Google Scholar
- S. E. Ganz, A. Sabry, and W. Taha. Macros as multi-stage computations: type-safe, generative, binding macros in MacroML. ACM SIGPLAN Notices, 36 (10): 74-74--85-85, Oct. 2001. ISSN 0362-1340. URL http://portal.acm.org/citation.cfm?id=507669.507646. Google ScholarDigital Library
- D. Hendriks and V. van Oostrom. Adbmal. In F. Baader, editor, Automated Deduction - CADE-19, volume 2741 of Lecture Notes in Computer Science, pages 136--150. Springer Berlin Heidelberg, 2003. ISBN 978-3-540-40559-7. URL http://dx.doi.org/10.1007/978-3-540-45085-6_11.Google Scholar
- D. Herman. A Theory of Typed Hygienic Macros. Ph.D. thesis, Northeastern University, 2010. URL http://www.ccs.neu.edu/home/dherman/research/papers/dissertation.pdf Google ScholarDigital Library
- D. Herman and M. Wand. A theory of hygienic macros. In Proceedings of the Theory and Practice of Software, 17th European Conference on Programming Languages and Systems, ESOP'08/ETAPS'08, pages 48--62, Berlin, Heidelberg, 2008. Springer-Verlag. URL http://dx.doi.org/10.1007/978-3-540-78739-6_4. Google ScholarDigital Library
- L. D. Moura and N. Bjørner. Z3: An efficient SMT solver. Tools and Algorithms for the Construction and Analysis of Systems SE - 24, 4963: 337--340, 2008. URL http://dx.doi.org/10.1007/978-3-540-78800-3_24. Google ScholarDigital Library
- F. Muehlboeck. Checking Binding Hygiene Statically. Master's thesis, Northeastern University, 2013. URL http://hdl.handle.net/2047/d20003134.Google Scholar
- R. Pollack, M. Sato, and W. Ricciotti. A canonical locally named representation of binding. J. Autom. Reason., 49 (2): 185--207, Aug. 2012. ISSN 0168-7433. URL http://dx.doi.org/10.1007/s10817-011-9229-y. Google ScholarDigital Library
- F. Pottier. An overview of Cαml. Electronic Notes in Theoretical Computer Science, 148 (2): 27--52, 2006. URL http://www.sciencedirect.com/science/article/pii/S1571066106001253. Google ScholarDigital Library
- F. Pottier. Static name control for FreshML. In Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science, LICS '07, pages 356--365, Washington, DC, USA, 2007. IEEE Computer Society. ISBN 0-7695-2908-9. URL http://dx.doi.org/10.1109/LICS.2007.44. Google ScholarDigital Library
- N. Pouillard and F. Pottier. A fresh look at programming with names and binders. In Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, ICFP '10, pages 217--228, New York, NY, USA, 2010. ACM. ISBN 978-1-60558-794-3. URL http://doi.acm.org/10.1145/1863543.1863575. Google ScholarDigital Library
- N. Pouillard and F. Pottier. A unified treatment of syntax with binders. Journal of Functional Programming, 22 (4-5): 614--704, Sept. 2012. URL http://dx.doi.org/10.1017/S0956796812000251. Google ScholarDigital Library
- P. Sewell et al. Ott: Effective tool support for the working semanticist. J. Funct. Program., 20 (1): 71--122, Jan. 2010. ISSN 0956-7968. URL http://dx.doi.org/10.1017/S0956796809990293. Google ScholarDigital Library
- C. Urban. Nominal techniques in Isabelle/HOL. J. Autom. Reason., 40 (4): 327--356, May 2008. ISSN 0168-7433. URL http://dx.doi.org/10.1007/s10817-008-9097-2. Google ScholarDigital Library
Index Terms
- Romeo: a system for more flexible binding-safe programming
Recommendations
Macros for domain-specific languages
Macros provide a powerful means of extending languages. They have proven useful in both general-purpose and domain-specific programming contexts. This paper presents an architecture for implementing macro-extensible DSLs on top of macro-extensible host ...
Romeo: a system for more flexible binding-safe programming
ICFP '14Current languages for safely manipulating values with names only support term languages with simple binding syntax. As a result, no tools exist to safely manipulate code written in those languages for which name problems are the most challenging. We ...
Languages as libraries
PLDI '11Programming language design benefits from constructs for extending the syntax and semantics of a host language. While C's string-based macros empower programmers to introduce notational shorthands, the parser-level macros of Lisp encourage ...
Comments