skip to main content
research-article

Romeo: a system for more flexible binding-safe programming

Published: 19 August 2014 Publication History

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.

References

[1]
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.
[2]
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.
[3]
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.
[4]
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.
[5]
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.
[6]
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.
[7]
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
[8]
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.
[9]
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.
[10]
F. Muehlboeck. Checking Binding Hygiene Statically. Master's thesis, Northeastern University, 2013. URL http://hdl.handle.net/2047/d20003134.
[11]
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.
[12]
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.
[13]
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.
[14]
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.
[15]
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.
[16]
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.
[17]
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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 49, Issue 9
ICFP '14
September 2014
361 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2692915
Issue’s Table of Contents
  • cover image ACM Conferences
    ICFP '14: Proceedings of the 19th ACM SIGPLAN international conference on Functional programming
    August 2014
    390 pages
    ISBN:9781450328739
    DOI:10.1145/2628136
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 August 2014
Published in SIGPLAN Volume 49, Issue 9

Check for updates

Author Tags

  1. alpha-equivalence
  2. binding
  3. languages
  4. macros

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2018)Creating Domain-Specific Languages by Composing Syntactical ConstructsPractical Aspects of Declarative Languages10.1007/978-3-030-05998-9_12(187-203)Online publication date: 19-Dec-2018
  • (2016)Needle & KnotProceedings of the 25th European Symposium on Programming Languages and Systems - Volume 963210.1007/978-3-662-49498-1_17(419-445)Online publication date: 2-Apr-2016
  • (2015)A Theory of Name ResolutionCompiler Construction10.1007/978-3-662-46669-8_9(205-231)Online publication date: 2015
  • (2022)Composable Sequence Macros for Fast IterationProceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3564719.3568696(59-71)Online publication date: 29-Nov-2022
  • (2020)Hygienic macro technologyProceedings of the ACM on Programming Languages10.1145/33863304:HOPL(1-110)Online publication date: 12-Jun-2020
  • (2018)Inferring type rules for syntactic sugarACM SIGPLAN Notices10.1145/3296979.319239853:4(812-825)Online publication date: 11-Jun-2018
  • (2018)Inferring type rules for syntactic sugarProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3192366.3192398(812-825)Online publication date: 11-Jun-2018
  • (2017)A Tutorial on Canonical Correlation MethodsACM Computing Surveys10.1145/313662450:6(1-33)Online publication date: 22-Nov-2017
  • (2017)A Survey on Optical Network-on-Chip ArchitecturesACM Computing Surveys10.1145/313134650:6(1-37)Online publication date: 6-Dec-2017
  • (2017)Inferring scope through syntactic sugarProceedings of the ACM on Programming Languages10.1145/31102881:ICFP(1-28)Online publication date: 29-Aug-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media