{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/106294"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/106294","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Identifying similar code fragments in Haskell","abstract":"Identifying syntactically or functionally similar code fragments in source code is an important research question in software engineering. Many researchers pointed out that detecting and refactoring code clones can be beneficial for software maintenance purposes. This work presents a clone detector algorithm. The proposed approach uses a source code AST representation and identifies similar fragments by generating and filtering pattern trees created from subtree pairs. The algorithm extends the existing technique of tree comparison by including Munkers assignment algorithm (The Hungarian method) and the longest common subsequence algorithm. Munkres assignment algorithm helps to identify rearranged code fragments. The LCS algorithm is used to compare subtrees of different syntactic variants. Experiments showed that these algorithms can help better evaluate code fragments to identify duplicates.","abstract_html":"Identifying syntactically or functionally similar code fragments in source code is an important research question in software engineering. Many researchers pointed out that detecting and refactoring code clones can be beneficial for software maintenance purposes. This work presents a clone detector algorithm. The proposed approach uses a source code AST representation and identifies similar fragments by generating and filtering pattern trees created from subtree pairs. The algorithm extends the existing technique of tree comparison by including Munkers assignment algorithm (The Hungarian method) and the longest common subsequence algorithm. Munkres assignment algorithm helps to identify rearranged code fragments. The LCS algorithm is used to compare subtrees of different syntactic variants. Experiments showed that these algorithms can help better evaluate code fragments to identify duplicates.","abstract_has_math":false,"creators":["Vardishvili, Mariam"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Gunter, Elsa L"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2020,"date_issued":"2020-03-02T22:03:29Z","date_published":"2020-03-02T22:03:29Z","updated_at":"2026-07-22T22:24:45Z","subjects":["Cloning","Software maintenance","duplicated code","Haskell"],"languages":["en"],"rights":["Copyright 2019 Mariam Vardishvili"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/106294","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Gunter, Elsa L"]},{"key":"dc:creator","label":"Author","values":["Vardishvili, Mariam"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2020-03-02T22:03:29Z","2019-12-13","2019-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":["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":["Cloning","Software maintenance","duplicated code","Haskell"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2019 Mariam Vardishvili"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/106294"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Identifying syntactically or functionally similar code fragments in source code is an important research question in software engineering. Many researchers pointed out that detecting and refactoring code clones can be beneficial for software maintenance purposes. This work presents a clone detector algorithm. The proposed approach uses a source code AST representation and identifies similar fragments by generating and filtering pattern trees created from subtree pairs. The algorithm extends the existing technique of tree comparison by including Munkers assignment algorithm (The Hungarian method) and the longest common subsequence algorithm. Munkres assignment algorithm helps to identify rearranged code fragments. The LCS algorithm is used to compare subtrees of different syntactic variants. Experiments showed that these algorithms can help better evaluate code fragments to identify duplicates.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2020-02-28 without embargo terms","The student, Mariam Vardishvili, accepted the attached license on 2019-12-12 at 14:59.","The student, Mariam Vardishvili, submitted this Thesis for approval on 2019-12-12 at 15:03.","This Thesis was approved for publication on 2019-12-13 at 15:42.","DSpace SAF Submission Ingestion Package generated from Vireo submission #14817 on 2020-02-28 at 17:17:04","Made available in DSpace on 2020-03-02T22:03:29Z (GMT). No. of bitstreams: 2 VARDISHVILI-THESIS-2019.pdf: 546488 bytes, checksum: 597a41e1614321e41ed4a5090e274261 (MD5) LICENSE.txt: 4215 bytes, checksum: 532f4ffc701b56b4e9d53a25a75d6f2c (MD5) Previous issue date: 2019-12-13"]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Identifying similar code fragments in Haskell"]}]}],"canonical_facts":{"dc:contributor":["Gunter, Elsa L"],"dc:creator":["Vardishvili, Mariam"],"dc:date":["2020-03-02T22:03:29Z","2019-12-13","2019-12"],"dc:description":["Identifying syntactically or functionally similar code fragments in source code is an important research question in software engineering. Many researchers pointed out that detecting and refactoring code clones can be beneficial for software maintenance purposes. This work presents a clone detector algorithm. The proposed approach uses a source code AST representation and identifies similar fragments by generating and filtering pattern trees created from subtree pairs. The algorithm extends the existing technique of tree comparison by including Munkers assignment algorithm (The Hungarian method) and the longest common subsequence algorithm. Munkres assignment algorithm helps to identify rearranged code fragments. The LCS algorithm is used to compare subtrees of different syntactic variants. Experiments showed that these algorithms can help better evaluate code fragments to identify duplicates.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2020-02-28 without embargo terms","The student, Mariam Vardishvili, accepted the attached license on 2019-12-12 at 14:59.","The student, Mariam Vardishvili, submitted this Thesis for approval on 2019-12-12 at 15:03.","This Thesis was approved for publication on 2019-12-13 at 15:42.","DSpace SAF Submission Ingestion Package generated from Vireo submission #14817 on 2020-02-28 at 17:17:04","Made available in DSpace on 2020-03-02T22:03:29Z (GMT). No. of bitstreams: 2 VARDISHVILI-THESIS-2019.pdf: 546488 bytes, checksum: 597a41e1614321e41ed4a5090e274261 (MD5) LICENSE.txt: 4215 bytes, checksum: 532f4ffc701b56b4e9d53a25a75d6f2c (MD5) Previous issue date: 2019-12-13"],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/106294"],"dc:language":["en"],"dc:rights":["Copyright 2019 Mariam Vardishvili"],"dc:subject":["Cloning","Software maintenance","duplicated code","Haskell"],"dc:title":["Identifying similar code fragments in Haskell"],"dc:type":["text"],"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:24:45Z"}