License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2023.41
URN: urn:nbn:de:0030-drops-182343
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2023/18234/
Henniger, Simon ;
Amin, Nada
The Dolorem Pattern: Growing a Language Through Compile-Time Function Execution (Pearl/Brave New Idea)
Abstract
Programming languages are often designed as static, monolithic units. As a result, they are inflexible. We show a new mechanism of programming language design that allows to more flexible languages: by using compile-time function execution and metaprogramming, we implement a language mostly in itself. Our approach is usable for creating feature-rich, yet low-overhead system programming languages. We illustrate it on two systems, one that lowers to C and one that lowers to LLVM.
BibTeX - Entry
@InProceedings{henniger_et_al:LIPIcs.ECOOP.2023.41,
author = {Henniger, Simon and Amin, Nada},
title = {{The Dolorem Pattern: Growing a Language Through Compile-Time Function Execution}},
booktitle = {37th European Conference on Object-Oriented Programming (ECOOP 2023)},
pages = {41:1--41:27},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-281-5},
ISSN = {1868-8969},
year = {2023},
volume = {263},
editor = {Ali, Karim and Salvaneschi, Guido},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2023/18234},
URN = {urn:nbn:de:0030-drops-182343},
doi = {10.4230/LIPIcs.ECOOP.2023.41},
annote = {Keywords: extensible languages, meta programming, macros, program generation, compilation}
}
Keywords: |
|
extensible languages, meta programming, macros, program generation, compilation |
Collection: |
|
37th European Conference on Object-Oriented Programming (ECOOP 2023) |
Issue Date: |
|
2023 |
Date of publication: |
|
11.07.2023 |
Supplementary Material: |
|
Software (ECOOP 2023 Artifact Evaluation approved artifact): https://doi.org/10.4230/DARTS.9.2.13 Software: https://zenodo.org/record/7720029 |