DSL in C++ Template Metaprogram
@inproceedings{Porkolb2013DSLIC, title={DSL in C++ Template Metaprogram}, author={Zolt{\'a}n Porkol{\'a}b and {\'A}bel Sinkovics and Istv{\'a}n Siroki}, booktitle={CEFP}, year={2013} }
Domain specific language integration has to provide the right balance between the expressive power of the DSL and the implementation and maintenance cost of the applied integration techniques. [] Key Method The parser generator is the C++ template metaprogram reimplementation of a runtime Haskell parser generator library. The full parsing phase is executed when the host program is compiled. The library uses only standard C++ language features, thus our solution is highly portable. As a demonstration of the…
2 Citations
The Notion of a Software Language
- Computer Science
- 2018
This chapter describes the lifecycle of software languages, with phases such as language definition and implementation, and identifies areas in software engineering that involve software languages in different ways, for example, software reverse engineering and software re-engineering.
References
SHOWING 1-10 OF 20 REFERENCES
Domain-specific language integration with compile-time parser generator library
- Computer ScienceGPCE '10
- 2010
A DSL integration technique for the C++ programming language based on compile-time parsing of the DSL code and a parser generator is a C++ template metaprogram reimplementation of a runtime Haskell parser generator library.
C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond (C++ In-Depth Series)
- Computer Science
- 2004
The companion CD-ROM contains all Boost C++ libraries, including the Boost Metaprogramming Library and its reference documentation, along with all of the book's sample code and extensive supplementary material.
Simple and safe SQL queries with c++ templates
- Computer ScienceGPCE '07
- 2007
The ARARAT system presented here offers a method for dealing with predicaments of SQL statements, by coercing the host C++ compiler to do the necessary checks of the generated strings, by type checking of this language extension, carried out by the template library.
Essential language support for generic programming
- Computer SciencePLDI '05
- 2005
This paper presents the design of a type system and semantics for concepts that is suitable for non-type-inferencing languages and shares much in common with the type classes of Haskell, though the primary influence is from best practices in the C++ community.
Expression templates
- Computer Science
- 1996
In preliminary benchmark results, one compiler evaluates vector expressions at 95-99.5% efficiency of handcoded C using this technique (for long vectors), which is 2-15 times that of a conventional C++ vector class.
Domain-Specific Program Generation
- Computer ScienceLecture Notes in Computer Science
- 2004
This paper charts the successes and mindset used by database researchers to generate efficient query processing programs automatically and argues that the road that they have so successfully followed is the same road that the generative programming, domain-specific languages, and automatic programming communities are now traversing.
Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9
- Computer ScienceDomain-Specific Program Generation
- 2003
This chapter gives an overview of the main ingredients involved in the composition of transformation systems with Stratego/XT, where the abstraction levels of rules, strategies, tools, and systems are distinguished.
Active Libraries: Rethinking the roles of compilers and libraries
- Computer ScienceArXiv
- 1998
This work describes Active Libraries, which take an active role in compilation and may generate components, specialize algorithms, optimize code, configure and tune themselves for a target machine, and describe themselves to tools in an intelligible way.