{"id":"https://openalex.org/W2539141703","doi":"https://doi.org/10.1145/2993236.2993239","title":"Recaf: Java dialects as libraries","display_name":"Recaf: Java dialects as libraries","publication_year":2016,"publication_date":"2016-10-20","ids":{"openalex":"https://openalex.org/W2539141703","doi":"https://doi.org/10.1145/2993236.2993239","mag":"2539141703"},"language":"en","primary_location":{"id":"doi:10.1145/2993236.2993239","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2993236.2993239","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 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://ir.cwi.nl/pub/25312/3093335.2993239.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5089315679","display_name":"Aggelos Biboudis","orcid":null},"institutions":[{"id":"https://openalex.org/I200777214","display_name":"National and Kapodistrian University of Athens","ror":"https://ror.org/04gnjpq42","country_code":"GR","type":"education","lineage":["https://openalex.org/I200777214"]}],"countries":["GR"],"is_corresponding":true,"raw_author_name":"Aggelos Biboudis","raw_affiliation_strings":["CWI, Netherlands / University of Athens, Greece"],"affiliations":[{"raw_affiliation_string":"CWI, Netherlands / University of Athens, Greece","institution_ids":["https://openalex.org/I200777214"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5033293711","display_name":"Pablo Inostroza","orcid":"https://orcid.org/0009-0000-0268-2138"},"institutions":[{"id":"https://openalex.org/I1341640284","display_name":"Centrum Wiskunde & Informatica","ror":"https://ror.org/00x7ekv49","country_code":"NL","type":"facility","lineage":["https://openalex.org/I1341640284","https://openalex.org/I2800991832"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Pablo Inostroza","raw_affiliation_strings":["CWI, Netherlands"],"affiliations":[{"raw_affiliation_string":"CWI, Netherlands","institution_ids":["https://openalex.org/I1341640284"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5014852863","display_name":"Tijs van der Storm","orcid":"https://orcid.org/0000-0001-8853-7934"},"institutions":[{"id":"https://openalex.org/I1341640284","display_name":"Centrum Wiskunde & Informatica","ror":"https://ror.org/00x7ekv49","country_code":"NL","type":"facility","lineage":["https://openalex.org/I1341640284","https://openalex.org/I2800991832"]},{"id":"https://openalex.org/I169381384","display_name":"University of Groningen","ror":"https://ror.org/012p63287","country_code":"NL","type":"education","lineage":["https://openalex.org/I169381384"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Tijs van der Storm","raw_affiliation_strings":["CWI, Netherlands / University of Groningen, Netherlands"],"affiliations":[{"raw_affiliation_string":"CWI, Netherlands / University of Groningen, Netherlands","institution_ids":["https://openalex.org/I1341640284","https://openalex.org/I169381384"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5089315679"],"corresponding_institution_ids":["https://openalex.org/I200777214"],"apc_list":null,"apc_paid":null,"fwci":1.286,"has_fulltext":true,"cited_by_count":3,"citation_normalized_percentile":{"value":0.87259993,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"2","last_page":"13"},"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.9998000264167786,"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.9998000264167786,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9993000030517578,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9987000226974487,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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/programming-language","display_name":"Programming language","score":0.8750253915786743},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8688955307006836},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.5838295817375183},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.5537084341049194},{"id":"https://openalex.org/keywords/generics-in-java","display_name":"Generics in Java","score":0.5522213578224182},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5268006920814514},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.51433265209198},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.48378345370292664},{"id":"https://openalex.org/keywords/java-modeling-language","display_name":"Java Modeling Language","score":0.45319709181785583},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.4443575441837311},{"id":"https://openalex.org/keywords/strictfp","display_name":"strictfp","score":0.43001505732536316},{"id":"https://openalex.org/keywords/semantics","display_name":"Semantics (computer science)","score":0.41537514328956604}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8750253915786743},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8688955307006836},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.5838295817375183},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.5537084341049194},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.5522213578224182},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5268006920814514},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.51433265209198},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.48378345370292664},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.45319709181785583},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.4443575441837311},{"id":"https://openalex.org/C174954855","wikidata":"https://www.wikidata.org/wiki/Q7623626","display_name":"strictfp","level":4,"score":0.43001505732536316},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.41537514328956604}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/2993236.2993239","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2993236.2993239","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},{"id":"pmh:oai:cwi.nl:25312","is_oa":true,"landing_page_url":"https://ir.cwi.nl/pub/25312","pdf_url":"https://ir.cwi.nl/pub/25312/3093335.2993239.pdf","source":{"id":"https://openalex.org/S7407055335","display_name":"Centrum Wiskunde & Informatica (CWI), the national research institute for mathematics and computer science in the Netherlands","issn_l":null,"issn":null,"is_oa":false,"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":"ACM SIGPLAN Notices vol. 52 no. 3, pp. 2-13","raw_type":"info:eu-repo/semantics/conferenceObject"},{"id":"pmh:oai:pure.rug.nl:publications/199c31cb-b5b4-411a-a5a5-db70f2dcf91b","is_oa":false,"landing_page_url":"https://research.rug.nl/en/publications/recaf(199c31cb-b5b4-411a-a5a5-db70f2dcf91b).html","pdf_url":null,"source":{"id":"https://openalex.org/S4306400420","display_name":"University of Groningen research database (University of Groningen / Centre for Information Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I169381384","host_organization_name":"University of Groningen","host_organization_lineage":["https://openalex.org/I169381384"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""}],"best_oa_location":{"id":"pmh:oai:cwi.nl:25312","is_oa":true,"landing_page_url":"https://ir.cwi.nl/pub/25312","pdf_url":"https://ir.cwi.nl/pub/25312/3093335.2993239.pdf","source":{"id":"https://openalex.org/S7407055335","display_name":"Centrum Wiskunde & Informatica (CWI), the national research institute for mathematics and computer science in the Netherlands","issn_l":null,"issn":null,"is_oa":false,"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":"ACM SIGPLAN Notices vol. 52 no. 3, pp. 2-13","raw_type":"info:eu-repo/semantics/conferenceObject"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education","score":0.550000011920929}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2539141703.pdf","grobid_xml":"https://content.openalex.org/works/W2539141703.grobid-xml"},"referenced_works_count":31,"referenced_works":["https://openalex.org/W68605010","https://openalex.org/W115425660","https://openalex.org/W202283534","https://openalex.org/W1507155521","https://openalex.org/W1513659817","https://openalex.org/W1527793496","https://openalex.org/W1649645444","https://openalex.org/W1750043039","https://openalex.org/W1750514695","https://openalex.org/W1812582761","https://openalex.org/W1946588374","https://openalex.org/W1971135355","https://openalex.org/W1978220811","https://openalex.org/W2009464583","https://openalex.org/W2018045485","https://openalex.org/W2058442534","https://openalex.org/W2059720667","https://openalex.org/W2078200248","https://openalex.org/W2081449537","https://openalex.org/W2088675571","https://openalex.org/W2101718506","https://openalex.org/W2104789737","https://openalex.org/W2123092976","https://openalex.org/W2134112335","https://openalex.org/W2147578933","https://openalex.org/W2149935768","https://openalex.org/W2181305810","https://openalex.org/W2221077420","https://openalex.org/W2281310552","https://openalex.org/W4235903093","https://openalex.org/W4237428230"],"related_works":["https://openalex.org/W2547095320","https://openalex.org/W2541866089","https://openalex.org/W2181544444","https://openalex.org/W3172992491","https://openalex.org/W2035709547","https://openalex.org/W1572758480","https://openalex.org/W1519944186","https://openalex.org/W1967435589","https://openalex.org/W2004623597","https://openalex.org/W1847197715"],"abstract_inverted_index":{"Mainstream":[0],"programming":[1,17,101],"languages":[2],"like":[3],"Java":[4,41,45],"have":[5],"limited":[6],"support":[7],"for":[8,13,39,111,124],"language":[9,48],"extensibility.":[10],"Without":[11],"mechanisms":[12],"syntactic":[14],"abstraction,":[15],"new":[16,47],"styles":[18,102],"can":[19],"only":[20],"be":[21],"embedded":[22],"in":[23,74,129],"the":[24,84],"form":[25],"of":[26,79,100,133],"libraries,":[27],"limiting":[28],"expressiveness.":[29],"In":[30],"this":[31],"paper,":[32],"we":[33,107],"present":[34],"Recaf,":[35],"a":[36,68,81,97,120,130],"lightweight":[37],"tool":[38],"creating":[40],"dialects;":[42],"effectively":[43],"extending":[44],"with":[46],"constructs":[49],"and":[50,103,115,118],"user":[51],"defined":[52,73],"semantics.":[53,87],"The":[54,77],"Recaf":[55],"compiler":[56],"generically":[57],"transforms":[58],"designated":[59],"method":[60],"bodies":[61],"to":[62,92],"code":[63],"that":[64],"is":[65],"parameterized":[66],"by":[67],"semantic":[69],"factory":[70,82],"(Object":[71],"Algebra),":[72],"plain":[75],"Java.":[76],"implementation":[78],"such":[80],"defines":[83],"desired":[85],"runtime":[86],"We":[88],"applied":[89],"our":[90],"design":[91],"produce":[93],"several":[94],"examples":[95],"from":[96],"diverse":[98],"set":[99],"two":[104],"case":[105],"studies:":[106],"define":[108],"i)":[109],"extensions":[110],"generators,":[112],"asynchronous":[113,116],"computations":[114],"streams":[117],"ii)":[119],"Domain-Specific":[121],"Language":[122],"(DSL)":[123],"Parsing":[125],"Expression":[126],"Grammars":[127],"(PEGs),":[128],"few":[131],"lines":[132],"code.":[134]},"counts_by_year":[{"year":2019,"cited_by_count":2},{"year":2017,"cited_by_count":1}],"updated_date":"2026-03-02T08:37:19.008085","created_date":"2025-10-10T00:00:00"}
