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

Languages as first-class citizens (vision paper)

Published: 24 October 2018 Publication History

Abstract

In this paper, we introduce languages as first-class citizens as a sub-paradigm of language-oriented programming. In this approach, language definitions are in the context of a general purpose programming language with the same status as any other expression. In particular, language definitions are elevated to be run-time values, that can be assigned to variables, passed to functions, returned by functions, and inserted into lists, to name a few possibilities. This approach offers flexible features in the run-time creation and modification of languages, and may promote new idioms in language-oriented programming. As a proof of concept, we have designed and implemented lang-n-play, a functional language with languages as first-class citizens. We present the features of lang-n-play with an example, and show that they naturally enable dynamic programming scenarios.

References

[1]
Erwan Bousse, Thomas Degueule, Didier Vojtisek, Tanja Mayerhofer, Julien Deantoni, and Benoit Combemale. 2016. Execution Framework of the GEMOC Studio (Tool Demo). In Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering (SLE 2016). ACM, New York, NY, USA, 84–89.
[2]
Arvid Butting, Robert Eikermann, Oliver Kautz, Bernhard Rumpe, and Andreas Wortmann. 2018. Modeling Language Variability with Reusable Language Components. In Proceedings of the 22nd International Systems and Software Product Line Conference (SPLC ’18). ACM, New York, NY, USA.
[3]
Sergey Dmitriev. 2004. Language Oriented Programming: The Next Programming Paradigm.
[4]
Sebastian Erdweg, Paolo G. Giarrusso, and Tillmann Rendel. 2012. Language Composition Untangled. In Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications (LDTA ’12). ACM, New York, NY, USA, Article 7, 8 pages.
[5]
Sebastian Erdweg, Tillmann Rendel, Christian Kästner, and Klaus Ostermann. 2011. SugarJ: Library-based Syntactic Language Extensibility. SIGPLAN Not. 46, 10 (Oct. 2011), 391–406.
[6]
Sebastian Erdweg, Tijs van der Storm, Markus Völter, Laurence Tratt, Remi Bosman, William R. Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly, Alex Loh, Gabriël Konat, Pedro J. Molina, Martin Palatnik, Risto Pohjonen, Eugen Schindler, Klemens Schindler, Riccardo Solmi, Vlad Vergu, Eelco Visser, Kevin van der Vlist, Guido Wachsmuth, and Jimi van der Woning. 2015. Evaluating and Comparing Language Workbenches. Comput. Lang. Syst. Struct. 44, PA (Dec. 2015), 24–47.
[7]
Kathleen Shanahan Fisher. 1996. Type Systems for Object-oriented Programming Languages. Ph.D. Dissertation. Stanford, CA, USA. Advisor(s) Mitchell, John C. AAI9702891.
[8]
Matthew Flatt and PLT. 2010. Reference: Racket. Technical Report PLT-TR-2010-1. PLT Design Inc. https://racket-lang.org/tr1/ .
[9]
Martin Fowler. 2005. Language Workbenches: The Killer-App for Domain Specific Languages?
[10]
Benedict R. Gaster and Mark P. Jones. 1996. A Polymorphic Type System for Extensible Records and Variants. Technical Report.
[11]
Lennart C. L. Kats and Eelco Visser. 2010. The spoofax language workbench: rules for declarative specification of languages and IDEs, In OOPSLA. SIGPLAN Notice 45, 444–463.
[12]
Jörg Kienzle, Olivier Barais, Thomas Degueule, Robert Heinrich, JeanMarc Jézéquel, Manuel Leduc, Tanja Mayerhofer, Sébastien Mosser, Matthias Schöttle, and Misha Strittmatter. 2018. Concern-Oriented Language Development ( COLD ) : Fostering Reuse in Language Engineering. Computer Languages, Systems & Structures (2018).
[13]
Holger Krahn, Bernhard Rumpe, and Steven Völkel. 2010. MontiCore: A Framework for Compositional Development of Domain Specific Languages. Int. J. Softw. Tools Technol. Transf. 12, 5 (Sept. 2010), 353– 372.
[14]
Thomas Kühn, Walter Cazzola, and Diego Mathias Olivares. 2015. Choosy and Picky: Configuration of Language Product Lines. In Proceedings of the 19th International Conference on Software Product Line (SPLC ’15). ACM, New York, NY, USA, 71–80.
[15]
David Méndez-Acuña, José A. Galindo, Thomas Degueule, Benoît Combemale, and Benoit Baudry. 2016. Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review. Computer Languages, Systems & Structures 46 (2016), 206–235.
[16]
Dale Miller and Gopalan Nadathur. 2012. Programming with HigherOrder Logic (1st ed.). Cambridge University Press, New York, NY, USA.
[17]
Benjamin C. Pierce. 2002. Types and Programming Languages. MIT Press.
[18]
Didier Rémy. 1994. Programming Objects with ML-ART, an Extension to ML with Abstract and Record Types. In Proceedings of the International Conference on Theoretical Aspects of Computer Software (TACS ’94). Springer-Verlag, London, UK, UK, 321–346. http: //dl.acm.org/citation.cfm?id=645868.668492
[19]
Edoardo Vacchi and Walter Cazzola. 2015. Neverlang: A framework for feature-oriented language development. Computer Languages, Systems & Structures 43 (2015), 1–40.
[20]
Mitchell Wand. 1994. Type Inference for Objects with Instance Variables and Inheritance. In Theoretical Aspects of Object-Oriented Programming, Carl Gunter and John C. Mitchell (Eds.). MIT Press, 97– 120. http://www.ccs.neu.edu/home/wand/papers/gunter-mitchell-94. dvi Originally appeared as Northeastern University College of Computer Science Technical Report NU-CCS-89-2, February, 1989.
[21]
M. P. Ward. 1995. Language Oriented Programming. Software–Concepts and Tools 15 (1995), 147–161.

