课题基金 / 基金详情

SGER: Gradual Compilers

SGER: Gradual Compilers
SGER:渐进编译器
批准号:
9987458
负责人:
Daniel Friedman
金额:
$5.0万
依托单位:
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2000
资助国家:
美国
项目状态:
已结题
起止时间:
2000-08-15 至 2002-07-31
关键词:

项目摘要

项目成果

Daniel Friedman的其他基金

相似基金

相关文献

中文摘要
翻译
摘要:随着用户对系统功能的要求越来越高,系统的接口也必然变得越来越复杂。在某种程度上,接口近似于一种编程语言,系统可以合理地使用编译器来有效地处理用户的指令。因此,我们预计编译器编写技术将越来越多地要求软件工程专业人员。不幸的是,编译器通常是大型的、神秘的程序,编写编译器有点像一门黑色的艺术。我们正在开发一种新的方法来开发和展示大多数函数式语言的编译器。关于编译器的课程通常围绕一个广泛的项目展开,通过这个项目开发编译器。人们经常尝试将编译器划分为几个阶段。然而,传统上,早期阶段只包括扫描和解析,大部分实际工作都是单独的任务。这使得编译器课程要么很困难(如果让学生自己处理这个问题),要么很做作(如果他们从老师那里得到大量帮助)。我们的方法的主要优点是,学生可以在增量阶段构建编译器,并了解每个阶段对项目的贡献。因此,在任何时间点,学生只关心目标体系结构的一个方面。通过这种方式,他们了解了源架构和目标架构是如何相互关联的,并且不再将它们视为完全不同的世界。我们的方法的另一个优点是不同级别的指令可以交错,这样就可以一次为一种语言形式编写和调试转换。所有这些都将使编译器编写变得不那么神秘,并使更多的学生能够访问编译器课程。我们在探索性研究小额资助下提交了这个申请,因为我们希望立即进行这项研究。这种新方法,如果进一步发展,可能会极大地影响印第安纳大学今年春天的本科编译课程。我们还将通过向教育会议提交报告和/或出版相关文本,将我们的努力成果提供给更大的教育界。虽然我们在这一点上的主要动机是教育,但我们的方法的好处可能会更远。它们应该包括使用不同的源语言或目标语言在编译器中重用组件的能力,以至于编写编译器涉及到通过各种中间语言或编程风格或体系结构绘制路线。然后,对任何一个体系结构的更改都将对编译器家族产生最小的影响。第二个优点是可以在适当的最高级别单独添加优化。最后,对不同层次指令交错的支持将使编译器的开发成本更低,更容易出错。它还应该有助于提高对即时编译问题的直觉和理解,这些问题随着Java编程语言的日益普及而变得紧迫。
英文摘要
CCR-9987458Abstract:With the increasing demands of users for ever more complex features intheir systems, interfaces to these systems necessarily also becomecomplex. At some point, the interfaces approximate a programminglanguage, and the system can reasonably use a compiler to efficientlyhandle the users' directions. We thus expect that compiler-writingtechnology will increasingly be demanded of software engineeringprofessionals. Unfortunately, compilers are often large, mysteriousprograms, and compiler-writing somewhat of a black art. We are developing a new approach to the development and exposition ofcompilers for mostly functional languages. Courses on compilers aregenerally centered around an extensive project through which acompiler is developed. Some attempt is often made to divide thecompiler into phases. Traditionally, however, the early phases merelycover scanning and parsing and most of the real work is left as asingle task. This makes compiler courses either difficult, ifstudents are left to deal with this problem on their own, orcontrived, if they are given substantial amounts of help from theirinstructor. The primary advantage of our approach is that studentscan build a compiler in incremental stages and understand how eachstage contributes to the project. Thus, at any point in time, thestudents are only concerned with a single aspect of the targetarchitecture. In this way, they gain an understanding of how thesource and target architectures relate to each other and no longerview them as totally disparate worlds. An additional advantage of ourapproach is that instructions at different levels can be interleaved,so that transformations can be written and debugged for one languageform at a time. All of this will make compiler-writing far lessmysterious and make compiler courses accessible to many more students.We are submitting this request under Small Grants for ExploratoryResearch because we wish to pursue this research immediately. Thisnew approach, if further developed, could greatly affect IndianaUniversity's undergraduate compiler course this spring. We will alsomake the results of our efforts available to the larger educationalcommunity through submissions to education-oriented conferences and/orthe publication of relevant texts.Although our primary motivation at this point is educational, thebenefits of our approach are likely to range much further. Theyshould include the ability to reuse components in compilers with adifferent source or target language, to the point where writing acompiler involves plotting a course through a variety of intermediatelanguages or programming styles or architectures. Then, a change toany one architecture will have minimal impact on the family ofcompilers. A second advantage is that optimizations can be addedindividually, at the highest appropriate level. Finally, support forthe interleaving of instructions at different levels should make thedevelopment of compilers much less expensive and error-prone. Itshould also help to improve intuitions and understanding of issues of just-in-time compililation that have become pressing withthe increased popularity of the Java programming language.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
NSF Postdoctoral Fellowship in Biology FY 2020
  • 批准号:
    2010290
  • 项目类别:
    Fellowship Award
  • 资助金额:
    $13.8万
  • 财政年份:
    2020
  • 负责人:
    Daniel Friedman
  • 依托单位:
Collaborative Research: Preferences and Equilibrium in Laboratory Financial Markets
  • 批准号:
    1357867
  • 项目类别:
    Standard Grant
  • 资助金额:
    $32.45万
  • 财政年份:
    2014
  • 负责人:
    Daniel Friedman
  • 依托单位:
Doctoral Dissertation Research in DRMS: Financial Circuit Breakers: Theory and Experiments
  • 批准号:
    1260813
  • 项目类别:
    Standard Grant
  • 资助金额:
    $2.59万
  • 财政年份:
    2013
  • 负责人:
    Daniel Friedman
  • 依托单位:
ICES: Small: Economic Analysis of Recommender Systems
  • 批准号:
    1101741
  • 项目类别:
    Standard Grant
  • 资助金额:
    $39.62万
  • 财政年份:
    2011
  • 负责人:
    Daniel Friedman
  • 依托单位:
海外基金