{"id":"https://openalex.org/W2160183719","doi":"https://doi.org/10.1145/2517208.2517228","title":"Spiral in scala","display_name":"Spiral in scala","publication_year":2013,"publication_date":"2013-10-23","ids":{"openalex":"https://openalex.org/W2160183719","doi":"https://doi.org/10.1145/2517208.2517228","mag":"2160183719"},"language":"en","primary_location":{"id":"doi:10.1145/2517208.2517228","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2517208.2517228","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 12th international conference on Generative programming: concepts &amp; experiences","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://infoscience.epfl.ch/record/201032","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5032453640","display_name":"Georg Ofenbeck","orcid":null},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":true,"raw_author_name":"Georg Ofenbeck","raw_affiliation_strings":["ETH Zurich, Zurich, Switzerland"],"affiliations":[{"raw_affiliation_string":"ETH Zurich, Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5003153354","display_name":"Tiark Rompf","orcid":"https://orcid.org/0000-0002-2068-3238"},"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":"Tiark Rompf","raw_affiliation_strings":["Oracle Labs &amp; EPFL, Lausanne, Switzerland"],"affiliations":[{"raw_affiliation_string":"Oracle Labs &amp; EPFL, Lausanne, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5027784711","display_name":"Alen Stojanov","orcid":null},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Alen Stojanov","raw_affiliation_strings":["ETH Zurich, Zurich, Switzerland"],"affiliations":[{"raw_affiliation_string":"ETH Zurich, Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]},{"author_position":"middle","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, Lausanne, Switzerland"],"affiliations":[{"raw_affiliation_string":"EPFL, Lausanne, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5076407181","display_name":"Markus P\u00fcschel","orcid":"https://orcid.org/0000-0001-8834-8551"},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Markus P\u00fcschel","raw_affiliation_strings":["ETH Zurich, Zurich, Switzerland"],"affiliations":[{"raw_affiliation_string":"ETH Zurich, Zurich, Switzerland","institution_ids":["https://openalex.org/I35440088"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5032453640"],"corresponding_institution_ids":["https://openalex.org/I35440088"],"apc_list":null,"apc_paid":null,"fwci":6.3429,"has_fulltext":false,"cited_by_count":50,"citation_normalized_percentile":{"value":0.96710016,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"125","last_page":"134"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9995999932289124,"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"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9995999932289124,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9994999766349792,"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/T11181","display_name":"Advanced Data Storage Technologies","score":0.9692999720573425,"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.8794211149215698},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7377399802207947},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.720314621925354},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.6904329061508179},{"id":"https://openalex.org/keywords/scripting-language","display_name":"Scripting language","score":0.6639394164085388},{"id":"https://openalex.org/keywords/porting","display_name":"Porting","score":0.6445795297622681},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.508272111415863},{"id":"https://openalex.org/keywords/domain-specific-language","display_name":"Domain-specific language","score":0.49045297503471375},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4711030125617981},{"id":"https://openalex.org/keywords/program-transformation","display_name":"Program transformation","score":0.429007887840271},{"id":"https://openalex.org/keywords/generator","display_name":"Generator (circuit theory)","score":0.42466315627098083},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.21550774574279785},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.14432764053344727},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.1356586515903473},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.1293262243270874},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.1249009370803833}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8794211149215698},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7377399802207947},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.720314621925354},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.6904329061508179},{"id":"https://openalex.org/C61423126","wikidata":"https://www.wikidata.org/wiki/Q187432","display_name":"Scripting language","level":2,"score":0.6639394164085388},{"id":"https://openalex.org/C106251023","wikidata":"https://www.wikidata.org/wiki/Q851989","display_name":"Porting","level":3,"score":0.6445795297622681},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.508272111415863},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.49045297503471375},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4711030125617981},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.429007887840271},{"id":"https://openalex.org/C2780992000","wikidata":"https://www.wikidata.org/wiki/Q17016113","display_name":"Generator (circuit theory)","level":3,"score":0.42466315627098083},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.21550774574279785},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.14432764053344727},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.1356586515903473},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.1293262243270874},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.1249009370803833},{"id":"https://openalex.org/C62520636","wikidata":"https://www.wikidata.org/wiki/Q944","display_name":"Quantum mechanics","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0},{"id":"https://openalex.org/C163258240","wikidata":"https://www.wikidata.org/wiki/Q25342","display_name":"Power (physics)","level":2,"score":0.0}],"mesh":[],"locations_count":4,"locations":[{"id":"doi:10.1145/2517208.2517228","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2517208.2517228","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 12th international conference on Generative programming: concepts &amp; experiences","raw_type":"proceedings-article"},{"id":"pmh:oai:infoscience.epfl.ch:201032","is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/201032","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":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text"},{"id":"pmh:oai:infoscience.tind.io:201032","is_oa":true,"landing_page_url":"https://infoscience.epfl.ch/handle/20.500.14299/106099","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":null,"raw_type":"research article"},{"id":"pmh:oai:zenodo.org:3439023","is_oa":true,"landing_page_url":"https://zenodo.org/record/3439023","pdf_url":null,"source":{"id":"https://openalex.org/S4306400562","display_name":"Zenodo (CERN European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"info:eu-repo/semantics/conferencePaper"}],"best_oa_location":{"id":"pmh:oai:infoscience.epfl.ch:201032","is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/201032","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":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Text"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":47,"referenced_works":["https://openalex.org/W73123583","https://openalex.org/W1523329529","https://openalex.org/W1528193315","https://openalex.org/W1543833969","https://openalex.org/W1556604985","https://openalex.org/W1581501197","https://openalex.org/W1821569073","https://openalex.org/W1964031104","https://openalex.org/W1972209410","https://openalex.org/W2008070495","https://openalex.org/W2022744394","https://openalex.org/W2036753530","https://openalex.org/W2047656763","https://openalex.org/W2059720667","https://openalex.org/W2059895047","https://openalex.org/W2072277531","https://openalex.org/W2081418732","https://openalex.org/W2085123413","https://openalex.org/W2087929260","https://openalex.org/W2094455839","https://openalex.org/W2099625934","https://openalex.org/W2101718506","https://openalex.org/W2104527179","https://openalex.org/W2111334029","https://openalex.org/W2117402460","https://openalex.org/W2118927907","https://openalex.org/W2121410918","https://openalex.org/W2125872407","https://openalex.org/W2130179171","https://openalex.org/W2136952590","https://openalex.org/W2146236588","https://openalex.org/W2147146929","https://openalex.org/W2147578933","https://openalex.org/W2152885483","https://openalex.org/W2164197394","https://openalex.org/W2168989922","https://openalex.org/W2169492033","https://openalex.org/W2185470498","https://openalex.org/W2240938131","https://openalex.org/W2561675875","https://openalex.org/W2963514484","https://openalex.org/W3017193247","https://openalex.org/W4235903093","https://openalex.org/W4240054498","https://openalex.org/W4243796884","https://openalex.org/W4285719527","https://openalex.org/W4299828299"],"related_works":["https://openalex.org/W2460228634","https://openalex.org/W2403085302","https://openalex.org/W2293614426","https://openalex.org/W1880442967","https://openalex.org/W4210759111","https://openalex.org/W2046665381","https://openalex.org/W2794657471","https://openalex.org/W2034933397","https://openalex.org/W2150010249","https://openalex.org/W4242868104"],"abstract_inverted_index":{"Program":[0],"generators":[1,28],"for":[2,210,255],"high":[3],"performance":[4,244],"libraries":[5],"are":[6,62,82,206],"an":[7,53],"appealing":[8],"solution":[9],"to":[10,30,35,64,84,135,153,195,251,266],"the":[11,38,41,46,104,137,145,155,174,188,260],"recurring":[12],"problem":[13,105],"of":[14,40,45,56,90,139,169,184,190,203],"porting":[15],"and":[16,59,75,80,106,119,144,149,209,241,257,272],"optimizing":[17],"code":[18,140,213,227,234],"with":[19,225,235],"every":[20],"new":[21],"processor":[22],"generation,":[23],"but":[24,43,166],"only":[25,37],"few":[26],"such":[27,91],"exist":[29],"date.":[31],"This":[32],"is":[33,142,187,214,250],"due":[34],"not":[36],"difficulty":[39],"design,":[42],"also":[44],"actual":[47],"implementation,":[48],"which":[49,76,201,211],"often":[50],"results":[51],"in":[52,171],"ad-hoc":[54],"collection":[55],"standalone":[57],"programs":[58],"scripts":[60],"that":[61,131,141],"hard":[63],"extend,":[65],"maintain,":[66],"or":[67,111],"reuse.":[68],"In":[69],"this":[70,185],"paper":[71,186],"we":[72,96,162,217,263],"ask":[73],"whether":[74],"programming":[77],"language":[78],"concepts":[79],"features":[81],"needed":[83],"enable":[85],"a":[86,159,164,204,239],"more":[87],"systematic":[88,94],"construction":[89],"generators.":[92],"The":[93,180,246],"approach":[95],"advocate":[97],"extrapolates":[98],"from":[99],"existing":[100],"generators:":[101],"a)":[102,256],"describing":[103],"algorithmic":[107],"knowledge":[108],"using":[109,151,173,192],"one,":[110],"several,":[112],"domain-specific":[113],"languages":[114],"(DSLs),":[115],"b)":[116],"expressing":[117],"optimizations":[118],"choices":[120],"as":[121],"rewrite":[122],"rules":[123],"on":[124],"DSL":[125],"programs,":[126],"c)":[127,191],"designing":[128],"data":[129,146,222],"structures":[130],"can":[132],"be":[133],"configured":[134],"control":[136],"type":[138,193],"generated":[143],"representation":[147],"used,":[148],"d)":[150,258],"autotuning":[152,273],"select":[154],"best-performing":[156],"alternative.":[157],"As":[158],"case":[160],"study,":[161],"implement":[163],"small,":[165],"representative":[167],"subset":[168],"Spiral":[170],"Scala":[172],"Lightweight":[175],"Modular":[176],"Staging":[177],"(LMS)":[178],"framework.":[179],"first":[181],"main":[182,248],"contribution":[183,249],"realization":[189],"classes":[194],"abstract":[196,218],"over":[197,219],"staging":[198],"decisions,":[199],"i.e.":[200],"pieces":[202,212],"computation":[205],"performed":[207],"immediately":[208],"generated.":[215],"Specifically,":[216],"different":[220,226,270],"complex":[221],"representations":[223,228],"jointly":[224],"including":[229],"generating":[230],"loops":[231],"versus":[232],"unrolled":[233],"scalar":[236],"replacement":[237],"-":[238],"crucial":[240],"usually":[242],"tedious":[243],"transformation.":[245],"second":[247],"provide":[252],"full":[253],"support":[254,267],"within":[259],"LMS":[261,265],"framework:":[262],"extend":[264],"translation":[268],"between":[269],"DSLs":[271],"through":[274],"search.":[275]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":5},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":6},{"year":2017,"cited_by_count":11},{"year":2016,"cited_by_count":10},{"year":2015,"cited_by_count":5},{"year":2014,"cited_by_count":5}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2016-06-24T00:00:00"}
