课题基金 / 基金详情

SHF: Small: Collaborative Research: A Rational Reconstruction of the Julia Type System

SHF: Small: Collaborative Research: A Rational Reconstruction of the Julia Type System
SHF:小型:协作研究:Julia 类型系统的合理重建
批准号:
1908389
负责人:
Jan Vitek
金额:
$24.72万
依托单位:
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2019
资助国家:
美国
项目状态:
已结题
起止时间:
2019-10-01 至 2022-09-30

项目摘要

项目成果

Jan Vitek的其他基金

相似基金

相关文献

中文摘要
翻译
Julia是科学计算领域一门很有前途的语言。Julia跨越了通用和特定领域之间的界限,以及静态类型化和动态类型化之间的界限。尽管朱莉娅只有六岁,但她已经被下载了200多万次,社区开发了近2000个包。这个项目的新奇之处在于开发了Julia类型系统的一些基础,这些基础到目前为止还没有正式确定下来。该项目的影响是为该语言提供了一个基础良好的规范,以便程序员可以使用该规范来推理他们的代码,并供工具开发人员为Julia社区编写程序分析和转换软件。Julia支持动态类型。可以不使用任何类型注释来编写程序,例如,可以使用Python编写程序。然而,Julia的类型语法及其子类型系统让人想起人们对现代静态类型语言的期待,它具有结构子类型、不变的名义泛型、联合类型、存在类型、协变元组、分布性和单例类型以及所谓的对角规则的原始组合。这个复杂的系统用于确定Julia程序的运行时行为。具体地说,它用于确定对于给定的多方法,其实现中的哪一个是适用的。为了确定这一点,Julia将参数的运行时类型与各种重载的参数的静态类型进行比较。这意味着Julia的类型系统的算法行为是该语言的语义、性能和用法的核心。然而,Julia使用了迭代联合等功能,而研究界还没有为这些功能开发出足够的算法。因此,Julia的类型系统目前是由C语言的引用实现指定的,在多年平衡性能与修补语言用户提交的错误报告的需要之后,这个实现变得复杂起来。因此,该项目旨在进行实验和研究,以确定实现的基本意图是什么,将该意图公理地形式化为类型系统,然后开发和验证实现Julia语言核心的关键算法。该奖项反映了NSF的法定使命,并通过使用基金会的智力优势和更广泛的影响审查标准进行评估,被认为值得支持。
英文摘要
Julia is an up-and-coming language in scientific computing. Julia straddles the line between being general-purpose and being domain-specific, and the line between being statically typed versus being dynamically typed. Despite being only six years old, Julia has been downloaded over 2 million times and has had nearly 2,000 packages developed by its community. The novelty of this project is to develop some of the foundations of the Julia type system which have not been formalized to date. The project's impacts are to provide a well-grounded specification to the language so that the specification can be used by programmers to reason about their code, and by tool developers to write program analysis and transformation software for the Julia community.Julia supports dynamic typing. Programs can be written without any type annotations as they would be written in, say, Python. Yet, Julia's grammar of types and its subtyping system is reminiscent of what one would expect of a modern statically typed language with an original combination of structural subtyping, invariant nominal generics, union types, existential types, covariant tuples, distributivity, and singleton types, as well as the, so-called, diagonal rule. This complex system is used to determine the run-time behavior of Julia programs. Specifically it is used to determine, for a given multimethod, which of its implementations is applicable. To make this determination, Julia compares the run-time types of arguments with the static types of the parameters of various overloadings. This means that the algorithmic behavior of Julia's type system is central to the language's semantics, performance, and usage. Yet Julia uses features, such as iterated unions, for which the research community has not yet developed adequate algorithms. As such, Julia's type system is currently specified by a reference implementation in C, one that has been made complex after years of balancing performance trade-offs with the need to patch bug reports filed by the language's users. The project, therefore, aims to perform experiments and studies to determine what the underlying intent of the implementation is, formalize that intent axiomatically as a type system, and then develop and verify the key algorithms for implementing the core of the Julia language.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
期刊论文(3)
专著(0)
科研奖励(0)
会议论文
World age in Julia: optimizing method dispatch in the presence of eval
Julia 的世界时代:在 eval 存在的情况下优化方法调度
DOI: 10.1145/3428275
发表时间: 2020
期刊: Proceedings of the ACM on Programming Languages
影响因子: --
作者: [Belyakova, Julia, Chung, Benjamin, Gelinas, Jack, Nash, Jameson, Tate, Ross, Vitek, Jan]
通讯作者: Vitek, Jan
Type stability in Julia: avoiding performance pathologies in JIT compilation
Julia 中的类型稳定性:避免 JIT 编译中的性能问题
DOI: 10.1145/3485527
发表时间: 2021
期刊: Proceedings of the ACM on Programming Languages
影响因子: --
作者: [Pelenitsyn, Artem, Belyakova, Julia, Chung, Benjamin, Tate, Ross, Vitek, Jan]
通讯作者: Vitek, Jan
Julia's Efficient Algorithm for Subtyping Unions and Covariant Tuples
Julia 用于子类型联合和协变元组的高效算法
DOI: 10.4230/lipics.ecoop.2019.24
发表时间: 2019
期刊: European Conference on Object-Oriented Programming (ECOOP
影响因子: --
作者: [Chung, Benjamin, Zappa Nardelli, Francesco, Vitek, Jan]
通讯作者: Vitek, Jan
SHF: Small: Predictable Performance for Just-in-Time Compilation
  • 批准号:
    2139612
  • 项目类别:
    Standard Grant
  • 资助金额:
    $49.96万
  • 财政年份:
    2022
  • 负责人:
    Jan Vitek
  • 依托单位:
CCRI: ENS: Collaborative Research: Enhancing R for Scalability and Deployment
  • 批准号:
    1925644
  • 项目类别:
    Standard Grant
  • 资助金额:
    $179.97万
  • 财政年份:
    2019
  • 负责人:
    Jan Vitek
  • 依托单位:
SHF: Small: Program Analysis for Data Science
  • 批准号:
    1910850
  • 项目类别:
    Standard Grant
  • 资助金额:
    $49.97万
  • 财政年份:
    2019
  • 负责人:
    Jan Vitek
  • 依托单位:
NSF Student Travel Grant for 2017 Programming Language Implementation Summer School (PLISS)
  • 批准号:
    1723053
  • 项目类别:
    Standard Grant
  • 资助金额:
    $1.75万
  • 财政年份:
    2017
  • 负责人:
    Jan Vitek
  • 依托单位:
国内基金
海外基金
昼夜节律性small RNA在血斑形成时间推断中的法医学应用研究
  • 批准号:
  • 项目类别:
    省市级项目
  • 资助金额:
    --
  • 批准年份:
    2024
  • 负责人:
  • 依托单位:
tRNA-derived small RNA上调YBX1/CCL5通路参与硼替佐米诱导慢性疼痛的机制研究
  • 批准号:
  • 项目类别:
    省市级项目
  • 资助金额:
    10.0万元
  • 批准年份:
    2022
  • 负责人:
    张祥忠
  • 依托单位:
Small RNA调控I-F型CRISPR-Cas适应性免疫性的应答及分子机制
Small RNAs调控解淀粉芽胞杆菌FZB42生防功能的机制研究
  • 批准号:
    31972324
  • 项目类别:
    面上项目
  • 资助金额:
    58.0万元
  • 批准年份:
    2019
  • 负责人:
    高学文
  • 依托单位: