{"title":"实用的反编译器","authors":"M. F. Weller","doi":"10.1145/1408800.1408930","DOIUrl":null,"url":null,"abstract":"The purpose of decompilers is to minimize the cost of converting a program from assembler language to a higher level language. There exist two different objectives for the design of a decompiler. The first one is to minimize conversion time by producing a literal translation of the program. It is accomplished by a translator which is as complete as possible. The second objective considers the efficiency of the converted program an important and integral part of conversion. This is usually satisfied more adequately by what we call a resystemizer, namely a conversion tool which limits itself to listing data structures, program flow and other pertinent information required to rewrite the program while retaining the old design. Clearly there is no strict dividing line between a Resystemizer and a Translator. The former may easily evolve into the latter and the latter can be used as the former, but their original design objectives differ.","PeriodicalId":204185,"journal":{"name":"ACM '74","volume":"69 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A pragmatic look at decompilers\",\"authors\":\"M. F. Weller\",\"doi\":\"10.1145/1408800.1408930\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The purpose of decompilers is to minimize the cost of converting a program from assembler language to a higher level language. There exist two different objectives for the design of a decompiler. The first one is to minimize conversion time by producing a literal translation of the program. It is accomplished by a translator which is as complete as possible. The second objective considers the efficiency of the converted program an important and integral part of conversion. This is usually satisfied more adequately by what we call a resystemizer, namely a conversion tool which limits itself to listing data structures, program flow and other pertinent information required to rewrite the program while retaining the old design. Clearly there is no strict dividing line between a Resystemizer and a Translator. The former may easily evolve into the latter and the latter can be used as the former, but their original design objectives differ.\",\"PeriodicalId\":204185,\"journal\":{\"name\":\"ACM '74\",\"volume\":\"69 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1900-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM '74\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1408800.1408930\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM '74","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1408800.1408930","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
The purpose of decompilers is to minimize the cost of converting a program from assembler language to a higher level language. There exist two different objectives for the design of a decompiler. The first one is to minimize conversion time by producing a literal translation of the program. It is accomplished by a translator which is as complete as possible. The second objective considers the efficiency of the converted program an important and integral part of conversion. This is usually satisfied more adequately by what we call a resystemizer, namely a conversion tool which limits itself to listing data structures, program flow and other pertinent information required to rewrite the program while retaining the old design. Clearly there is no strict dividing line between a Resystemizer and a Translator. The former may easily evolve into the latter and the latter can be used as the former, but their original design objectives differ.