skip to main content
10.1145/1640089.1640128acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

π: a pattern language

Published: 25 October 2009 Publication History

Abstract

Current programming languages and techniques realize many features which allow their users to extend these languages on a semantic basis: classes, functions, interfaces, aspects and other entities can be defined. However, there is a lack of modern programming languages which are both semantically and syntactically extensible from within the language itself, i.e., with no additional tool or meta-language. In this paper we present π as an approach that aims to overcome this lack. π provides an abstraction mechanism based on parameterized symbols which is capable of semantically and syntactically unifying programming concepts like variables, control-structures, procedures and functions into one concept: the pattern. We have evaluated the abstraction potential and the syntactic extensibility of π by successfully creating patterns for the aforementioned programming concepts. π could serve as a tool for designing new experimental languages and might generally influence the view we have on current programming concepts.

References

[1]
Eric Allen et al. Growing a Syntax Sun Microsystems, FOOL, 2009
[2]
John Aycock, R. Nigel Horspool Practical Earley Parsing University of Calgary, University of Victoria, Canada, The Computer Journal, Volume 45, Number 6, 2002
[3]
Jonathan Bachrach, Massachussetts Institute of Technology The Java Syntactic Extender (JSE) Keith Playford, Functional Objects, Inc., OOPSLA, 2001
[4]
Jonathan Bachrach D-Expressions: Lisp Power, Dylan Style Massachusetts Institute of Technology, USA, Keith Playford, Functional Objects Inc., Somerville, USA
[5]
Don Batory, Bernie Lofaso, Yannis Smaragdakis JTS: Tools for Implementing Domain-Specific Languages The University of Texas at Austin, ICSR, 1998-06
[6]
<Bigwig> http://www.brics.dk/bigwig, 2009-01-22
[7]
Claus Brabrand, Michael I. Schwartzbach Growing Languages with Metamorphic Syntax Macros, PEPM, 2002
[8]
Gilad Bracha Executable Grammars in Newspeak Cadence Design Systems, San Jose, California, USA, ENTCS, Volume 193, Pages 3--18, 2007-11
[9]
Martin Bravenboer, Eelco Visser Concrete Syntax for Objects Universiteit Utrecht, The Netherlands, OOPSLA, 2004
[10]
Boris Burshteyn Generation and Recognition of Formal Languages by Modifiable Grammars ACM SIGPLAN Notices, Volume 25, Number 12, Pages 45--53, 1990-12
[11]
Boris Burshteyn USSA--Universal Syntax and Semantics Analyzer ACM SIGPLAN Notices, Volume 27, Number 1, Pages 42--60, 1992-01
[12]
Alfonso Caracciolo di Forino Some Remarks on the Syntax of Symbolic Programming Languages Communication of the ACM, Volume 6, Number 8, Pages 456--460, 1963-08
[13]
TE. Cheatham The introduction of definitional facilities into higher level programming languages AFIPS, 1966-11
[14]
Henning Christiansen A Survey of Adaptable Grammars Roskilde University Centre, SIGPLAN Notices, volume 25 number 11, pages 33--44, 1990-11
[15]
Tony Clark Beyond Annotations: A Proposal for Extensible Java (XJ) Thames Valley University, United Kingdom, Paul Sammut, James Willans, Cetava Inc.
[16]
Christopher Diggins Superlanguages: Syntactic and Semantic Supersets of other Languages 2008-03-12
[17]
Torbjörn Ekman, Görel Hedin The JastAdd Extensible Java Compiler OOPSLA, 2007-10
[18]
Bryan Ford Parsing Expression Grammars: A Recognition Based Syntactic Foundation POPL, 2004-01
[19]
The Fortress Language Specification Sun Microsystems Inc., 2007
[20]
Isabelle http://www.cl.cam.ac.uk/research/hvg/Isabelle 2009-03-16
[21]
JastAdd http://jastadd.org, 2009-02-25
[22]
Tony Clark, Paul Sammut, James Willans Superlanguages -- Developing Languages and Applications with XMF Ceteva Inc., 2008
[23]
Christopher Graham Seaton A Programming Language Where the Syntax and Semantics Are Mutable at Runtime Master's Thesis, University of Bristol, United Kingdom, 2007-05.
[24]
Bent Brrun Kristensen et al. Abstraction mechanisms in the BETA programming language Aalborg University Center, Aalborg, Denmark, POPL, 1983
[25]
Logix http://www.livelogix.com/logix, 2009-03-02
[26]
Rats! -- An Easily Extensible Parser Generator http://www.cs.nyu.edu/rgrimm/xtc/rats.html, 2009-02-27
[27]
Tim Sheard, Zino Benalssa, Matthleu Martel Introduction to multistage Programming Using MetaML Pacific Software Research Center, Oregon Graduate Institute of Science and Technology, 2000-02
[28]
Walid Taha A Gentle Introduction to Multi-stage Programming Rice University, Houston, Texas, USA, DSPG, 2003
[29]
Walid Taha A Gentle Introduction to Multi-stage Programming, Part II Rice University, Houston, USA, GTTSE, 2007
[30]
Valentin F. Turchin et al. (English: The Language REFAL and its Application in the Automation of Programming) Inter-University Conference on the Automation of Programming of Economical Calculations, Moscow, 1967
[31]
Markus Völter Architecture as Language: A story InfoQ, 2009-01-28
[32]
M. P. Ward Language Oriented Programming Computer Science Department, Durham, 2003-01
[33]
Alessandro Warth OMeta: an Object-Oriented Language for Pattern Matching University of California, Los Angeles, USA, Ian Piumarta, Viewpoints Research Institute, Glendale, California, USA, Dynamic Languages Symposium, OOPSLA, 2007-10
[34]
Daniel Weise, Roger Crew Programmable Syntax Macros Microsoft Research Laboratory, PLDI, 1993
[35]
XLR: Extensible Language and Runtime http://xlr.sourceforge.net/concept/XL.html, 2009-02-19

