Compiler generation is often emphasized as being the most important application of partial evaluation. But most of the larger practical applications have, to the best of our knowledge, been outside this field. Expecially, no one has generated compilers for languages other than small languages. This paper describes a large application of partial evaluation where a realistic compiler was generated for a strongly typed lazy functional language. The language, that was called BAWL, was modeled after the language in Bird and Wadler [BW88] and is a combinator language with pattern matching, guarded alternatives, local definitions and list comprehensions. The paper describes the most important techniques used, especially the binding time improvements needed in order to get small and efficient target programs. Finally, the performance of the compiler is compared with two compilers for similar languages: Miranda and LML.
编译器生成通常被认为是部分评估的最重要应用。但是,就我们所知,大多数较大的实际应用程序不在此领域之内。特别是,除了小语言以外,没有人为其他语言生成过编译器。本文描述了局部评估的一个大型应用,其中为强类型化的惰性函数语言生成了一个实际的编译器。该语言称为BAWL,是根据Bird and Wadler [BW88]中的语言建模而成的,是一种具有模式匹配,受保护的替代方案,局部定义和列表理解的组合语言。本文介绍了最重要的技术,尤其是为了获得小型高效的目标程序而需要改进的绑定时间。最后,将编译器的性能与两种类似语言的编译器进行比较:Miranda和LML。 P>
机译:使用部分评估来编译面向对象的并发反射语言中的元级别
机译:向静态类型的语言编译器添加动态类型的语言支持:性能评估,分析和权衡
机译:廉价的渴望:一种惰性功能语言的投机评估
机译:使用部分评估来编译面向对象的并发反射语言中的元级别
机译:延迟评估的适用语言中的代数类型。
机译:Bellman的GAP-一种用于序列分析中动态编程的语言和编译器
机译:使用局部评估来编译面向对象的并发反射语言的元级别
机译:使用samsO的编译器编写系统(CWs)评估HaL / s语言的可编译性。