{"id":"https://openalex.org/W2534451013","doi":"https://doi.org/10.1145/2998392.3001580","title":"The sbt-rats parser generator plugin for Scala (tool paper)","display_name":"The sbt-rats parser generator plugin for Scala (tool paper)","publication_year":2016,"publication_date":"2016-10-21","ids":{"openalex":"https://openalex.org/W2534451013","doi":"https://doi.org/10.1145/2998392.3001580","mag":"2534451013"},"language":"en","primary_location":{"id":"doi:10.1145/2998392.3001580","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2998392.3001580","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 7th ACM SIGPLAN Symposium on Scala","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/A5061957698","display_name":"Anthony M. Sloane","orcid":"https://orcid.org/0000-0002-6802-7360"},"institutions":[{"id":"https://openalex.org/I99043593","display_name":"Macquarie University","ror":"https://ror.org/01sf06y89","country_code":"AU","type":"education","lineage":["https://openalex.org/I99043593"]}],"countries":["AU"],"is_corresponding":true,"raw_author_name":"Anthony M. Sloane","raw_affiliation_strings":["Macquarie University, Australia"],"affiliations":[{"raw_affiliation_string":"Macquarie University, Australia","institution_ids":["https://openalex.org/I99043593"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5000548831","display_name":"Franck Cassez","orcid":"https://orcid.org/0000-0002-4317-5025"},"institutions":[{"id":"https://openalex.org/I99043593","display_name":"Macquarie University","ror":"https://ror.org/01sf06y89","country_code":"AU","type":"education","lineage":["https://openalex.org/I99043593"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Franck Cassez","raw_affiliation_strings":["Macquarie University, Australia"],"affiliations":[{"raw_affiliation_string":"Macquarie University, Australia","institution_ids":["https://openalex.org/I99043593"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5048589348","display_name":"Scott Buckley","orcid":"https://orcid.org/0000-0001-8810-9323"},"institutions":[{"id":"https://openalex.org/I99043593","display_name":"Macquarie University","ror":"https://ror.org/01sf06y89","country_code":"AU","type":"education","lineage":["https://openalex.org/I99043593"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Scott Buckley","raw_affiliation_strings":["Macquarie University, Australia"],"affiliations":[{"raw_affiliation_string":"Macquarie University, Australia","institution_ids":["https://openalex.org/I99043593"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5061957698"],"corresponding_institution_ids":["https://openalex.org/I99043593"],"apc_list":null,"apc_paid":null,"fwci":1.2854,"has_fulltext":false,"cited_by_count":4,"citation_normalized_percentile":{"value":0.87219254,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":91,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"110","last_page":"113"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","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/T11424","display_name":"Security and Verification in Computing","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/T10126","display_name":"Logic, programming, and type systems","score":0.9973999857902527,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9955000281333923,"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.893157958984375},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8524324893951416},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.822435736656189},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.6810111999511719},{"id":"https://openalex.org/keywords/generator","display_name":"Generator (circuit theory)","score":0.5278090238571167},{"id":"https://openalex.org/keywords/plug-in","display_name":"Plug-in","score":0.5010943412780762},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.49985313415527344},{"id":"https://openalex.org/keywords/grammar","display_name":"Grammar","score":0.4300594627857208},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.4139668643474579},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.37328797578811646},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.3449455499649048},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.3127778172492981},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.1304452121257782},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.07736039161682129}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.893157958984375},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8524324893951416},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.822435736656189},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.6810111999511719},{"id":"https://openalex.org/C2780992000","wikidata":"https://www.wikidata.org/wiki/Q17016113","display_name":"Generator (circuit theory)","level":3,"score":0.5278090238571167},{"id":"https://openalex.org/C4924752","wikidata":"https://www.wikidata.org/wiki/Q184148","display_name":"Plug-in","level":2,"score":0.5010943412780762},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.49985313415527344},{"id":"https://openalex.org/C26022165","wikidata":"https://www.wikidata.org/wiki/Q8091","display_name":"Grammar","level":2,"score":0.4300594627857208},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.4139668643474579},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.37328797578811646},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.3449455499649048},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.3127778172492981},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.1304452121257782},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.07736039161682129},{"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},{"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/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2998392.3001580","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2998392.3001580","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 7th ACM SIGPLAN Symposium on Scala","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Quality Education","id":"https://metadata.un.org/sdg/4","score":0.6800000071525574}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":9,"referenced_works":["https://openalex.org/W1890419246","https://openalex.org/W1971135355","https://openalex.org/W2018045485","https://openalex.org/W2098396599","https://openalex.org/W2195979150","https://openalex.org/W3004896733","https://openalex.org/W4205241946","https://openalex.org/W4233757090","https://openalex.org/W6683303659"],"related_works":["https://openalex.org/W4248962295","https://openalex.org/W2911968761","https://openalex.org/W2890121425","https://openalex.org/W2204875185","https://openalex.org/W205696660","https://openalex.org/W2526343417","https://openalex.org/W2905001159","https://openalex.org/W4230046814","https://openalex.org/W4232952072","https://openalex.org/W3040669356"],"abstract_inverted_index":{"Tools":[0],"for":[1,20,75,92,109,128,158,167],"creating":[2],"parsers":[3,22],"are":[4,49],"a":[5,9,37,85,101,118,133],"key":[6],"part":[7],"of":[8,96],"mature":[10],"language":[11,139,166],"eco-system.":[12],"Scala":[13,58,77],"has":[14],"traditionally":[15],"relied":[16],"on":[17],"combinator":[18],"libraries":[19,25],"defining":[21],"but":[23,46],"being":[24],"they":[26],"come":[27],"with":[28,57,64],"fundamental":[29],"implementation":[30],"limitations.":[31],"An":[32],"alternative":[33],"is":[34,69],"to":[35,55,87,155],"use":[36,56],"Java-based":[38],"parser":[39,66,90],"generator":[40,91],"such":[41],"as":[42,116],"ANTLR":[43],"or":[44],"Rats!":[45,89,119],"these":[47],"tools":[48],"quite":[50],"verbose":[51],"and":[52,112,132,148,162],"not":[53],"ideal":[54],"code.":[59],"We":[60,142],"describe":[61,149],"our":[62,72,137,150],"experiences":[63,152],"Scala-focused":[65],"generation":[67],"that":[68,106],"embodied":[70],"in":[71],"sbtrats":[73,83,121,145],"plugin":[74],"the":[76,88,129,144,163],"Build":[78],"Tool.":[79],"At":[80],"its":[81],"simplest,":[82],"provides":[84],"bridge":[86],"Java.":[93],"On":[94],"top":[95],"this":[97],"bridge,":[98],"we":[99],"have":[100],"simple":[102],"grammar":[103,146],"definition":[104],"notation":[105,147,161],"incorporates":[107],"annotations":[108],"tree":[110,130],"construction":[111],"pretty-printing.":[113],"As":[114],"well":[115],"generating":[117],"grammar,":[120],"can":[122],"optionally":[123],"generate":[124],"case":[125],"class":[126],"definitions":[127],"structure":[131],"pretty-printer":[134],"defined":[135],"using":[136,153],"Kiama":[138],"processing":[140],"library.":[141],"explain":[143],"positive":[151],"it":[154],"define":[156],"grammars":[157],"LLVM":[159],"assembly":[160],"SMTLIB":[164],"input/output":[165],"SMT":[168],"solvers.":[169]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2017,"cited_by_count":3}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
