{"id":"https://openalex.org/W1964907180","doi":"https://doi.org/10.1145/2814270.2814279","title":"Scrap your boilerplate with object algebras","display_name":"Scrap your boilerplate with object algebras","publication_year":2015,"publication_date":"2015-10-23","ids":{"openalex":"https://openalex.org/W1964907180","doi":"https://doi.org/10.1145/2814270.2814279","mag":"1964907180"},"language":"en","primary_location":{"id":"doi:10.1145/2814270.2814279","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814270.2814279","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications","raw_type":"proceedings-article"},"type":"preprint","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://ir.cwi.nl/pub/23992/23992A.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5066268765","display_name":"Haoyuan Zhang","orcid":"https://orcid.org/0000-0003-3747-8430"},"institutions":[{"id":"https://openalex.org/I889458895","display_name":"University of Hong Kong","ror":"https://ror.org/02zhqgq86","country_code":"HK","type":"education","lineage":["https://openalex.org/I889458895"]}],"countries":["HK"],"is_corresponding":true,"raw_author_name":"Haoyuan Zhang","raw_affiliation_strings":["University of Hong Kong, China"],"affiliations":[{"raw_affiliation_string":"University of Hong Kong, China","institution_ids":["https://openalex.org/I889458895"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5059905309","display_name":"Zewei Chu","orcid":null},"institutions":[{"id":"https://openalex.org/I889458895","display_name":"University of Hong Kong","ror":"https://ror.org/02zhqgq86","country_code":"HK","type":"education","lineage":["https://openalex.org/I889458895"]}],"countries":["HK"],"is_corresponding":false,"raw_author_name":"Zewei Chu","raw_affiliation_strings":["University of Hong Kong, China"],"affiliations":[{"raw_affiliation_string":"University of Hong Kong, China","institution_ids":["https://openalex.org/I889458895"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5049714036","display_name":"Bruno C. d. S. Oliveira","orcid":"https://orcid.org/0000-0002-1846-7210"},"institutions":[{"id":"https://openalex.org/I889458895","display_name":"University of Hong Kong","ror":"https://ror.org/02zhqgq86","country_code":"HK","type":"education","lineage":["https://openalex.org/I889458895"]}],"countries":["HK"],"is_corresponding":false,"raw_author_name":"Bruno C. d. S. Oliveira","raw_affiliation_strings":["University of Hong Kong, China"],"affiliations":[{"raw_affiliation_string":"University of Hong Kong, China","institution_ids":["https://openalex.org/I889458895"]}]},{"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"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Tijs van der Storm","raw_affiliation_strings":["CWI, Netherlands"],"affiliations":[{"raw_affiliation_string":"CWI, Netherlands","institution_ids":["https://openalex.org/I1341640284"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5066268765"],"corresponding_institution_ids":["https://openalex.org/I889458895"],"apc_list":null,"apc_paid":null,"fwci":2.4702,"has_fulltext":true,"cited_by_count":10,"citation_normalized_percentile":{"value":0.9107314,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"127","last_page":"146"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9987999796867371,"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/boilerplate-text","display_name":"Boilerplate text","score":0.9653828144073486},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7562854886054993},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.754602313041687},{"id":"https://openalex.org/keywords/tree-traversal","display_name":"Tree traversal","score":0.7030774354934692},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.6768443584442139},{"id":"https://openalex.org/keywords/code-reuse","display_name":"Code reuse","score":0.5209090113639832},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5100096464157104},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4582566022872925},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.38511472940444946},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.1487935483455658}],"concepts":[{"id":"https://openalex.org/C75701414","wikidata":"https://www.wikidata.org/wiki/Q1651672","display_name":"Boilerplate text","level":2,"score":0.9653828144073486},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7562854886054993},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.754602313041687},{"id":"https://openalex.org/C140745168","wikidata":"https://www.wikidata.org/wiki/Q1210082","display_name":"Tree traversal","level":2,"score":0.7030774354934692},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.6768443584442139},{"id":"https://openalex.org/C2778583558","wikidata":"https://www.wikidata.org/wiki/Q771245","display_name":"Code reuse","level":3,"score":0.5209090113639832},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5100096464157104},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4582566022872925},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.38511472940444946},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.1487935483455658},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0}],"mesh":[],"locations_count":5,"locations":[{"id":"doi:10.1145/2814270.2814279","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2814270.2814279","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications","raw_type":"proceedings-article"},{"id":"pmh:oai:cwi.nl:23992","is_oa":true,"landing_page_url":"https://ir.cwi.nl/pub/23992","pdf_url":"https://ir.cwi.nl/pub/23992/23992A.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":null,"raw_type":"info:eu-repo/semantics/conferenceObject"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.720.4476","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.720.4476","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://i.cs.hku.hk/%7Ebruno/papers/oopsla2015.pdf","raw_type":"text"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.721.3608","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.721.3608","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://homepages.cwi.nl/%7Estorm/publications/oopsla15.pdf","raw_type":"text"},{"id":"pmh:oai:HAL:hal-01261477v1","is_oa":false,"landing_page_url":"https://inria.hal.science/hal-01261477","pdf_url":null,"source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"Centre National de la Recherche Scientifique","host_organization_lineage":["https://openalex.org/I1294671590"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"OOPSLA 2015 - The ACM SIGPLAN Conference on Systems, Programming, Languages and Applications, 2015, New York, United States. &#x27E8;10.1145/2814270.2814279&#x27E9;","raw_type":"Conference papers"}],"best_oa_location":{"id":"pmh:oai:cwi.nl:23992","is_oa":true,"landing_page_url":"https://ir.cwi.nl/pub/23992","pdf_url":"https://ir.cwi.nl/pub/23992/23992A.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":null,"raw_type":"info:eu-repo/semantics/conferenceObject"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G8916172335","display_name":null,"funder_award_id":"27200514","funder_id":"https://openalex.org/F4320321592","funder_display_name":"Research Grants Council, University Grants Committee"}],"funders":[{"id":"https://openalex.org/F4320321592","display_name":"Research Grants Council, University Grants Committee","ror":"https://ror.org/00djwmt25"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W1964907180.pdf","grobid_xml":"https://content.openalex.org/works/W1964907180.grobid-xml"},"referenced_works_count":34,"referenced_works":["https://openalex.org/W34477531","https://openalex.org/W121159850","https://openalex.org/W162865419","https://openalex.org/W202283534","https://openalex.org/W1480731572","https://openalex.org/W1556226926","https://openalex.org/W1577421310","https://openalex.org/W1580128549","https://openalex.org/W1589992826","https://openalex.org/W1649645444","https://openalex.org/W1750043039","https://openalex.org/W1978948468","https://openalex.org/W2001544104","https://openalex.org/W2014220905","https://openalex.org/W2034484223","https://openalex.org/W2043216020","https://openalex.org/W2046671194","https://openalex.org/W2051096181","https://openalex.org/W2056351581","https://openalex.org/W2059895047","https://openalex.org/W2075200505","https://openalex.org/W2082765113","https://openalex.org/W2093896470","https://openalex.org/W2097964082","https://openalex.org/W2101407609","https://openalex.org/W2109703800","https://openalex.org/W2111609583","https://openalex.org/W2116721607","https://openalex.org/W2159078835","https://openalex.org/W2281310552","https://openalex.org/W2481144169","https://openalex.org/W2568721247","https://openalex.org/W4250126356","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W4255624992","https://openalex.org/W2069663962","https://openalex.org/W2810627707","https://openalex.org/W3005789994","https://openalex.org/W2521508531","https://openalex.org/W1507027376","https://openalex.org/W2189387569","https://openalex.org/W2083720908","https://openalex.org/W1954856259","https://openalex.org/W2403161756"],"abstract_inverted_index":{"Traversing":[0],"complex":[1,68],"Abstract":[2],"Syntax":[3],"Trees":[4],"(ASTs)":[5],"typically":[6],"requires":[7],"large":[8,167],"amounts":[9],"of":[10,18,30,56,84,91,109,147,156,169,179],"tedious":[11],"boilerplate":[12,58,79],"code.":[13,59,181],"For":[14,86],"many":[15],"operations":[16],"most":[17],"the":[19,23,31,34,38,41,97,103,107,122,140,145,148,154,177],"code":[20,32,80,99,110],"simply":[21],"walks":[22],"structure,":[24],"and":[25,69,100],"only":[26,102],"a":[27,47,87,157,166,173],"small":[28],"portion":[29],"implements":[33],"functionality":[35],"that":[36,53,111,164],"motivated":[37],"traversal":[39],"in":[40,153,176],"first":[42],"place.":[43],"This":[44],"paper":[45],"presents":[46],"type-safe":[48],"Java":[49,74],"framework":[50,124],"called":[51],"Shy":[52,61,76,92,123,152],"removes":[54],"much":[55,127],"this":[57],"In":[60],"object":[62],"algebras":[63],"are":[64,125],"used":[65],"to":[66,114,134,139],"describe":[67],"extensible":[70],"AST":[71,141],"structures.":[72],"Using":[73],"annotations":[75],"generates":[77],"generic":[78],"for":[81,165],"various":[82],"types":[83],"traversals.":[85],"concrete":[88],"traversal,":[89],"users":[90,112],"can":[93],"then":[94],"inherit":[95],"from":[96],"generated":[98],"override":[101],"interesting":[104],"cases.":[105],"Consequently,":[106],"amount":[108,178],"need":[113],"write":[115],"is":[116],"significantly":[117],"smaller.":[118],"Moreover,":[119],"traversals":[120,170],"using":[121],"also":[126],"more":[128,132],"structure":[129],"shy,":[130],"becoming":[131],"adaptive":[133],"future":[135],"changes":[136],"or":[137],"extensions":[138],"structure.":[142],"To":[143],"prove":[144],"effectiveness":[146],"approach,":[149],"we":[150],"applied":[151],"implementation":[155],"domain-specific":[158],"questionnaire":[159],"language.":[160],"Our":[161],"results":[162],"show":[163],"number":[168],"there":[171],"was":[172],"significant":[174],"reduction":[175],"user-defined":[180]},"counts_by_year":[{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":3},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
