{"title":"生成优化专家","authors":"R. Glück, J. Jørgensen","doi":"10.1109/ICCL.1994.288382","DOIUrl":null,"url":null,"abstract":"We propose a new method for improving the specialization of programs by inserting an interpreter between a subject program and a specializer. We formulate three specializer projections which enable us to generate specializers from interpreters. The goal is to provide a new way to control the specialization of programs, and we report the first practical results. This is a step towards the automatic production of specializers. Using an existing, self-applicable partial evaluator we succeeded in generating a stand-alone specializer for a first-order functional language which is stronger than the partial evaluator used for its generation. The generated specializer corresponds to a simple supercompiler. As an example we show that the generated specializer can achieve the same speed-up effect as the Knuth, Morris and Pratt algorithm (D.E. Knuth et al., vol. 6, no. 2, 1977) by specializing a naive matcher with respect to a fixed pattern. The generated specializer is also strong enough to handle bounded static variation, a case which partial evaluators usually can not handle.<<ETX>>","PeriodicalId":137441,"journal":{"name":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","volume":"71 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1994-05-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"38","resultStr":"{\"title\":\"Generating optimizing specializers\",\"authors\":\"R. Glück, J. Jørgensen\",\"doi\":\"10.1109/ICCL.1994.288382\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We propose a new method for improving the specialization of programs by inserting an interpreter between a subject program and a specializer. We formulate three specializer projections which enable us to generate specializers from interpreters. The goal is to provide a new way to control the specialization of programs, and we report the first practical results. This is a step towards the automatic production of specializers. Using an existing, self-applicable partial evaluator we succeeded in generating a stand-alone specializer for a first-order functional language which is stronger than the partial evaluator used for its generation. The generated specializer corresponds to a simple supercompiler. As an example we show that the generated specializer can achieve the same speed-up effect as the Knuth, Morris and Pratt algorithm (D.E. Knuth et al., vol. 6, no. 2, 1977) by specializing a naive matcher with respect to a fixed pattern. The generated specializer is also strong enough to handle bounded static variation, a case which partial evaluators usually can not handle.<<ETX>>\",\"PeriodicalId\":137441,\"journal\":{\"name\":\"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)\",\"volume\":\"71 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1994-05-16\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"38\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICCL.1994.288382\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICCL.1994.288382","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 38
摘要
我们提出了一种新的方法,通过在主题程序和专门化程序之间插入一个解释器来提高程序的专门化。我们制定了三个专家预测,使我们能够从口译员中产生专家。目标是提供一种新的方法来控制程序的专门化,我们报告了第一个实际结果。这是向专业化自动化生产迈出的一步。使用现有的、自适用的部分求值器,我们成功地为一阶函数语言生成了一个独立的专门化器,它比用于生成它的部分求值器更强大。生成的特化器对应于一个简单的超编译器。作为一个例子,我们展示了生成的专门化器可以达到与Knuth, Morris和Pratt算法相同的加速效果(D.E. Knuth et al., vol. 6, no. 5)。2, 1977)通过针对固定模式专门化朴素匹配器。生成的特化器也足够强大,可以处理有界的静态变化,这是部分求值器通常无法处理的情况。
We propose a new method for improving the specialization of programs by inserting an interpreter between a subject program and a specializer. We formulate three specializer projections which enable us to generate specializers from interpreters. The goal is to provide a new way to control the specialization of programs, and we report the first practical results. This is a step towards the automatic production of specializers. Using an existing, self-applicable partial evaluator we succeeded in generating a stand-alone specializer for a first-order functional language which is stronger than the partial evaluator used for its generation. The generated specializer corresponds to a simple supercompiler. As an example we show that the generated specializer can achieve the same speed-up effect as the Knuth, Morris and Pratt algorithm (D.E. Knuth et al., vol. 6, no. 2, 1977) by specializing a naive matcher with respect to a fixed pattern. The generated specializer is also strong enough to handle bounded static variation, a case which partial evaluators usually can not handle.<>