The platform will undergo maintenance on Sep 14 at about 7:45 AM EST and will be unavailable for approximately 2 hours.
2012
DOI: 10.1007/978-3-642-31057-7_26
|View full text |Cite
|
Sign up to set email alerts
|

Marco: Safe, Expressive Macros for Any Language

Abstract: Abstract. Macros improve expressiveness, concision, abstraction, and language interoperability without changing the programming language itself. They are indispensable for building increasingly prevalent multilingual applications. Unfortunately, existing macro systems are wellencapsulated but unsafe (e.g., the C preprocessor) or are safe but tightlyintegrated with the language implementation (e.g., Scheme macros). This paper introduces Marco, the first macro system that seeks both encapsulation and safety. Mar… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
9
0

Year Published

2014
2014
2017
2017

Publication Types

Select...
3
3
2

Relationship

1
7

Authors

Journals

citations
Cited by 13 publications
(9 citation statements)
references
References 27 publications
0
9
0
Order By: Relevance
“…Jeannie takes this to the extreme by embedding Java into C and vice versa [Hirzel and Grimm 2007]. Finally, Marco is a macro system that supports multiple target languages, including C++, while still offering early error detection [Lee et al 2012]. In contrast to these approaches, extensibility in SPL focuses on operators.…”
Section: Extensibilitymentioning
confidence: 99%
“…Jeannie takes this to the extreme by embedding Java into C and vice versa [Hirzel and Grimm 2007]. Finally, Marco is a macro system that supports multiple target languages, including C++, while still offering early error detection [Lee et al 2012]. In contrast to these approaches, extensibility in SPL focuses on operators.…”
Section: Extensibilitymentioning
confidence: 99%
“…Macro systems do not usually differentiate between lexical elements of the hosting language such as expressions, identifiers, constants, etc. One preprocessor that differs in this aspect is the Marco preprocessor [56], which has a way to reduce the coupling between the host language to the macro system.…”
Section: Macro Languagesmentioning
confidence: 99%
“…They provide support for generating new programming languages and tooling in a modular manner. The Marco language [16] similarly provides macro definition at a level of abstraction that is largely independent of the target language. In these approaches, each TSL is external relative to the host language; in contrast, Wyvern focuses on internal extensibility, improving interoperability and composability.…”
Section: Related Workmentioning
confidence: 99%