CAREER: Employing Flow Analyses in Practical Program Transformation Environments for Mostly-Functional Languages
CAREER: Employing Flow Analyses in Practical Program Transformation Environments for Mostly-Functional Languages
批准号:
9623753
负责人:
J. Michael Ashley
金额:
$20.0万
依托单位国家:
美国
项目类别:
Continuing Grant
财政年份:
1996
资助国家:
美国
项目状态:
已结题
起止时间:
1996-07-01 至 2000-06-30
中文摘要
流分析是一种自动工具,它收集有关程序的信息。流信息是至关重要的,因为没有它,复杂的程序转换的正确性就无法验证。这样的转换是很重要的,因为它们可以将一个为干净地解决问题而编写的程序转换为一个新的程序,例如,更有效和容错的程序。 最终,流程分析合理的转换可以提高软件的可靠性和程序员的生产力。尽管它们的效用,但是,现有的流分析大多数函数式语言是不切实际的生产质量的环境中使用。它们具有很高的算法复杂度,它们只能处理语言子集,并且只有当程序以某种风格编写时才是准确的。 这个职业项目有三个目标来解决这些问题,并将先进的分析技术纳入本科课程。第一个目标是在生产Scheme编译器中使用实际的流分析来证明优化的合理性。第二个目标是使用流分析和从其应用中获得的经验,开发一个程序转换工具包,用于构建自动的,基于流分析的程序转换器。第三个目标是将结果纳入本科课程,使学生了解什么是流分析,它是如何工作的,以及它如何可以被有益地应用。 实现这些目标将推动研究和教育。 除了解决上述问题,本项目的研究方面追求在语言实现和基于语义的程序操作领域的贡献。 特别是,正在实施的优化,可以提高动态语言的性能,程序转换技术正在开发,允许更现实的程序被操纵。预计开发的转换工具包将为研究界提供试验转换所需的基础设施。 本CAREER调查的教育方面旨在通过解决程序的静态和动态属性之间的区别以及如何使用静态信息来优化程序来改善本科编程语言课程。这种理解对于本科教育至关重要,因为编程语言在可定制软件中发挥着越来越重要的作用。 ***
英文摘要
A flow analysis is an automatic tool that collects information about programs. Flow information is crucial, for without it the correctness of sophisticated program transformations cannot be verified. Such transformations are important, because they can transform a program written to solve a problem cleanly into a new program that, for example, is more efficient and fault tolerant. Ultimately, flow analysis-justified transformations can boost software reliability and programmer productivity. Despite their utility, however, existing flow analyses for mostly-functional languages are impractical for use in production-quality environments. They have high algorithmic complexity, they can only process language subsets, and they are accurate only when programs are written in a certain style. This CAREER project has three goals to address these problems and incorporate advanced analysis techniques into the undergraduate curriculum. The first goal is to use a practical flow analysis in a production Scheme compiler to justify optimizations. The second goal is to use the flow analysis and the experience gained from its application to develop a program transformation toolkit for building automatic, flow analysis-based program transformers. The third goal is to incorporate the results into the undergraduate curriculum so that students understand what a flow analysis is, how it works, and how it can be profitably applied. Achieving these goals advances both research and education. Besides solving the above problems, the research aspect of this project pursues contributions in the areas of language implementation and semantics-based program manipulation. In particular, optimizations are being implemented that can improve the performance of dynamic languages, program transformation techniques are being developed that allow more realistic programs to be manipulated. The transformation toolkit developed is expected to provide the research community with needed infrastructure for experimenting with transformations. The educational aspect of this CAREER investigation seeks to improve the undergraduate programming languages curriculum by addressing the distinction between static and dynamic properties of programs and how static information can be used to optimize programs. Such an understanding is essential to undergraduate education as programming languages are playing an increasingly prominent role in customizable software. ***
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
海外基金