• 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