Cited By

View all
  • (2024) i C o L a +Journal of Systems and Software10.1016/j.jss.2024.111979211:COnline publication date: 2-Jul-2024
  • (2022)Lang-n-Send Extended: Sending Regular Expressions to MonitorsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.365.5365(69-84)Online publication date: 9-Aug-2022
  • (2022)iCoLa: A Compositional Meta-language with Support for Incremental Language DevelopmentProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567529(202-215)Online publication date: 29-Nov-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2018: Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering
October 2018
219 pages
ISBN:9781450360296
DOI:10.1145/3276604
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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 October 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. functional languages
  2. language design
  3. language-oriented programming

Qualifiers

  • Research-article

Conference

SLE '18
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024) i C o L a +Journal of Systems and Software10.1016/j.jss.2024.111979211:COnline publication date: 2-Jul-2024
  • (2022)Lang-n-Send Extended: Sending Regular Expressions to MonitorsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.365.5365(69-84)Online publication date: 9-Aug-2022
  • (2022)iCoLa: A Compositional Meta-language with Support for Incremental Language DevelopmentProceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3567512.3567529(202-215)Online publication date: 29-Nov-2022
  • (2022)A Query Language for Language AnalysisSoftware Engineering and Formal Methods10.1007/978-3-031-17108-6_4(57-73)Online publication date: 26-Sep-2022
  • (2022)A Calculus for Multi-language Operational SemanticsSoftware Verification10.1007/978-3-030-95561-8_3(25-42)Online publication date: 22-Feb-2022
  • (2021)Vision: the next 700 language workbenchesProceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3486608.3486907(16-21)Online publication date: 17-Oct-2021
  • (2020)On the Effectiveness of Higher-Order Logic Programming in Language-Oriented ProgrammingFunctional and Logic Programming10.1007/978-3-030-59025-3_7(106-123)Online publication date: 2-Sep-2020

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