Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

Multistage programming support in CLI

Multistage programming support in CLI

For access to this article, please select a purchase option:

Buy article PDF
£12.50
(plus tax if applicable)
Buy Knowledge Pack
10 articles for £75.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Name:*
Email:*
Your details
Name:*
Email:*
Department:*
Why are you recommending this title?
Select reason:
 
 
 
 
 
IEE Proceedings - Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

Execution environments such as CLR and JVM provide many features needed by multi-stage programming languages, though there is no explicit support for them. Besides, staged computations are widely used in areas such as Web programming and generative programming. In the paper the authors present a possible CLR extension (which can also be ported to JVM) to provide support for multi-stage languages. The extension is based on CodeBricks – a framework for run-time code generation which allows expressing homogenous transformations of intermediate language as a composition of methods. They discuss the code generation strategy adopted by the framework and how an extension to CLR may improve the performance of multi-stage applications, although CodeBricks can also be implemented using the standard CLR. An informal discussion of how to translate MetaML staging annotations into CodeBricks is provided with a simple example.

References

    1. 1)
      • T. Lindholm , F. . (1999) The Java™ Virtual Machine Specification.
    2. 2)
      • Microsoft Shared Source CLI.
    3. 3)
      • C. Calcagno , W. Taha , L. Huang , X. Leroy . Implementing multi-stage languages using ASTs, Gensym, and Reflection. Lect. Notes Comput. Sci.
    4. 4)
      • Taha, W.: `Multistage programming: its theory and applications', , PhD thesis, Oregon Graduate Institute of Science and Technology, Available at ftp://cse.ogi.edu/pub/tech-reports/1999/99-TH-002.ps.gz, accessed October 2003.
    5. 5)
      • Masuhara, H., Yonezawa, A.: `Run-time bytecode specialization: a portable approach to generating optimized specialized code', Proc. Symp. on Programs as Data Objects (PADO), May 2001, Aarhus, Denmark, p. 138–154.
    6. 6)
      • Ocaml Vm http://pauillac.inria.fr/~lebotlan/docaml_html/english/, accessed October 2003.
    7. 7)
      • Ecma 335 Common language infrastructure (CLI) http://www.ecma.ch/ecma1/STAND/ecma-335.htm, accessed October 2003.
    8. 8)
      • G.L. Steele . (1990) Common Lisp: the Language.
    9. 9)
      • T. Sheard . Accomplishments and research challenges in meta-programming. Lect. Notes Comput. Sci. , 2 - 44
    10. 10)
      • C. Calcagno , W. Taha , L. Huang , X. Leroy . A bytecode-compiled, type-safe, multi-stage language.
    11. 11)
      • T. Neward , D. Stutz , G. Shilling . (2003) Shared source CLI essentials.
    12. 12)
      • A. Fischbach , J. Hannan . Specification and correctness of lambda lifting. Lect. Notes Comput. Sci. , 108 - 128
    13. 13)
      • P. Sestoft . Runtime code generation with JVM and CLR.
    14. 14)
      • Attardi, G., Cisternino, A., Kennedy, A.: `Code bricks: code fragments as building blocks', Proc. SIGPLAN Workshop on Partial Evaluation and Semantic-based Program Manipulation (PEPM), 2003, San Diego, CA, USA, p. 66–74.
    15. 15)
      • E. Tanter , M. Ségura-Devillechaise , J. Noyé , J. Piquer . Altering Java semantics via bytecode manipulation. Lect. Notes Comput. Sci. , 283 - 298
    16. 16)
      • Cisternino, A.: `Multi-stage and Meta-programming support in strongly typed execution engines', , Phd thesis, , p. , TD-5/03, Dipartimento di Informatica, Universita diPisa, May 2003, available at http://www.di.unipi.it/phd/tesi/tesi-2003/PhDthesis-Cisternino.ps.gz, accessed October 2003.
    17. 17)
      • Taha, W., Sheard, T.: `Multi-stage programming with explicit ennotations', Proc. ACM SIGPLAN Symp. on Partial Evaluation and Semantic Based Program Manipulations (PEPM)', July 1997, Amsterdam, p. 203–217.
http://iet.metastore.ingenta.com/content/journals/10.1049/ip-sen_20030990
Loading

Related content

content/journals/10.1049/ip-sen_20030990
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address