2011
DOI: 10.1145/1993316.1993514
|View full text |Cite
|
Sign up to set email alerts
|

Languages as libraries

Abstract: Programming language design benefits from constructs for extending the syntax and semantics of a host language. While C's stringbased macros empower programmers to introduce notational shorthands, the parser-level macros of Lisp encourage experimentation with domain-specific languages. The Scheme programming language improves on Lisp with macros that respect lexical scope.The design of Racket-a descendant of Scheme-goes even further with the introduction of a full-fledged interface to the static semantics of t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
34
0

Year Published

2012
2012
2016
2016

Publication Types

Select...
3
2
1

Relationship

0
6

Authors

Journals

citations
Cited by 52 publications
(34 citation statements)
references
References 40 publications
0
34
0
Order By: Relevance
“…The idea of offering facilities to add syntactic constructions to a language remotes to the Lisp language and its dialects, such as Scheme and Racket [9]. These languages use the same notation for data and program, S-expressions, thus they allow the implementation of a flexible and powerful macro-system.…”
Section: Parsing Of Extensible Languagesmentioning
confidence: 99%
See 2 more Smart Citations
“…The idea of offering facilities to add syntactic constructions to a language remotes to the Lisp language and its dialects, such as Scheme and Racket [9]. These languages use the same notation for data and program, S-expressions, thus they allow the implementation of a flexible and powerful macro-system.…”
Section: Parsing Of Extensible Languagesmentioning
confidence: 99%
“…Despite the various methods for implementing DSLs, extensible languages seem to have several advantages over other approaches [8][9][10]. One of the advantages is the possibility of implementing DSLs in a modular way.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Compile-time metaprogramming provides a way to animate external DSLs, making them able to analyze and possibly influence the enclosing program [39].…”
Section: External Domain-specific Languagesmentioning
confidence: 99%
“…Across languages and paradigms, this sort of metaprogramming has been proven immensely useful, acting as an enabling force behind a number of programming techniques, such as: language virtualization (overloading/overriding semantics of the original programming language) [11], embedding of external domain-specific languages (tight integration of external DSLs into the host language) [39,47], self-optimization (self-application of optimizations based on analysis of the program's own code) [34], and boilerplate generation (automatizing repetitive patterns which cannot be readily abstracted away by the underlying language) [29,35].…”
mentioning
confidence: 99%