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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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
Cross Ref
- 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
Index Terms
Romeo: a system for more flexible binding-safe programming
Recommendations
Romeo: a system for more flexible binding-safe programming
ICFP '14: Proceedings of the 19th ACM SIGPLAN international conference on Functional programmingCurrent 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 ...
Languages as libraries
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationProgramming 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