{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/102482"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/102482","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"HW-SW co-design techniques for modern programming languages","abstract":"DSpace SAF Submission Ingestion Package generated from Vireo submission #13218 on 2019-02-05 at 11:15:13","abstract_html":"DSpace SAF Submission Ingestion Package generated from Vireo submission #13218 on 2019-02-05 at 11:15:13","abstract_has_math":false,"creators":["Choi, Jiho"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Torrellas, Josep","Hwu, Wen-Mei","Padua, David","Roşu, Grigore","Cascaval, Calin"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2019,"date_issued":"2019-02-06T19:36:36Z","date_published":"2019-02-06T19:36:36Z","updated_at":"2026-07-22T22:24:42Z","subjects":["Computer Architecture","Compiler","Inline Caching","Garbage Collection"],"languages":["en"],"rights":["Copyright 2018 Jiho Choi"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/102482","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Torrellas, Josep","Hwu, Wen-Mei","Padua, David","Roşu, Grigore","Cascaval, Calin"]},{"key":"dc:creator","label":"Author","values":["Choi, Jiho"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2019-02-06T19:36:36Z","2018-12-05","2018-12"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Computer Architecture","Compiler","Inline Caching","Garbage Collection"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2018 Jiho Choi"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/102482"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["DSpace SAF Submission Ingestion Package generated from Vireo submission #13218 on 2019-02-05 at 11:15:13","Made available in DSpace on 2019-02-06T19:36:36Z (GMT). No. of bitstreams: 2 CHOI-DISSERTATION-2018.pdf: 995700 bytes, checksum: 89ba16b658d67f97e454fb6d711716d6 (MD5) LICENSE.txt: 4206 bytes, checksum: 098c2675a383fa8853a7582a02230770 (MD5) Previous issue date: 2018-12-05","Modern programming languages raise the level of abstraction, hide the details of computer systems from programmers, and provide many convenient features. Such strong abstraction from the details of computer systems with runtime support of many convenient features increases the productivity of programmers. Such benefits, however, come with performance overheads. First, many of modern programming languages use a dynamic type system which incurs overheads of profiling program execution and generating specialized codes in the middle of execution. Second, such specialized codes constantly add overheads of dynamic type checks. Third, most of modern programming languages use automatic memory management which incurs memory overheads due to metadata and delayed reclamation as well as execution time overheads due to garbage collection operations. This thesis makes three contributions to address the overheads of modern programming languages. First, it describes the enhancements to the compiler of dynamic scripting languages necessary to enable sharing of compilation results across executions. These compilers have been developed with little consideration for reusing optimization efforts across executions since it is considered difficult due to dynamic nature of the languages. As a first step toward enabling the reuse of compilation results of dynamic scripting languages, it focuses on inline caching (IC) which is one of the fundamental optimization techniques for dynamic type systems. Second, it describes a HW-SW co-design technique to further improve IC operations. While the first proposal focuses on expensive IC miss handling during JavaScript initialization, the second proposal accelerates IC hit operations to improve the overall performance. Lastly, it describes how to exploit common sharing patterns of programs to reduce overheads of reference counting for garbage collection. It minimizes atomic operations in reference counting by biasing each object to a specific thread.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2019-02-05 without embargo terms","The student, Jiho Choi, accepted the attached license on 2018-12-05 at 11:20.","The student, Jiho Choi, submitted this Dissertation for approval on 2018-12-05 at 11:36.","This Dissertation was approved for publication on 2018-12-05 at 13:36."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["HW-SW co-design techniques for modern programming languages"]}]}],"canonical_facts":{"dc:contributor":["Torrellas, Josep","Hwu, Wen-Mei","Padua, David","Roşu, Grigore","Cascaval, Calin"],"dc:creator":["Choi, Jiho"],"dc:date":["2019-02-06T19:36:36Z","2018-12-05","2018-12"],"dc:description":["DSpace SAF Submission Ingestion Package generated from Vireo submission #13218 on 2019-02-05 at 11:15:13","Made available in DSpace on 2019-02-06T19:36:36Z (GMT). No. of bitstreams: 2 CHOI-DISSERTATION-2018.pdf: 995700 bytes, checksum: 89ba16b658d67f97e454fb6d711716d6 (MD5) LICENSE.txt: 4206 bytes, checksum: 098c2675a383fa8853a7582a02230770 (MD5) Previous issue date: 2018-12-05","Modern programming languages raise the level of abstraction, hide the details of computer systems from programmers, and provide many convenient features. Such strong abstraction from the details of computer systems with runtime support of many convenient features increases the productivity of programmers. Such benefits, however, come with performance overheads. First, many of modern programming languages use a dynamic type system which incurs overheads of profiling program execution and generating specialized codes in the middle of execution. Second, such specialized codes constantly add overheads of dynamic type checks. Third, most of modern programming languages use automatic memory management which incurs memory overheads due to metadata and delayed reclamation as well as execution time overheads due to garbage collection operations. This thesis makes three contributions to address the overheads of modern programming languages. First, it describes the enhancements to the compiler of dynamic scripting languages necessary to enable sharing of compilation results across executions. These compilers have been developed with little consideration for reusing optimization efforts across executions since it is considered difficult due to dynamic nature of the languages. As a first step toward enabling the reuse of compilation results of dynamic scripting languages, it focuses on inline caching (IC) which is one of the fundamental optimization techniques for dynamic type systems. Second, it describes a HW-SW co-design technique to further improve IC operations. While the first proposal focuses on expensive IC miss handling during JavaScript initialization, the second proposal accelerates IC hit operations to improve the overall performance. Lastly, it describes how to exploit common sharing patterns of programs to reduce overheads of reference counting for garbage collection. It minimizes atomic operations in reference counting by biasing each object to a specific thread.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2019-02-05 without embargo terms","The student, Jiho Choi, accepted the attached license on 2018-12-05 at 11:20.","The student, Jiho Choi, submitted this Dissertation for approval on 2018-12-05 at 11:36.","This Dissertation was approved for publication on 2018-12-05 at 13:36."],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/102482"],"dc:language":["en"],"dc:rights":["Copyright 2018 Jiho Choi"],"dc:subject":["Computer Architecture","Compiler","Inline Caching","Garbage Collection"],"dc:title":["HW-SW co-design techniques for modern programming languages"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:24:42Z"}