{"id":"https://openalex.org/W3108544736","doi":"https://doi.org/10.1145/3425898.3426961","title":"Multi-stage programming in the large with staged classes","display_name":"Multi-stage programming in the large with staged classes","publication_year":2020,"publication_date":"2020-11-16","ids":{"openalex":"https://openalex.org/W3108544736","doi":"https://doi.org/10.1145/3425898.3426961","mag":"3108544736"},"language":"en","primary_location":{"id":"doi:10.1145/3425898.3426961","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3425898.3426961","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5002106868","display_name":"Lionel Parreaux","orcid":"https://orcid.org/0000-0002-8805-0728"},"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":true,"raw_author_name":"Lionel Parreaux","raw_affiliation_strings":["EPFL, Switzerland"],"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5025737201","display_name":"Amir Shaikhha","orcid":"https://orcid.org/0000-0002-9062-759X"},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Amir Shaikhha","raw_affiliation_strings":["University of Edinburgh, UK"],"affiliations":[{"raw_affiliation_string":"University of Edinburgh, UK","institution_ids":["https://openalex.org/I98677209"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5002106868"],"corresponding_institution_ids":["https://openalex.org/I5124864"],"apc_list":null,"apc_paid":null,"fwci":0.3977,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.69771473,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"35","last_page":"49"},"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.9977999925613403,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9973000288009644,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/computer-science","display_name":"Computer science","score":0.8695208430290222},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.7502907514572144},{"id":"https://openalex.org/keywords/scope","display_name":"Scope (computer science)","score":0.6778306365013123},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.6480405330657959},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6289839744567871},{"id":"https://openalex.org/keywords/class","display_name":"Class (philosophy)","score":0.6034535765647888},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.468278169631958},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4523159861564636},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.4373193681240082},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3494637608528137},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.33699578046798706},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.1993720829486847},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.09959876537322998}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8695208430290222},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.7502907514572144},{"id":"https://openalex.org/C2778012447","wikidata":"https://www.wikidata.org/wiki/Q1034415","display_name":"Scope (computer science)","level":2,"score":0.6778306365013123},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.6480405330657959},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6289839744567871},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.6034535765647888},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.468278169631958},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4523159861564636},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.4373193681240082},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3494637608528137},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.33699578046798706},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.1993720829486847},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.09959876537322998}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3425898.3426961","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3425898.3426961","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},{"id":"pmh:oai:repository.hkust.edu.hk:1783.1-108679","is_oa":false,"landing_page_url":"http://repository.hkust.edu.hk/ir/Record/1783.1-108679","pdf_url":null,"source":{"id":"https://openalex.org/S4306401796","display_name":"Rare & Special e-Zone (The Hong Kong University of Science and Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I200769079","host_organization_name":"Hong Kong University of Science and Technology","host_organization_lineage":["https://openalex.org/I200769079"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Conference paper"},{"id":"pmh:oai:repository.ust.hk:1783.1-108679","is_oa":false,"landing_page_url":"http://lbdiscover.ust.hk/uresolver?url_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rfr_id=info:sid/HKUST:SPI&rft.genre=article&rft.issn=&rft.volume=&rft.issue=&rft.date=2020&rft.spage=35&rft.aulast=Parreaux&rft.aufirst=&rft.atitle=Multi-stage+programming+in+the+large+with+staged+classes&rft.title=GPCE+2020+-+Proceedings+of+the+19th+ACM+SIGPLAN+International+Conference+on+Generative+Programming%3A+Concepts+and+Experiences%2C+Co-located+with+SPLASH+2020","pdf_url":null,"source":{"id":"https://openalex.org/S4306401796","display_name":"Rare & Special e-Zone (The Hong Kong University of Science and Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I200769079","host_organization_name":"Hong Kong University of Science and Technology","host_organization_lineage":["https://openalex.org/I200769079"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Conference paper"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":49,"referenced_works":["https://openalex.org/W171887329","https://openalex.org/W1555037657","https://openalex.org/W1981665907","https://openalex.org/W2007397391","https://openalex.org/W2009775190","https://openalex.org/W2026049208","https://openalex.org/W2026323010","https://openalex.org/W2029786195","https://openalex.org/W2032988652","https://openalex.org/W2038412523","https://openalex.org/W2040581748","https://openalex.org/W2041364386","https://openalex.org/W2044211710","https://openalex.org/W2047497632","https://openalex.org/W2049268728","https://openalex.org/W2070262175","https://openalex.org/W2083044913","https://openalex.org/W2093077968","https://openalex.org/W2094455839","https://openalex.org/W2105815991","https://openalex.org/W2106771621","https://openalex.org/W2123092976","https://openalex.org/W2131573942","https://openalex.org/W2137406503","https://openalex.org/W2160183719","https://openalex.org/W2161550557","https://openalex.org/W2172255090","https://openalex.org/W2239389360","https://openalex.org/W2301928242","https://openalex.org/W2340838390","https://openalex.org/W2386500332","https://openalex.org/W2537703000","https://openalex.org/W2562640456","https://openalex.org/W2761451340","https://openalex.org/W2780684764","https://openalex.org/W2797202077","https://openalex.org/W2805929662","https://openalex.org/W2905603442","https://openalex.org/W2952451116","https://openalex.org/W2962773216","https://openalex.org/W2994726342","https://openalex.org/W3088338119","https://openalex.org/W3163302786","https://openalex.org/W4241563291","https://openalex.org/W4249680514","https://openalex.org/W4252279595","https://openalex.org/W4255498697","https://openalex.org/W4299828299","https://openalex.org/W7074650171"],"related_works":["https://openalex.org/W1984757784","https://openalex.org/W4243252198","https://openalex.org/W2394901712","https://openalex.org/W2146069884","https://openalex.org/W2763815264","https://openalex.org/W4242528790","https://openalex.org/W1565501066","https://openalex.org/W4239384405","https://openalex.org/W2952657391","https://openalex.org/W4233387348"],"abstract_inverted_index":{"Multi-stage":[0],"programming":[1,64],"(MSP)":[2],"holds":[3],"great":[4],"promise,":[5],"allowing":[6],"the":[7,66,76,94,109,112,139,147,158,177],"reliable":[8],"generation":[9,148],"of":[10,73,78,114,141,149,160,172,179,200],"specialized,":[11],"partially-evaluated":[12],"code":[13],"with":[14,93],"static":[15],"type-":[16,196],"and":[17,41,50,129,153,182,197],"scope-safety":[18],"guarantees.":[19],"Yet,":[20],"we":[21,56],"argue":[22,57],"that":[23,54,58,188],"MSP":[24,59,92,107],"has":[25,34,42,60],"not":[26],"reached":[27],"its":[28],"full":[29],"potential":[30],"yet,":[31],"as":[32,100,135],"it":[33],"been":[35,61],"traditionally":[36],"limited":[37],"to":[38,96,175],"generating":[39,47,70],"expressions,":[40],"lacked":[43],"principled":[44],"facilities":[45],"for":[46,63,194],"modular":[48,130],"programs":[49],"data":[51,154,183],"structures.":[52,155],"In":[53],"sense,":[55],"reserved":[62],"\u201cin":[65,108],"small,\u201d":[67],"focused":[68],"on":[69,75,111],"efficient":[71,150],"kernels":[72],"computation":[74],"scale":[77],"single":[79],"function":[80],"bodies.":[81],"We":[82,156,185],"present":[83],"a":[84,161],"novel":[85],"technique":[86],"called":[87],"staged":[88,136,189],"classes,":[89],"which":[90,168],"extends":[91],"ability":[95],"manipulate":[97],"class":[98],"definitions":[99],"first-class":[101],"constructs.":[102],"This":[103,120],"lets":[104],"programmers":[105],"use":[106],"large,\u201d":[110],"level":[113],"applications,":[115],"rather":[116],"than":[117],"mere":[118],"functions.":[119],"way,":[121],"applications":[122],"can":[123,191],"be":[124,192],"designed":[125],"in":[126,146,166],"an":[127],"abstract":[128],"way":[131],"without":[132],"runtime":[133,173],"cost,":[134],"classes":[137,190],"guarantee":[138],"removal":[140],"all":[142],"staging-time":[143],"abstractions,":[144],"resulting":[145],"specialized":[151],"modules":[152],"describe":[157],"design":[159],"prototype":[162],"relational":[163],"database":[164],"system":[165],"Scala,":[167],"uses":[169],"several":[170],"stages":[171],"compilation":[174],"maximize":[176],"efficiency":[178],"query":[180],"execution":[181],"storage.":[184],"also":[186],"show":[187],"used":[193],"defining":[195],"scope-safe":[198],"implementations":[199],"type":[201],"providers.":[202]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2021,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
