{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/24358"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/24358","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Detecting and Combining Programming Patterns","abstract":"This thesis explores detecting patterns in the most general interface to computers: source and assembly program code. Because writing computer programs correctly is so difficult, there is a large assortment of software engineering techniques devoted to making this process easier and more efficient. Therefore, despite the huge space of possible programs, most programs written by humans will exhibit some of the same patterns. Project Laika detects the data structures used by guest programs using unsupervised Bayesian learning. Using these data structures, it can detect viruses with considerably better accuracy than ClamAV, a leading industry solution. Using high-level features makes Laika considerably more resistant to polymorphic worms, because it requires them to preserve their high-level structure through their polymorphic transformations. Project Macho generates Java programs from a combination of natural language, example inputs, and a database of Java code. Unlike past natural language programming systems, which were basically verbose versions of Visual Basic, Macho allows users to specify (small) programs in high-level language and use examples to fill in the details. We were able to generate satisfactory solutions for basic versions of several core utilities, including ls and grep, even when the natural language inputs were varied substantially.","abstract_html":"This thesis explores detecting patterns in the most general interface to computers: source and assembly program code. Because writing computer programs correctly is so difficult, there is a large assortment of software engineering techniques devoted to making this process easier and more efficient. Therefore, despite the huge space of possible programs, most programs written by humans will exhibit some of the same patterns. Project Laika detects the data structures used by guest programs using unsupervised Bayesian learning. Using these data structures, it can detect viruses with considerably better accuracy than ClamAV, a leading industry solution. Using high-level features makes Laika considerably more resistant to polymorphic worms, because it requires them to preserve their high-level structure through their polymorphic transformations. Project Macho generates Java programs from a combination of natural language, example inputs, and a database of Java code. Unlike past natural language programming systems, which were basically verbose versions of Visual Basic, Macho allows users to specify (small) programs in high-level language and use examples to fill in the details. We were able to generate satisfactory solutions for basic versions of several core utilities, including ls and grep, even when the natural language inputs were varied substantially.","abstract_has_math":false,"creators":["Cozzie, Anthony E."],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["King, Samuel T.","Arpaci-Dusseau, Remzi","Amir, Eyal","Adve, Vikram S.","Marinov, Darko"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2011,"date_issued":"2011-05-25T14:37:57Z","date_published":"2011-05-25T14:37:57Z","updated_at":"2026-07-22T22:25:23Z","subjects":["data structures","programming patterns","macho"],"languages":["en"],"rights":["Copyright 2010 Anthony Cozzie"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/24358","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["King, Samuel T.","Arpaci-Dusseau, Remzi","Amir, Eyal","Adve, Vikram S.","Marinov, Darko"]},{"key":"dc:creator","label":"Author","values":["Cozzie, Anthony E."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2011-05-25T14:37:57Z","2013-05-26T10:00:22Z","2011-05"]},{"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":["data structures","programming patterns","macho"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2010 Anthony Cozzie"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/24358"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["This thesis explores detecting patterns in the most general interface to computers: source and assembly program code. Because writing computer programs correctly is so difficult, there is a large assortment of software engineering techniques devoted to making this process easier and more efficient. Therefore, despite the huge space of possible programs, most programs written by humans will exhibit some of the same patterns. Project Laika detects the data structures used by guest programs using unsupervised Bayesian learning. Using these data structures, it can detect viruses with considerably better accuracy than ClamAV, a leading industry solution. Using high-level features makes Laika considerably more resistant to polymorphic worms, because it requires them to preserve their high-level structure through their polymorphic transformations. Project Macho generates Java programs from a combination of natural language, example inputs, and a database of Java code. Unlike past natural language programming systems, which were basically verbose versions of Visual Basic, Macho allows users to specify (small) programs in high-level language and use examples to fill in the details. We were able to generate satisfactory solutions for basic versions of several core utilities, including ls and grep, even when the natural language inputs were varied substantially.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-12-06T15:03:41Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Cozzie_Anthony.pdf: 643670 bytes, checksum: 1d423dd4dcf62aefab2c315069aae4b2 (MD5)","Made available in DSpace on 2011-05-25T14:37:57Z (GMT). No. of bitstreams: 2 Cozzie_Anthony.pdf: 566818 bytes, checksum: fc8bb3d701a4f3c44d9041f9063548a9 (MD5) license.txt: 4064 bytes, checksum: 643b28a61b329c69a95a08d6c13f588c (MD5)","Item marked as restricted to the 'UIUC Users [automated]' Group (id=2) by William Ingram (wingram2@illinois.edu) on 2011-05-25T14:41:34Z Item is restricted until 2013-05-25T14:41:28Z","Item reinstated by Sarah Shreeves (sshreeve@illinois.edu) on 2013-05-26T10:00:22Z Item was in collections: University of Illinois Dissertations and Theses (ID: 204) Dissertations and Theses - Computer Science (ID: 587) No. of bitstreams: 2 Cozzie_Anthony.pdf: 566818 bytes, checksum: fc8bb3d701a4f3c44d9041f9063548a9 (MD5) license.txt: 4064 bytes, checksum: 643b28a61b329c69a95a08d6c13f588c (MD5)","Item released from any restrictions by Sarah Shreeves (sshreeve@illinois.edu) on 2013-05-26T10:00:22Z"]},{"key":"dc:title","label":"Title","values":["Detecting and Combining Programming Patterns"]}]}],"canonical_facts":{"dc:contributor":["King, Samuel T.","Arpaci-Dusseau, Remzi","Amir, Eyal","Adve, Vikram S.","Marinov, Darko"],"dc:creator":["Cozzie, Anthony E."],"dc:date":["2011-05-25T14:37:57Z","2013-05-26T10:00:22Z","2011-05"],"dc:description":["This thesis explores detecting patterns in the most general interface to computers: source and assembly program code. Because writing computer programs correctly is so difficult, there is a large assortment of software engineering techniques devoted to making this process easier and more efficient. Therefore, despite the huge space of possible programs, most programs written by humans will exhibit some of the same patterns. Project Laika detects the data structures used by guest programs using unsupervised Bayesian learning. Using these data structures, it can detect viruses with considerably better accuracy than ClamAV, a leading industry solution. Using high-level features makes Laika considerably more resistant to polymorphic worms, because it requires them to preserve their high-level structure through their polymorphic transformations. Project Macho generates Java programs from a combination of natural language, example inputs, and a database of Java code. Unlike past natural language programming systems, which were basically verbose versions of Visual Basic, Macho allows users to specify (small) programs in high-level language and use examples to fill in the details. We were able to generate satisfactory solutions for basic versions of several core utilities, including ls and grep, even when the natural language inputs were varied substantially.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-12-06T15:03:41Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Cozzie_Anthony.pdf: 643670 bytes, checksum: 1d423dd4dcf62aefab2c315069aae4b2 (MD5)","Made available in DSpace on 2011-05-25T14:37:57Z (GMT). No. of bitstreams: 2 Cozzie_Anthony.pdf: 566818 bytes, checksum: fc8bb3d701a4f3c44d9041f9063548a9 (MD5) license.txt: 4064 bytes, checksum: 643b28a61b329c69a95a08d6c13f588c (MD5)","Item marked as restricted to the 'UIUC Users [automated]' Group (id=2) by William Ingram (wingram2@illinois.edu) on 2011-05-25T14:41:34Z Item is restricted until 2013-05-25T14:41:28Z","Item reinstated by Sarah Shreeves (sshreeve@illinois.edu) on 2013-05-26T10:00:22Z Item was in collections: University of Illinois Dissertations and Theses (ID: 204) Dissertations and Theses - Computer Science (ID: 587) No. of bitstreams: 2 Cozzie_Anthony.pdf: 566818 bytes, checksum: fc8bb3d701a4f3c44d9041f9063548a9 (MD5) license.txt: 4064 bytes, checksum: 643b28a61b329c69a95a08d6c13f588c (MD5)","Item released from any restrictions by Sarah Shreeves (sshreeve@illinois.edu) on 2013-05-26T10:00:22Z"],"dc:identifier":["http://hdl.handle.net/2142/24358"],"dc:language":["en"],"dc:rights":["Copyright 2010 Anthony Cozzie"],"dc:subject":["data structures","programming patterns","macho"],"dc:title":["Detecting and Combining Programming Patterns"],"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:25:23Z"}