{"id":"https://openalex.org/W2133587157","doi":"https://doi.org/10.1145/1167473.1167489","title":"Virgil","display_name":"Virgil","publication_year":2006,"publication_date":"2006-10-16","ids":{"openalex":"https://openalex.org/W2133587157","doi":"https://doi.org/10.1145/1167473.1167489","mag":"2133587157"},"language":"en","primary_location":{"id":"doi:10.1145/1167473.1167489","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1167473.1167489","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications","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/A5034437441","display_name":"Ben L. Titzer","orcid":"https://orcid.org/0000-0002-9690-2089"},"institutions":[{"id":"https://openalex.org/I161318765","display_name":"University of California, Los Angeles","ror":"https://ror.org/046rm7j60","country_code":"US","type":"education","lineage":["https://openalex.org/I161318765"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Ben L. Titzer","raw_affiliation_strings":["UCLA Compilers Group, Los Angeles, CA","UCLA Compilers Group, Los Angeles, CA#TAB#"],"affiliations":[{"raw_affiliation_string":"UCLA Compilers Group, Los Angeles, CA","institution_ids":[]},{"raw_affiliation_string":"UCLA Compilers Group, Los Angeles, CA#TAB#","institution_ids":["https://openalex.org/I161318765"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5034437441"],"corresponding_institution_ids":["https://openalex.org/I161318765"],"apc_list":null,"apc_paid":null,"fwci":5.8535,"has_fulltext":false,"cited_by_count":44,"citation_normalized_percentile":{"value":0.96642305,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"191","last_page":"208"},"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.9994999766349792,"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.9994999766349792,"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/T10904","display_name":"Embedded Systems Design Techniques","score":0.9984999895095825,"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.9968000054359436,"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/computer-science","display_name":"Computer science","score":0.8520376086235046},{"id":"https://openalex.org/keywords/byte","display_name":"Byte","score":0.7544060945510864},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6560604572296143},{"id":"https://openalex.org/keywords/heap","display_name":"Heap (data structure)","score":0.6352827548980713},{"id":"https://openalex.org/keywords/object-code","display_name":"Object code","score":0.5407388806343079},{"id":"https://openalex.org/keywords/initialization","display_name":"Initialization","score":0.48091599345207214},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.47760316729545593},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.46192213892936707},{"id":"https://openalex.org/keywords/microcontroller","display_name":"Microcontroller","score":0.4520041346549988},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.3908381760120392},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3537285625934601},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.33889925479888916},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.10689082741737366}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8520376086235046},{"id":"https://openalex.org/C43364308","wikidata":"https://www.wikidata.org/wiki/Q8799","display_name":"Byte","level":2,"score":0.7544060945510864},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6560604572296143},{"id":"https://openalex.org/C134757568","wikidata":"https://www.wikidata.org/wiki/Q274089","display_name":"Heap (data structure)","level":2,"score":0.6352827548980713},{"id":"https://openalex.org/C154526789","wikidata":"https://www.wikidata.org/wiki/Q157965","display_name":"Object code","level":4,"score":0.5407388806343079},{"id":"https://openalex.org/C114466953","wikidata":"https://www.wikidata.org/wiki/Q6034165","display_name":"Initialization","level":2,"score":0.48091599345207214},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.47760316729545593},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.46192213892936707},{"id":"https://openalex.org/C173018170","wikidata":"https://www.wikidata.org/wiki/Q165678","display_name":"Microcontroller","level":2,"score":0.4520041346549988},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.3908381760120392},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3537285625934601},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.33889925479888916},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.10689082741737366}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1167473.1167489","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1167473.1167489","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":41,"referenced_works":["https://openalex.org/W89731140","https://openalex.org/W1516536978","https://openalex.org/W1549817550","https://openalex.org/W1588911968","https://openalex.org/W1644882639","https://openalex.org/W1649645444","https://openalex.org/W1664198384","https://openalex.org/W1759463127","https://openalex.org/W1864473657","https://openalex.org/W1884981359","https://openalex.org/W1971903460","https://openalex.org/W1974608873","https://openalex.org/W1998993025","https://openalex.org/W2000194923","https://openalex.org/W2004335791","https://openalex.org/W2040141020","https://openalex.org/W2044439539","https://openalex.org/W2045903735","https://openalex.org/W2050362115","https://openalex.org/W2051600169","https://openalex.org/W2081658857","https://openalex.org/W2093760065","https://openalex.org/W2101661228","https://openalex.org/W2114702446","https://openalex.org/W2127467423","https://openalex.org/W2131135493","https://openalex.org/W2149421660","https://openalex.org/W2150364740","https://openalex.org/W2150601320","https://openalex.org/W2155151758","https://openalex.org/W2162762034","https://openalex.org/W2164746995","https://openalex.org/W2171240827","https://openalex.org/W2179776334","https://openalex.org/W2295471304","https://openalex.org/W4210597212","https://openalex.org/W4243313767","https://openalex.org/W4252141333","https://openalex.org/W6636988782","https://openalex.org/W6637876947","https://openalex.org/W6681875454"],"related_works":["https://openalex.org/W1493727516","https://openalex.org/W1482854495","https://openalex.org/W2000504947","https://openalex.org/W4242572423","https://openalex.org/W5991980","https://openalex.org/W3163715002","https://openalex.org/W1987578288","https://openalex.org/W3146348875","https://openalex.org/W1539663158","https://openalex.org/W4245640102"],"abstract_inverted_index":{"Embedded":[0],"microcontrollers":[1],"are":[2],"becoming":[3],"increasingly":[4],"prolific,":[5],"serving":[6],"as":[7,34,36,203,205],"the":[8,26,60,75,114,128,186],"primary":[9],"or":[10,121],"auxiliary":[11],"processor":[12],"in":[13,168,189],"products":[14],"and":[15,42,50,77,109,138,149,197,199],"research":[16],"systems":[17],"from":[18,97],"microwaves":[19],"to":[20,58,66,102,132],"sensor":[21],"networks.":[22],"Microcontrollers":[23],"represent":[24],"perhaps":[25],"most":[27],"severely":[28],"resource-constrained":[29],"embedded":[30],"processors,":[31],"often":[32],"with":[33,86,163,175],"little":[35],"a":[37,43,81,118],"few":[38,44],"bytes":[39,172,179],"of":[40,46,62,79,173,180],"memory":[41],"kilobytes":[45],"code":[47,193],"space.":[48],"Language":[49],"compiler":[51],"technology":[52],"has":[53],"so":[54],"far":[55],"been":[56],"unable":[57],"bring":[59],"benefits":[61],"modern":[63],"object-oriented":[64,83],"languages":[65],"such":[67],"processors.":[68],"In":[69],"this":[70,190],"paper,":[71],"I":[72],"will":[73],"present":[74],"design":[76],"implementation":[78],"Virgil,":[80],"lightweight":[82],"language":[84,123],"designed":[85],"careful":[87],"consideration":[88],"for":[89,159],"resource-limited":[90],"domains.":[91],"Virgil":[92,155],"explicitly":[93],"separates":[94],"initialization":[95],"time":[96,137],"runtime,":[98],"allowing":[99],"an":[100],"application":[101],"build":[103],"complex":[104],"data":[105],"structures":[106],"during":[107],"compilation":[108],"then":[110],"run":[111],"directly":[112],"on":[113],"bare":[115],"hardware":[116],"without":[117],"virtual":[119],"machine":[120],"any":[122],"runtime.":[124],"This":[125],"separation":[126],"allows":[127],"entire":[129],"program":[130],"heap":[131],"be":[133],"available":[134],"at":[135],"compile":[136],"enables":[139],"three":[140],"new":[141],"data-sensitive":[142],"optimizations:":[143],"reachable":[144],"members":[145],"analysis,":[146],"reference":[147],"compression,":[148],"ROM-ization.":[150],"Experi-mental":[151],"results":[152,183],"demonstrate":[153],"that":[154,185],"is":[156],"well":[157],"suited":[158],"writing":[160],"microcontroller":[161],"programs,":[162],"five":[164],"demonstrative":[165],"applications":[166],"fitting":[167],"less":[169],"than":[170,177],"256":[171],"RAM":[174,200],"fewer":[176],"50":[178],"metadata.":[181],"Further":[182],"show":[184],"optimizations":[187],"presented":[188],"paper":[191],"reduced":[192],"size":[194,201],"between":[195],"20%":[196],"80%":[198],"by":[202],"much":[204],"75%.":[206]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":1},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":1},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":1}],"updated_date":"2025-11-23T05:10:03.516525","created_date":"2016-06-24T00:00:00"}
