Canada Spends Logo

Explore our Budget 2026 analysis

Grant: Collaborative Research and Development Grants

University of Waterloo

$121,700.00

New Programming Language and Runtime System_x000d_ _x000d_

FY 2020-21

Summary
This research focuses on systems programming-languages, able to construct low-level high-performance applications, like operating systems, databases, and network systems, forming the core of all software development. The C programming language is a systems language providing the foundational technology for modern computing with billions of lines of code implementing small and large systems, e.g., Linux, Windows. Nevertheless, C, standardized 30 years ago, lacks features that make programming in modern languages safer and more productive. The research goal is to create an extension of C, called Cforall, providing modern safety and productivity features, while still ensuring backwards compatibility with C and its programmers. Specifically, Cforall is designed to have an orthogonal feature-set based closely on the C programming paradigm (non-object-oriented) and these features can be added incrementally to an existing C code-base, allowing programmers to learn Cforall on an as-needed basis, preserving investment in existing code and employees. Traditional and new programming languages have different syntax and semantics from C, only interoperate indirectly with C, and are not systems languages because of managed memory (ownership/garbage collection). To accomplish the research goal, this grant will continue development of Cforall, which is only at the proof-of-concept (alpha) stage. Continued development involves fleshing out Cforall to the beta stage by completing several design and implementation objectives, culminating in multiple staged releases to researchers and educators. These objectives include efficiently implementing the Cforall type-system because of complex type-unification and extensions for user-defined conversions, virtual pointers, more concurrent types, and advanced exceptions, arrays, strings and collections, none of which exist in C. The result of this project is a language that is backwards compatible with both C code and programmer intuition, yet adds modern language features and fixes many well-known C problems. Given the continuing vitality of the C ecosystem, there is significant impetus for a modern transformation of C.
Program
Collaborative Research and Development Grants
Location
Ontario, Canada
Recipient Type
Academia
Type
Grant
Source
NSERC's Awards Data

As published

Application id
537903-2018
Name nom
Buhr, Peter
Department département
Computer Science, David R. Cheriton School of
Organization id
33
Institution établissement
University of Waterloo
Province en
Ontario
Province fr
Ontario
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2020
Competition year année de concours
2018
Award amount
121700
Program id
CRDPJ
Program name en
Collaborative Research and Development Grants
Program name fr
Subventions de recherche et développement coopérative
Group en
Research partnerships programs
Group fr
Programmes de partenariat
Committee code
96
Committee name en
RPP Internal Decision Cttee
Committee name fr
Cté de décision interne - PPR
Area of application code
801
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Computer software
Area of application fr
Logiciel
Research subject code
2720
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Computer systems software
Research subject fr
Logiciel de systèmes informatiques
Installment
inst:2 - 2
Partie
1
Nb partie
2
Application title
New Programming Language and Runtime System_x000d_ _x000d_
Keyword
NSERC
Application summary
This research focuses on systems programming-languages, able to construct low-level high-performance applications, like operating systems, databases, and network systems, forming the core of all software development. The C programming language is a systems language providing the foundational technology for modern computing with billions of lines of code implementing small and large systems, e.g., Linux, Windows. Nevertheless, C, standardized 30 years ago, lacks features that make programming in modern languages safer and more productive. The research goal is to create an extension of C, called Cforall, providing modern safety and productivity features, while still ensuring backwards compatibility with C and its programmers. Specifically, Cforall is designed to have an orthogonal feature-set based closely on the C programming paradigm (non-object-oriented) and these features can be added incrementally to an existing C code-base, allowing programmers to learn Cforall on an as-needed basis, preserving investment in existing code and employees. Traditional and new programming languages have different syntax and semantics from C, only interoperate indirectly with C, and are not systems languages because of managed memory (ownership/garbage collection). To accomplish the research goal, this grant will continue development of Cforall, which is only at the proof-of-concept (alpha) stage. Continued development involves fleshing out Cforall to the beta stage by completing several design and implementation objectives, culminating in multiple staged releases to researchers and educators. These objectives include efficiently implementing the Cforall type-system because of complex type-unification and extensions for user-defined conversions, virtual pointers, more concurrent types, and advanced exceptions, arrays, strings and collections, none of which exist in C. The result of this project is a language that is backwards compatible with both C code and programmer intuition, yet adds modern language features and fixes many well-known C problems. Given the continuing vitality of the C ecosystem, there is significant impetus for a modern transformation of C.