An integrated implementation framework for compile-time metaprogramming

Summary Compile‐time metaprograms are programs executed during the compilation of a source file, usually targeting to update its source code. Even though metaprograms are essentially programs, they are typically treated as exceptional cases without sharing common practices and development tools. Tow...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software, practice & experience practice & experience, 2015-06, Vol.45 (6), p.727-763
Hauptverfasser: Lilis, Yannis, Savidis, Anthony
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 763
container_issue 6
container_start_page 727
container_title Software, practice & experience
container_volume 45
creator Lilis, Yannis
Savidis, Anthony
description Summary Compile‐time metaprograms are programs executed during the compilation of a source file, usually targeting to update its source code. Even though metaprograms are essentially programs, they are typically treated as exceptional cases without sharing common practices and development tools. Toward this direction, we identify a set of primary requirements related to language implementation, metaprogramming features, software engineering support, and programming environments and elaborate on addressing these requirements in the implementation of a metaprogramming language. In particular, we introduce the notion of integrated compile‐time metaprograms, as coherent programs assembled from specific metacode fragments present in the source code. We show the expressiveness of this programming model and illustrate its advantages through various metaprogram scenarios. Additionally, we present an integrated tool chain, supporting full‐scale build features and compile‐time metaprogram debugging. Copyright © 2013 John Wiley & Sons, Ltd.
doi_str_mv 10.1002/spe.2241
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_1685790156</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1685790156</sourcerecordid><originalsourceid>FETCH-LOGICAL-c4341-13698c9b66ca35220e471f750d15b05ac493a2da5380d25ee008b47997fa68883</originalsourceid><addsrcrecordid>eNp10MlKxEAQBuBGFBwX8BECXrxEq_fO0XUUxgVU9Nb0ZCrSmk5id4Zx3t6Ioih4qstXfxU_ITsU9ikAO0gd7jMm6AoZUSh0Dkw8rpIRADc5KCHWyUZKzwCUSqZGZHzYZL7p8Sm6HmeZD12NAZve9b5tsiq6gIs2vmRVG7OyDZ2vMe99wCxg77rYDnsh-OZpi6xVrk64_TU3yf3Z6d3xeT65Hl8cH07yUnBBc8pVYcpiqlTpuGQMUGhaaQkzKqcgXSkK7tjMSW5gxiQigJkKXRS6csoYwzfJ3mfucPt1jqm3wacS69o12M6TpcpIXQCVaqC7f-hzO4_N8N2gNDOcFyB-AsvYphSxsl30wcWlpWA_GrVDo_aj0YHmn3QxtLD819nbm9Pf3qce3769iy9Waa6lfbga26MTeTkxV2DP-TtehIUB</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1672833904</pqid></control><display><type>article</type><title>An integrated implementation framework for compile-time metaprogramming</title><source>Wiley Online Library All Journals</source><creator>Lilis, Yannis ; Savidis, Anthony</creator><creatorcontrib>Lilis, Yannis ; Savidis, Anthony</creatorcontrib><description>Summary Compile‐time metaprograms are programs executed during the compilation of a source file, usually targeting to update its source code. Even though metaprograms are essentially programs, they are typically treated as exceptional cases without sharing common practices and development tools. Toward this direction, we identify a set of primary requirements related to language implementation, metaprogramming features, software engineering support, and programming environments and elaborate on addressing these requirements in the implementation of a metaprogramming language. In particular, we introduce the notion of integrated compile‐time metaprograms, as coherent programs assembled from specific metacode fragments present in the source code. We show the expressiveness of this programming model and illustrate its advantages through various metaprogram scenarios. Additionally, we present an integrated tool chain, supporting full‐scale build features and compile‐time metaprogram debugging. Copyright © 2013 John Wiley &amp; Sons, Ltd.</description><identifier>ISSN: 0038-0644</identifier><identifier>EISSN: 1097-024X</identifier><identifier>DOI: 10.1002/spe.2241</identifier><language>eng</language><publisher>Bognor Regis: Blackwell Publishing Ltd</publisher><subject>Coherence ; compile-time metaprograms ; Computer programs ; Construction equipment ; Debugging ; metaprogramming model ; multi-stage languages ; Programming ; Programming environments ; Software ; Source code ; staged compilation</subject><ispartof>Software, practice &amp; experience, 2015-06, Vol.45 (6), p.727-763</ispartof><rights>Copyright © 2013 John Wiley &amp; Sons, Ltd.</rights><rights>Copyright © 2015 John Wiley &amp; Sons, Ltd.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c4341-13698c9b66ca35220e471f750d15b05ac493a2da5380d25ee008b47997fa68883</citedby><cites>FETCH-LOGICAL-c4341-13698c9b66ca35220e471f750d15b05ac493a2da5380d25ee008b47997fa68883</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://onlinelibrary.wiley.com/doi/pdf/10.1002%2Fspe.2241$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fspe.2241$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,780,784,1416,27923,27924,45573,45574</link.rule.ids></links><search><creatorcontrib>Lilis, Yannis</creatorcontrib><creatorcontrib>Savidis, Anthony</creatorcontrib><title>An integrated implementation framework for compile-time metaprogramming</title><title>Software, practice &amp; experience</title><addtitle>Softw. Pract. Exper</addtitle><description>Summary Compile‐time metaprograms are programs executed during the compilation of a source file, usually targeting to update its source code. Even though metaprograms are essentially programs, they are typically treated as exceptional cases without sharing common practices and development tools. Toward this direction, we identify a set of primary requirements related to language implementation, metaprogramming features, software engineering support, and programming environments and elaborate on addressing these requirements in the implementation of a metaprogramming language. In particular, we introduce the notion of integrated compile‐time metaprograms, as coherent programs assembled from specific metacode fragments present in the source code. We show the expressiveness of this programming model and illustrate its advantages through various metaprogram scenarios. Additionally, we present an integrated tool chain, supporting full‐scale build features and compile‐time metaprogram debugging. Copyright © 2013 John Wiley &amp; Sons, Ltd.</description><subject>Coherence</subject><subject>compile-time metaprograms</subject><subject>Computer programs</subject><subject>Construction equipment</subject><subject>Debugging</subject><subject>metaprogramming model</subject><subject>multi-stage languages</subject><subject>Programming</subject><subject>Programming environments</subject><subject>Software</subject><subject>Source code</subject><subject>staged compilation</subject><issn>0038-0644</issn><issn>1097-024X</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2015</creationdate><recordtype>article</recordtype><recordid>eNp10MlKxEAQBuBGFBwX8BECXrxEq_fO0XUUxgVU9Nb0ZCrSmk5id4Zx3t6Ioih4qstXfxU_ITsU9ikAO0gd7jMm6AoZUSh0Dkw8rpIRADc5KCHWyUZKzwCUSqZGZHzYZL7p8Sm6HmeZD12NAZve9b5tsiq6gIs2vmRVG7OyDZ2vMe99wCxg77rYDnsh-OZpi6xVrk64_TU3yf3Z6d3xeT65Hl8cH07yUnBBc8pVYcpiqlTpuGQMUGhaaQkzKqcgXSkK7tjMSW5gxiQigJkKXRS6csoYwzfJ3mfucPt1jqm3wacS69o12M6TpcpIXQCVaqC7f-hzO4_N8N2gNDOcFyB-AsvYphSxsl30wcWlpWA_GrVDo_aj0YHmn3QxtLD819nbm9Pf3qce3769iy9Waa6lfbga26MTeTkxV2DP-TtehIUB</recordid><startdate>201506</startdate><enddate>201506</enddate><creator>Lilis, Yannis</creator><creator>Savidis, Anthony</creator><general>Blackwell Publishing Ltd</general><general>Wiley Subscription Services, Inc</general><scope>BSCLL</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>F28</scope><scope>FR3</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201506</creationdate><title>An integrated implementation framework for compile-time metaprogramming</title><author>Lilis, Yannis ; Savidis, Anthony</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c4341-13698c9b66ca35220e471f750d15b05ac493a2da5380d25ee008b47997fa68883</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2015</creationdate><topic>Coherence</topic><topic>compile-time metaprograms</topic><topic>Computer programs</topic><topic>Construction equipment</topic><topic>Debugging</topic><topic>metaprogramming model</topic><topic>multi-stage languages</topic><topic>Programming</topic><topic>Programming environments</topic><topic>Software</topic><topic>Source code</topic><topic>staged compilation</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Lilis, Yannis</creatorcontrib><creatorcontrib>Savidis, Anthony</creatorcontrib><collection>Istex</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ANTE: Abstracts in New Technology &amp; Engineering</collection><collection>Engineering Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>Software, practice &amp; experience</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Lilis, Yannis</au><au>Savidis, Anthony</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>An integrated implementation framework for compile-time metaprogramming</atitle><jtitle>Software, practice &amp; experience</jtitle><addtitle>Softw. Pract. Exper</addtitle><date>2015-06</date><risdate>2015</risdate><volume>45</volume><issue>6</issue><spage>727</spage><epage>763</epage><pages>727-763</pages><issn>0038-0644</issn><eissn>1097-024X</eissn><abstract>Summary Compile‐time metaprograms are programs executed during the compilation of a source file, usually targeting to update its source code. Even though metaprograms are essentially programs, they are typically treated as exceptional cases without sharing common practices and development tools. Toward this direction, we identify a set of primary requirements related to language implementation, metaprogramming features, software engineering support, and programming environments and elaborate on addressing these requirements in the implementation of a metaprogramming language. In particular, we introduce the notion of integrated compile‐time metaprograms, as coherent programs assembled from specific metacode fragments present in the source code. We show the expressiveness of this programming model and illustrate its advantages through various metaprogram scenarios. Additionally, we present an integrated tool chain, supporting full‐scale build features and compile‐time metaprogram debugging. Copyright © 2013 John Wiley &amp; Sons, Ltd.</abstract><cop>Bognor Regis</cop><pub>Blackwell Publishing Ltd</pub><doi>10.1002/spe.2241</doi><tpages>37</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0038-0644
ispartof Software, practice & experience, 2015-06, Vol.45 (6), p.727-763
issn 0038-0644
1097-024X
language eng
recordid cdi_proquest_miscellaneous_1685790156
source Wiley Online Library All Journals
subjects Coherence
compile-time metaprograms
Computer programs
Construction equipment
Debugging
metaprogramming model
multi-stage languages
Programming
Programming environments
Software
Source code
staged compilation
title An integrated implementation framework for compile-time metaprogramming
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-13T00%3A55%3A14IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=An%20integrated%20implementation%20framework%20for%20compile-time%20metaprogramming&rft.jtitle=Software,%20practice%20&%20experience&rft.au=Lilis,%20Yannis&rft.date=2015-06&rft.volume=45&rft.issue=6&rft.spage=727&rft.epage=763&rft.pages=727-763&rft.issn=0038-0644&rft.eissn=1097-024X&rft_id=info:doi/10.1002/spe.2241&rft_dat=%3Cproquest_cross%3E1685790156%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=1672833904&rft_id=info:pmid/&rfr_iscdi=true