Cited By

View all
  • (2013)Neverlang 2 – Componentised Language Development for the JVMSoftware Composition10.1007/978-3-642-39614-4_2(17-32)Online publication date: 2013
  • (2015)CONVERSION OF PARKING LOTS BY INTRODUCTION OF CAR SHARING IN PUBLIC HOUSING COMPLEXJournal of Architecture and Planning (Transactions of AIJ)10.3130/aija.80.286180:718(2861-2867)Online publication date: 2015
  • (2013)Incremental concrete syntax for embedded languages with support for separate compilationScience of Computer Programming10.1016/j.scico.2012.12.00278:6(615-632)Online publication date: Jun-2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
October 2009
590 pages
ISBN:9781605587660
DOI:10.1145/1640089
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 44, Issue 10
    OOPSLA '09
    October 2009
    554 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1639949
    Issue’s Table of Contents
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 ACM 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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. domain specific languages
  2. extensibility
  3. language design
  4. language extension
  5. macros
  6. pattern language
  7. patterns
  8. semiotics

Qualifiers

  • Research-article

Conference

OOPSLA09
Sponsor:

Acceptance Rates

OOPSLA '09 Paper Acceptance Rate 25 of 144 submissions, 17%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2013)Neverlang 2 – Componentised Language Development for the JVMSoftware Composition10.1007/978-3-642-39614-4_2(17-32)Online publication date: 2013
  • (2015)CONVERSION OF PARKING LOTS BY INTRODUCTION OF CAR SHARING IN PUBLIC HOUSING COMPLEXJournal of Architecture and Planning (Transactions of AIJ)10.3130/aija.80.286180:718(2861-2867)Online publication date: 2015
  • (2013)Incremental concrete syntax for embedded languages with support for separate compilationScience of Computer Programming10.1016/j.scico.2012.12.00278:6(615-632)Online publication date: Jun-2013
  • (2011)Incremental concrete syntax for embedded languagesProceedings of the 2011 ACM Symposium on Applied Computing10.1145/1982185.1982470(1309-1316)Online publication date: 21-Mar-2011
  • (2010)Endocrine disruption and consequences of chronic exposure to ibuprofen in Japanese medaka (Oryzias latipes) and freshwater cladocerans Daphnia magna and Moina macrocopaAquatic Toxicology10.1016/j.aquatox.2010.02.01398:3(256-264)Online publication date: Jul-2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media