{"id":"https://openalex.org/W2898037052","doi":"https://doi.org/10.1145/3278122.3278139","title":"A practical unification of multi-stage programming and macros","display_name":"A practical unification of multi-stage programming and macros","publication_year":2018,"publication_date":"2018-10-24","ids":{"openalex":"https://openalex.org/W2898037052","doi":"https://doi.org/10.1145/3278122.3278139","mag":"2898037052"},"language":"en","primary_location":{"id":"doi:10.1145/3278122.3278139","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3278122.3278139","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://infoscience.epfl.ch/handle/20.500.14299/148636","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5050200223","display_name":"Nicolas Stucki","orcid":"https://orcid.org/0000-0003-1391-1375"},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Nicolas Stucki","raw_affiliation_strings":["EPFL, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5089315679","display_name":"Aggelos Biboudis","orcid":null},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Aggelos Biboudis","raw_affiliation_strings":["EPFL, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5085410724","display_name":"Martin Odersky","orcid":"https://orcid.org/0009-0005-3923-8993"},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Martin Odersky","raw_affiliation_strings":["EPFL, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I5124864"],"apc_list":null,"apc_paid":null,"fwci":1.3092,"has_fulltext":false,"cited_by_count":24,"citation_normalized_percentile":{"value":0.8562095,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"14","last_page":"27"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9987000226974487,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9987000226974487,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9976999759674072,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9954000115394592,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/metaprogramming","display_name":"Metaprogramming","score":0.8594345450401306},{"id":"https://openalex.org/keywords/unification","display_name":"Unification","score":0.831824541091919},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8124849796295166},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7866150140762329},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.7704911231994629},{"id":"https://openalex.org/keywords/macro","display_name":"Macro","score":0.745445966720581},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.693581223487854},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.6005311012268066},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4783180058002472},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4376148581504822},{"id":"https://openalex.org/keywords/generative-grammar","display_name":"Generative grammar","score":0.43627768754959106},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.4261825978755951},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.15297675132751465},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.128449946641922}],"concepts":[{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.8594345450401306},{"id":"https://openalex.org/C96146094","wikidata":"https://www.wikidata.org/wiki/Q609057","display_name":"Unification","level":2,"score":0.831824541091919},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8124849796295166},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7866150140762329},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.7704911231994629},{"id":"https://openalex.org/C166955791","wikidata":"https://www.wikidata.org/wiki/Q629579","display_name":"Macro","level":2,"score":0.745445966720581},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.693581223487854},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.6005311012268066},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4783180058002472},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4376148581504822},{"id":"https://openalex.org/C39890363","wikidata":"https://www.wikidata.org/wiki/Q36108","display_name":"Generative grammar","level":2,"score":0.43627768754959106},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.4261825978755951},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.15297675132751465},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.128449946641922},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3278122.3278139","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3278122.3278139","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},{"id":"pmh:oai:infoscience.epfl.ch:257176","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/148636","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"conference proceedings"}],"best_oa_location":{"id":"pmh:oai:infoscience.epfl.ch:257176","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/148636","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"conference proceedings"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G5291884993","display_name":null,"funder_award_id":"200021_166154","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320320924","display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","ror":"https://ror.org/00yjd3n13"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":23,"referenced_works":["https://openalex.org/W1528193315","https://openalex.org/W1608933122","https://openalex.org/W1963538417","https://openalex.org/W1982534263","https://openalex.org/W1987073254","https://openalex.org/W2009775190","https://openalex.org/W2029408547","https://openalex.org/W2040581748","https://openalex.org/W2055806388","https://openalex.org/W2062813067","https://openalex.org/W2076928733","https://openalex.org/W2096314727","https://openalex.org/W2104527179","https://openalex.org/W2154697693","https://openalex.org/W2160701881","https://openalex.org/W2247694024","https://openalex.org/W2537703000","https://openalex.org/W2562640456","https://openalex.org/W2592188706","https://openalex.org/W2762911491","https://openalex.org/W2805929662","https://openalex.org/W4233720472","https://openalex.org/W4235903093"],"related_works":["https://openalex.org/W2048147817","https://openalex.org/W2898037052","https://openalex.org/W2073905442","https://openalex.org/W1530078320","https://openalex.org/W3082173509","https://openalex.org/W2021229780","https://openalex.org/W3044146059","https://openalex.org/W1492181831","https://openalex.org/W2041630899","https://openalex.org/W2137857582"],"abstract_inverted_index":{"Program":[0],"generation":[1,25],"is":[2],"indispensable.":[3],"We":[4],"propose":[5],"a":[6,29],"novel":[7],"unification":[8],"of":[9],"two":[10],"existing":[11],"metaprogramming":[12],"techniques:":[13],"multi-stage":[14],"programming":[15],"and":[16,26],"hygienic":[17],"generative":[18],"macros.":[19],"The":[20],"former":[21],"supports":[22],"runtime":[23],"code":[24,37],"execution":[27],"in":[28],"type-safe":[30],"manner":[31],"while":[32],"the":[33],"latter":[34],"offers":[35],"compile-time":[36],"generation.":[38]},"counts_by_year":[{"year":2026,"cited_by_count":4},{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":2}],"updated_date":"2026-07-02T09:51:11.867554","created_date":"2025-10-10T00:00:00"}
