{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/26250"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/26250","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Hybrid Static/Dynamic Type Safety for C/C++ Programs","abstract":"C/C++ are the languages of choice for development of many widely used system softwares. However, these languages do not provide the strong safety guarantees that safe languages such as Java do. Programming mistakes can introduce type errors that are not caught at compile time. These errors may subsequently be triggered at runtime, and their sources maybe hard to detect. This thesis presents the design and implementation for a dynamic type checker for C/C++ programs. It is built using the LLVM compiler infras- tructure and provides type safety for programs that have been compiled to the LLVM IR. The thesis also discusses the design of static analysis to reduce the overhead of the dynamic type checker. We present an implementation of the static analysis and discuss how its results can be used to optimize the dynamic type checker. We also present performance evaluation on various benchmarks and system software. We present results that show that we can catch most errors with relatively low overhead.","abstract_html":"C/C++ are the languages of choice for development of many widely used system softwares. However, these languages do not provide the strong safety guarantees that safe languages such as Java do. Programming mistakes can introduce type errors that are not caught at compile time. These errors may subsequently be triggered at runtime, and their sources maybe hard to detect. This thesis presents the design and implementation for a dynamic type checker for C/C++ programs. It is built using the LLVM compiler infras- tructure and provides type safety for programs that have been compiled to the LLVM IR. The thesis also discusses the design of static analysis to reduce the overhead of the dynamic type checker. We present an implementation of the static analysis and discuss how its results can be used to optimize the dynamic type checker. We also present performance evaluation on various benchmarks and system software. We present results that show that we can catch most errors with relatively low overhead.","abstract_has_math":false,"creators":["Aggarwal, Arushi"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Adve, Vikram S."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2011,"date_issued":"2011-08-25T22:20:42Z","date_published":"2011-08-25T22:20:42Z","updated_at":"2026-07-22T22:25:26Z","subjects":["Type Safety","C language"],"languages":["en"],"rights":["Copyright 2011 Arushi Aggarwal"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/26250","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Adve, Vikram S."]},{"key":"dc:creator","label":"Author","values":["Aggarwal, Arushi"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2011-08-25T22:20:42Z","2011-08"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"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":["Type Safety","C language"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2011 Arushi Aggarwal"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/26250"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["C/C++ are the languages of choice for development of many widely used system softwares. However, these languages do not provide the strong safety guarantees that safe languages such as Java do. Programming mistakes can introduce type errors that are not caught at compile time. These errors may subsequently be triggered at runtime, and their sources maybe hard to detect. This thesis presents the design and implementation for a dynamic type checker for C/C++ programs. It is built using the LLVM compiler infras- tructure and provides type safety for programs that have been compiled to the LLVM IR. The thesis also discusses the design of static analysis to reduce the overhead of the dynamic type checker. We present an implementation of the static analysis and discuss how its results can be used to optimize the dynamic type checker. We also present performance evaluation on various benchmarks and system software. We present results that show that we can catch most errors with relatively low overhead.","Item withdrawn by Rebecca Bryant (rabryant@illinois.edu) on 2011-07-15T21:39:42Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Aggarwal_Arushi.pdf: 7116 bytes, checksum: fe2513c38dd5f6a0bf40b344dafc06e5 (MD5)","Made available in DSpace on 2011-08-25T22:20:42Z (GMT). No. of bitstreams: 2 Aggarwal_Arushi.pdf: 344136 bytes, checksum: 749835cc2c383013d3186b59b3597419 (MD5) license.txt: 4065 bytes, checksum: 5846f6204fc2c6c8cd36b0f1e1e2a0e4 (MD5)"]},{"key":"dc:title","label":"Title","values":["Hybrid Static/Dynamic Type Safety for C/C++ Programs"]}]}],"canonical_facts":{"dc:contributor":["Adve, Vikram S."],"dc:creator":["Aggarwal, Arushi"],"dc:date":["2011-08-25T22:20:42Z","2011-08"],"dc:description":["C/C++ are the languages of choice for development of many widely used system softwares. However, these languages do not provide the strong safety guarantees that safe languages such as Java do. Programming mistakes can introduce type errors that are not caught at compile time. These errors may subsequently be triggered at runtime, and their sources maybe hard to detect. This thesis presents the design and implementation for a dynamic type checker for C/C++ programs. It is built using the LLVM compiler infras- tructure and provides type safety for programs that have been compiled to the LLVM IR. The thesis also discusses the design of static analysis to reduce the overhead of the dynamic type checker. We present an implementation of the static analysis and discuss how its results can be used to optimize the dynamic type checker. We also present performance evaluation on various benchmarks and system software. We present results that show that we can catch most errors with relatively low overhead.","Item withdrawn by Rebecca Bryant (rabryant@illinois.edu) on 2011-07-15T21:39:42Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Aggarwal_Arushi.pdf: 7116 bytes, checksum: fe2513c38dd5f6a0bf40b344dafc06e5 (MD5)","Made available in DSpace on 2011-08-25T22:20:42Z (GMT). No. of bitstreams: 2 Aggarwal_Arushi.pdf: 344136 bytes, checksum: 749835cc2c383013d3186b59b3597419 (MD5) license.txt: 4065 bytes, checksum: 5846f6204fc2c6c8cd36b0f1e1e2a0e4 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/26250"],"dc:language":["en"],"dc:rights":["Copyright 2011 Arushi Aggarwal"],"dc:subject":["Type Safety","C language"],"dc:title":["Hybrid Static/Dynamic Type Safety for C/C++ Programs"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:26Z"}