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
中文摘要
计算机科学的每一个方面都依赖于编程语言将人类的想法转化为计算机可执行的实用的功能形式。编程语言设计的两个关键方面是类型系统和运行时。本研究计划将侧重于用于验证正确用法和提供代码重用的类型系统,以及用于简化程序构造和提高性能的运行时系统。
主要的研究目标是设计一个新的类型系统,以取代经典的面向对象的继承代码重用。在过去的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
-
依托单位:
New Programming Language and Runtime System
-
批准号:537903-2018
-
项目类别:Collaborative Research and Development Grants
-
资助金额:$8.87万
-
财政年份:2020
-
负责人:Buhr, Peter
-
依托单位:
New Programming Language and Runtime System
-
批准号:537903-2018
-
项目类别:Collaborative Research and Development Grants
-
资助金额:$8.87万
-
财政年份:2019
-
负责人:Buhr, Peter
-
依托单位:
High-Performance User-Level Threading
-
批准号:RGPIN-2014-04873
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2018
-
负责人:Buhr, Peter
-
依托单位:
High-Performance User-Level Threading
-
批准号:RGPIN-2014-04873
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2017
-
负责人:Buhr, Peter
-
依托单位:
High-Performance User-Level Threading
-
批准号:RGPIN-2014-04873
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2016
-
负责人:Buhr, Peter
-
依托单位:
High-Performance User-Level Threading
-
批准号:RGPIN-2014-04873
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2015
-
负责人:Buhr, Peter
-
依托单位:
High-Performance User-Level Threading
-
批准号:RGPIN-2014-04873
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.46万
-
财政年份:2014
-
负责人:Buhr, Peter
-
依托单位:
High-performance concurrent programming
-
批准号:9168-2009
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.38万
-
财政年份:2013
-
负责人:Buhr, Peter
-
依托单位:
High-performance concurrent programming
-
批准号:9168-2009
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.38万
-
财政年份:2012
-
负责人:Buhr, Peter
-
依托单位:
High-performance concurrent programming
-
批准号:9168-2009
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.38万
-
财政年份:2011
-
负责人:Buhr, Peter
-
依托单位:
High-performance concurrent programming
-
批准号:9168-2009
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.38万
-
财政年份:2010
-
负责人:Buhr, Peter
-
依托单位:
High-performance multiprocessor servers for programming languages and information retrieval research groups
-
批准号:407696-2011
-
项目类别:Research Tools and Instruments - Category 1 (<$150,000)
-
资助金额:$5.43万
-
财政年份:2010
-
负责人:Buhr, Peter
-
依托单位:
High-performance concurrent programming
-
批准号:9168-2009
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$1.38万
-
财政年份:2009
-
负责人:Buhr, Peter
-
依托单位:
Vertical improvements in the UNIX software hierarchy for the development and execution of concurrent applications
-
批准号:9168-2004
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.19万
-
财政年份:2008
-
负责人:Buhr, Peter
-
依托单位:
Vertical improvements in the UNIX software hierarchy for the development and execution of concurrent applications
-
批准号:9168-2004
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.19万
-
财政年份:2007
-
负责人:Buhr, Peter
-
依托单位:
Vertical improvements in the UNIX software hierarchy for the development and execution of concurrent applications
-
批准号:9168-2004
-
项目类别:Discovery Grants Program - Individual
-
资助金额:$2.19万
-
财政年份:2006
-
负责人:Buhr, Peter
-
依托单位:
海外基金