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...
Gespeichert in:
Veröffentlicht in: | Software, practice & experience practice & experience, 2015-06, Vol.45 (6), p.727-763 |
---|---|
Hauptverfasser: | , |
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 & 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 & experience, 2015-06, Vol.45 (6), p.727-763</ispartof><rights>Copyright © 2013 John Wiley & Sons, Ltd.</rights><rights>Copyright © 2015 John Wiley & 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 & 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 & 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 & 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 & 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 & 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 & 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 |