Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
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
  • (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
  • Show More Cited By

Recommendations

Reviews

Sergei Gorlatch

This paper describes π, a pattern-based programming language. Based on the observation that programming is all about abstraction, Kn?ll and Mezini introduce patterns as the fundamental and only construct of a so-called pattern language. They define a set of basic features for a pattern language, which includes semantic and syntactic minimality and extensibility. Thus, a pattern language is not only able to resemble any other programming language, but can also overcome limitations of those languages' expressivity. π is an implementation of such a pattern language. The paper gives a thorough step-by-step description of π. Each step introduces new patterns and examples to show how π works and how it actually fulfills the requirements of a pattern language, according to the formal definition. Besides, the examples often refer to π-based implementations of language constructs, such as data types, mathematical operators, and control flow constructs, that are known from other programming languages; this helps readers understand the mechanisms of π more easily. However, the description of the actual implementation of π using Java is a bit too brief. Five use cases are presented to evaluate π's expressivity. The use cases demonstrate that π can express constructs of arbitrary levels of abstraction, up to complete programming languages. The authors also provide a very comprehensive section on related work that is a remarkable overview of recent research directions in programming. This paper is for people who have a good knowledge of programming languages and are interested in future trends of computer programming. Readers with a more technical background might also be interested in the actual implementation of π, but, since the description of the Java implementation of π is rather short, these readers will probably have to look to other sources. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

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
  • 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
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 October 2009
Published in SIGPLAN Volume 44, Issue 10

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

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (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
  • (2013)Neverlang 2 – Componentised Language Development for the JVMSoftware Composition10.1007/978-3-642-39614-4_2(17-32)Online publication date: 2013

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