DocumentCode
1027030
Title
Rational Metaprogramming
Author
Spinellis, Diomidis
Author_Institution
Athens Univ. of Econ. & Bus., Athens
Volume
25
Issue
1
fYear
2008
Firstpage
78
Lastpage
79
Abstract
Metaprogramming, using programs to manipulate other programs, is as old as programming. From self-modifying machine code in early computers to expressions involving partially applied functions in modern functional-programming languages, metaprogramming is an essential part of an advanced programmer´s arsenal. Everyday metaprogramming involves on-the-fly code production. Representative examples include dynamically generated SQL statements and code created for evaluation at runtime in interpreted languages. Metaprogramming also occurs in programs that spew out HTML or XML. Although we can´t classify these markup languages as code, their rich syntactic structure qualifies their generation as metaprogramming. Unfortunately, we commonly produce code on the fly by simply pasting together character strings. This means that it´s difficult to verify essential properties of the generated code - such as validity, correctness, and safety - at compile time.
Keywords
SQL; object-oriented programming; program compilers; program verification; software tools; HTML; SQL statements; XML; code generation; functional-programming languages; program verification; rational metaprogramming; self-modifying machine code; Computer bugs; Computer languages; DSL; HTML; Instruments; Java; Libraries; Power generation; Production; Runtime; functional programming; generative programming; metaprogramming; templates;
fLanguage
English
Journal_Title
Software, IEEE
Publisher
ieee
ISSN
0740-7459
Type
jour
DOI
10.1109/MS.2008.15
Filename
4420074
Link To Document