{"id":"https://openalex.org/W2979991936","doi":"https://doi.org/10.1145/3358711.3361627","title":"ChocoPy: a programming language for compilers courses","display_name":"ChocoPy: a programming language for compilers courses","publication_year":2019,"publication_date":"2019-10-10","ids":{"openalex":"https://openalex.org/W2979991936","doi":"https://doi.org/10.1145/3358711.3361627","mag":"2979991936"},"language":"en","primary_location":{"id":"doi:10.1145/3358711.3361627","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3358711.3361627","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3358711.3361627","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3358711.3361627","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5077787726","display_name":"Rohan Padhye","orcid":"https://orcid.org/0000-0003-4939-033X"},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Rohan Padhye","raw_affiliation_strings":["University of California at Berkeley, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5101569699","display_name":"Koushik Sen","orcid":"https://orcid.org/0000-0002-4539-9188"},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Koushik Sen","raw_affiliation_strings":["University of California at Berkeley, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5043945385","display_name":"Paul Hilfinger","orcid":null},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Paul N. Hilfinger","raw_affiliation_strings":["University of California at Berkeley, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.4461,"has_fulltext":true,"cited_by_count":18,"citation_normalized_percentile":{"value":0.86986485,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"41","last_page":"45"},"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.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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","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"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9987000226974487,"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/T10260","display_name":"Software Engineering Research","score":0.9922999739646912,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8492856025695801},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.814543604850769},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.7474743127822876},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6915691494941711},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.5363349318504333},{"id":"https://openalex.org/keywords/grammar","display_name":"Grammar","score":0.452632337808609},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.43061262369155884},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.3234636187553406},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.2078665792942047},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.10606777667999268}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8492856025695801},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.814543604850769},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7474743127822876},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6915691494941711},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.5363349318504333},{"id":"https://openalex.org/C26022165","wikidata":"https://www.wikidata.org/wiki/Q8091","display_name":"Grammar","level":2,"score":0.452632337808609},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.43061262369155884},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.3234636187553406},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.2078665792942047},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.10606777667999268},{"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/3358711.3361627","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3358711.3361627","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3358711.3361627","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/3358711.3361627","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3358711.3361627","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3358711.3361627","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2019 ACM SIGPLAN Symposium on SPLASH-E","raw_type":"proceedings-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education","score":0.7400000095367432}],"awards":[{"id":"https://openalex.org/G2934506677","display_name":null,"funder_award_id":"1908870","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3517385761","display_name":"SaTC: CORE: Small: Machine Learning for Effective Fuzz Testing","funder_award_id":"1817122","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G4698767725","display_name":null,"funder_award_id":"CCF-1900968","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5291967745","display_name":"SHF: Medium: Automated Graphical User Interface Testing  with Learning","funder_award_id":"1409872","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6712323577","display_name":null,"funder_award_id":"CNS-1817122","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G7372019070","display_name":null,"funder_award_id":"1900968","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2979991936.pdf","grobid_xml":"https://content.openalex.org/works/W2979991936.grobid-xml"},"referenced_works_count":7,"referenced_works":["https://openalex.org/W220440441","https://openalex.org/W1999637967","https://openalex.org/W2003364750","https://openalex.org/W2033348393","https://openalex.org/W2038553530","https://openalex.org/W2051829920","https://openalex.org/W2762126174"],"related_works":["https://openalex.org/W2341492732","https://openalex.org/W3187193180","https://openalex.org/W106542691","https://openalex.org/W1699080303","https://openalex.org/W1721418433","https://openalex.org/W4297799326","https://openalex.org/W3116064965","https://openalex.org/W2463512549","https://openalex.org/W3089412887","https://openalex.org/W2246915267"],"abstract_inverted_index":{"ChocoPy":[0,16,33,46,60,115],"is":[1,17,34,70],"a":[2,18,52,75],"programming":[3,12],"language":[4],"designed":[5],"for":[6,78,112,152],"teaching":[7,138],"an":[8],"undergraduate":[9],"course":[10],"on":[11],"languages":[13],"and":[14,42,95,157],"compilers.":[15],"restricted":[19],"subset":[20],"of":[21,65,102,120,141],"Python":[22,54],"3.6,":[23],"using":[24,37],"static":[25],"type":[26,31,93],"annotations":[27],"to":[28,98,127,129],"enforce":[29],"compile-time":[30],"safety.":[32],"fully":[35],"specified":[36],"formal":[38,96],"grammar,":[39],"typing":[40],"rules,":[41],"operational":[43],"semantics.":[44,61],"Valid":[45],"programs":[47],"can":[48],"be":[49],"executed":[50],"in":[51,82],"standard":[53],"interpreter,":[55],"producing":[56],"results":[57],"consistent":[58],"with":[59],"A":[62],"major":[63],"component":[64],"CS164":[66],"at":[67],"UC":[68],"Berkeley":[69],"the":[71,91,110,114,121,124],"project:":[72],"students":[73,89,128],"develop":[74,130],"full":[76],"compiler":[77],"ChocoPy,":[79],"targeting":[80],"RISC-V,":[81],"about":[83],"twelve":[84],"weeks.":[85],"In":[86,104],"other":[87,155],"exercises,":[88],"extend":[90],"syntax,":[92],"system,":[94],"semantics":[97],"support":[99],"additional":[100],"features":[101,119],"Python.":[103],"this":[105],"paper,":[106],"we":[107],"outline":[108],"(1)":[109],"motivations":[111],"creating":[113],"project,":[116],"(2)":[117],"salient":[118],"language,":[122],"(3)":[123],"resources":[125,149],"provided":[126],"their":[131],"compiler,":[132],"(4)":[133],"some":[134],"insights":[135],"gained":[136],"from":[137],"two":[139],"semesters":[140],"ChocoPy-based":[142],"courses":[143],"by":[144,154],"different":[145],"instructors.":[146],"Our":[147],"assignment":[148],"are":[150],"available":[151],"re-use":[153],"instructors":[156],"institutions.":[158]},"counts_by_year":[{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":4}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
