High-Performance Dynamic Language Implementation
High-Performance Dynamic Language Implementation
批准号:
RGPIN-2022-04318
负责人:
Feeley, Marc
金额:
$2.11万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2022
资助国家:
加拿大
项目状态:
已结题
起止时间:
2022-01-01 至 2023-12-31
中文摘要
动态编程语言正被用于软件行业的所有领域,从实用的脚本到Web应用程序再到嵌入式系统。最近的调查显示,在软件开发方面,动态语言(如Python和Java)的普及度已经超过了静态语言(如C和Java)。这并不令人惊讶,因为它们的易用性和庞大的用户社区为大量的即用库做出了贡献。动态语言的当前实现使用高度复杂的多层设计,然而,与静态语言相比,这种设计在执行速度方面仍然滞后。不幸的结果是,性能关键型应用程序,例如机器学习、数据挖掘和物理模拟等日益重要的领域中的应用程序,通常是用静态语言编写的,不能从动态语言的功能中受益。拟议研究计划的长期目标是提高动态语言的性能,并降低这些语言的VM开发成本。这项研究计划中概述的工作建立在我们多年开发高性能动态语言实现的经验基础上。我们计划继续探索我们设计的基本块版本控制(BBV)编译方法,该方法特别适合于降低动态构造的成本,同时相对容易在即时(JIT)编译器或VM中实现。我们研究的一个有前景的部分是BBV的提前(AOT)变体,它可以在JIT不可行的情况下应用,或者降低JIT的预热时间。我们还将探索使用BBV执行部分函数内联,这是一种非常适合动态语言的优化,其内置操作很复杂,但经常存在一条值得内联的热门路径。我们预见到BBV可以用于优化内存分配,这是动态语言的一种常见操作,因此将对此进行研究。从这项研究中学到的知识将分别通过我们在Gambit和Zipi编译器上的工作,在短期内帮助提高动态语言实现的性能,特别是方案和Python。此外,我们将致力于开发一个基于BBV的工具包,它提供了一种中间语言,可以轻松地为任何动态语言构建高性能的VM。
英文摘要
Dynamic programming languages are being used in all areas of the software industry from utilitarian scripts to web apps to embedded systems. Recent surveys show that dynamic languages like Python and JavaScript have surpassed static languages like C and Java in popularity for software development. This is unsurprising due to their ease of use and the large user communities that contribute to the vast collections of ready to use libraries. Current implementations of dynamic languages use highly complex multi-tier designs which nevertheless still lag in terms of execution speed when compared to static languages. The unfortunate consequence is that performance critical applications, such as those in the increasingly important domains of machine learning, data mining, and physical simulation, are usually programmed in static languages and can't benefit from the features of dynamic languages. The long term objectives of the proposed research program is to increase the performance of dynamic languages and to lower the development cost of VMs for these languages. The work outlined in this research proposal builds on our many years of experience developing high-performance implementations of dynamic languages. We plan to continue exploring the Basic Block Versioning (BBV) compilation approach which we have designed and is particularly well suited to lower the cost of dynamic constructs while at the same time being relatively easy to put in place in a Just In Time (JIT) compiler or VM. A promising part of our research is an Ahead Of Time (AOT) variant of BBV which can be applied when a JIT is not an option, or to lower the warmup time of the JIT. We will also explore the use of BBV to perform partial function inlining, an optimization well suited for dynamic languages whose builtin operations are complex but a hot path that is worth inlining often exists. We foresee that BBV can be used to optimize memory allocation, a frequent operation for dynamic languages, so this will be investigated. The knowledge learned from this research will help improve the performance of implementations of dynamic languages, and specifically Scheme and Python in the short-term through our work on the Gambit and Zipi compilers respectively. Moreover, we will work on a toolkit based on BBV that provides an intermediate language for easily building high-performance VMs for any dynamic language.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Implementation of Dynamic Programming Languages
-
批准号:RGPIN-2016-05682
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.77万
-
财政年份:2021
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:RGPIN-2016-05682
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.77万
-
财政年份:2020
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:RGPIN-2016-05682
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.77万
-
财政年份:2019
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:RGPIN-2016-05682
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.77万
-
财政年份:2018
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:492964-2016
-
项目类别:Discovery Grants Program - Accelerator Supplements
-
资助金额:$2.91万
-
财政年份:2018
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:492964-2016
-
项目类别:Discovery Grants Program - Accelerator Supplements
-
资助金额:$2.91万
-
财政年份:2017
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:RGPIN-2016-05682
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.77万
-
财政年份:2017
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:492964-2016
-
项目类别:Discovery Grants Program - Accelerator Supplements
-
资助金额:$2.91万
-
财政年份:2016
-
负责人:Feeley, Marc
-
依托单位:
Implementation of Dynamic Programming Languages
-
批准号:RGPIN-2016-05682
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.77万
-
财政年份:2016
-
负责人:Feeley, Marc
-
依托单位:
Dynamic languages: design, implementation and evaluation
-
批准号:107902-2010
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.13万
-
财政年份:2014
-
负责人:Feeley, Marc
-
依托单位:
Dynamic languages: design, implementation and evaluation
-
批准号:107902-2010
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.13万
-
财政年份:2013
-
负责人:Feeley, Marc
-
依托单位:
Dynamic languages: design, implementation and evaluation
-
批准号:107902-2010
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.13万
-
财政年份:2012
-
负责人:Feeley, Marc
-
依托单位:
Dynamic languages: design, implementation and evaluation
-
批准号:107902-2010
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.13万
-
财政年份:2011
-
负责人:Feeley, Marc
-
依托单位:
Dynamic languages: design, implementation and evaluation
-
批准号:107902-2010
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$3.13万
-
财政年份:2010
-
负责人:Feeley, Marc
-
依托单位:
High-level languages: tools and applications
-
批准号:107902-2005
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.48万
-
财政年份:2009
-
负责人:Feeley, Marc
-
依托单位:
High-level languages: tools and applications
-
批准号:107902-2005
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.48万
-
财政年份:2008
-
负责人:Feeley, Marc
-
依托单位:
High-level languages: tools and applications
-
批准号:107902-2005
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.48万
-
财政年份:2007
-
负责人:Feeley, Marc
-
依托单位:
High-level languages: tools and applications
-
批准号:107902-2005
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.48万
-
财政年份:2006
-
负责人:Feeley, Marc
-
依托单位:
High-level languages: tools and applications
-
批准号:107902-2005
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.48万
-
财政年份:2005
-
负责人:Feeley, Marc
-
依托单位:
Design, implementation and evaluation of high-level languages
-
批准号:107902-2000
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.11万
-
财政年份:2004
-
负责人:Feeley, Marc
-
依托单位:
国内基金
海外基金
Dynamic Credit Rating with Feedback Effects
-
批准号:--
-
项目类别:外国学者研究基金项目
-
资助金额:--
-
批准年份:2024
-
负责人:Christian Martin Hilpert
-
依托单位: