课题基金 / 基金详情

Programming Language Type Systems and Concurrency

Programming Language Type Systems and Concurrency
编程语言类型系统和并发性
批准号:
RGPIN-2020-03908
负责人:
Buhr, Peter
金额:
$1.75万
依托单位:
依托单位国家:
加拿大
项目类别:
Discovery Grants Program - Individual
财政年份:
2020
资助国家:
加拿大
项目状态:
已结题
起止时间:
2020-01-01 至 2021-12-31

项目摘要

项目成果

Buhr, Peter的其他基金

相似基金

相关文献

中文摘要
翻译
计算机科学的每一个方面都依赖于编程语言来将人类的想法转化为计算机可执行的实用的、功能强大的形式。编程语言设计的两个关键方面是类型系统和运行时。这项研究计划将重点放在用于验证正确用法和提供代码重用的类型系统,以及用于简化程序构造和提高性能的运行时系统。 主要的研究目标是设计一种新的类型系统来取代传统的面向对象继承以实现代码重用。在过去的40年里,面向对象继承的局限性得到了很好的证明。此外,面向对象的继承对于许多形式的重用是不够的,因此类型系统中需要其他机制,如重载和泛型(模板),导致生成可重用程序的机制混乱。新类型系统的设计使用了一种称为参数多态函数的技术,该函数具有显式约束。每个多态函数或类型定义其执行所需的结构类型键;即,函数或类型对其参数/字段使用的一组操作。该键集在来自词法环境的每个调用点完成,并隐式传递到多态函数中。因此,新的词法作用域和嵌套函数被广泛用于创建本地域子类型,而不必管理继承层次结构。改进一种语言的类型系统会使程序员更有效率,从而产生更可靠、更安全的程序。 第二个研究目标是使用新型系统来创建高级别、集成和高效的控制流功能的层次结构。由于多核上的时序和不确定性,并发控制流是困难的。然而,当前的许多系统通过复杂的呈现机制加剧了这一困难。新的设计将通过提供高级控制流、生成器、协程、线程和监视器的定制类型,而不是多个低级锁获取技术,来消除不直观且会导致错误的令人困惑的语义。提高编程语言的并发性允许程序员利用多核(并行性)来减少程序执行时间(运行得更快)。 这些研究成果正在以一种向后兼容C语言的编程语言传播,修复了众所周知的C语言问题,同时增加了安全性和现代语言功能。C语言仍然是现代计算的基础技术,用数十亿行代码实现了从小型爱好项目到大型商业应用程序(Linux/Windows/MacOS操作系统)。这项工作对每天使用C编程语言的大部分软件开发公司都有直接的好处。如果不对C进行扩展,它将无法处理现代编程问题和程序员的需求,从而使其处于危险之中。
英文摘要
Every aspect of computer science depends on programming languages to transform human ideas into a practical, functioning form executable by a computer. Two crucial aspects of programming-language design are the type system and runtime. This research program will focus on the type system used to verify correct usage and provide code reuse, and on the runtime system to simplify program construction and improve performance. The primary research objective is the design of a novel type system to replace classical object-oriented inheritance for code reuse. Over the past 40 years, the limitations of object-oriented inheritance is well documented. Furthermore, object-oriented inheritance is insufficient for many forms of reuse so other mechanisms are needed in the type system, like overloading and generics (templates), resulting in a confusion of mechanisms to generate reusable programs. The design for the new type-system uses a technique called parametric-polymorphic functions with explicit constraints. Each polymorphic function or type defines a structural type-key needed for its execution; i.e., the set of operations used by a function or type on its parameters/fields. This key set is fulfilled at each call site from the lexical environment and implicitly passed into a polymorphic function. Hence, new lexical scopes and nested functions are used extensively to create local subtypes without having to manage an inheritance hierarchy. Improving a language's type systems makes programmers more productive and results in programs that are reliable and safer. The secondary research objective is to use the new type system to create a hierarchy of high-level, integrated, and efficient control-flow features. Concurrent control-flow is difficult because of temporal ordering and nondeterminism on multiple cores. However, many current systems exacerbate the difficulty through complex presentation mechanisms. The new design would eliminate confusing semantics that are nonintuitive and lead to errors, and by providing customs types for high-level control flow, generators, coroutines, threads, and monitors, versus multiple low-level lock acquisition techniques. Improving a programming language's concurrency allows programmers to take advantage of multiple cores (parallelism) to reduce program execution time (run faster). These research results are being disseminated in a programming language that is backwards compatible with C, fixes well known C problems, while adding safety and modern language-features. C is still the foundational technology for modern computing with billions of lines of code implementing small hobby projects to huge commercial applications (Linux/Windows/MacOS operating systems). This work has a direct benefit to a large segment of software-development companies using the C programming language daily. Without extensions to C, it is unable to cope with the needs of modern programming problems and programmers, putting it in jeopardy.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Programming Language Type Systems and Concurrency
  • 批准号:
    RGPIN-2020-03908
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $1.75万
  • 财政年份:
    2022
  • 负责人:
    Buhr, Peter
  • 依托单位:
New Programming Language and Runtime System
  • 批准号:
    537903-2018
  • 项目类别:
    Collaborative Research and Development Grants
  • 资助金额:
    $8.87万
  • 财政年份:
    2021
  • 负责人:
    Buhr, Peter
  • 依托单位:
Parallel Client/Server System for Programming Language Research
  • 批准号:
    RTI-2022-00004
  • 项目类别:
    Research Tools and Instruments
  • 资助金额:
    $8.3万
  • 财政年份:
    2021
  • 负责人:
    Buhr, Peter
  • 依托单位:
Programming Language Type Systems and Concurrency
  • 批准号:
    RGPIN-2020-03908
  • 项目类别:
    Discovery Grants Program - Individual
  • 资助金额:
    $1.75万
  • 财政年份:
    2021
  • 负责人:
    Buhr, Peter
  • 依托单位:
海外基金