课题基金 / 基金详情

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

项目摘要

项目成果

相似基金

相关文献

中文摘要
翻译
流分析是一种自动收集程序信息的工具。流信息是至关重要的,因为没有它,复杂的程序转换的正确性就无法得到验证。这样的转换很重要,因为它们可以将为干净地解决问题而编写的程序转换为例如更高效和更容错的新程序。最终,基于流程分析的转换可以提高软件可靠性和程序员的工作效率。然而,尽管它们有用,但现有的大多数函数式语言的流分析对于在生产质量的环境中使用是不切实际的。它们具有很高的算法复杂性,它们只能处理语言子集,只有当程序以某种风格编写时,它们才是准确的。这个职业项目有三个目标来解决这些问题,并将先进的分析技术纳入本科课程。第一个目标是在生产方案编译器中使用实际的流分析来证明优化的合理性。第二个目标是使用流分析及其应用中获得的经验来开发一个程序转换工具包,用于构建自动的、基于流分析的程序转换器。第三个目标是将结果纳入本科课程,以便学生了解流动分析是什么,它是如何工作的,以及如何将其应用于盈利。实现这些目标既促进了研究,也促进了教育。除了解决上述问题外,本项目的研究方面还在语言实现和基于语义的程序操纵方面做出了贡献。具体地说,正在实施可以改善动态语言性能的优化,正在开发允许操纵更现实的程序的程序转换技术。所开发的转换工具包预计将为研究界提供进行转换试验所需的基础设施。这项职业调查的教育方面旨在通过解决程序的静态和动态属性之间的区别以及如何使用静态信息来优化程序来改进本科编程语言课程。随着编程语言在可定制软件中扮演着越来越重要的角色,这样的理解对本科教育至关重要。***
英文摘要
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)
会议论文
海外基金