Loading…

Loading grant details…

Active H2020 European Commission

Foundations of Type Inference for Modern Programming Languages

€2M EUR

Funder European Commission
Recipient Organization The Chancellor Masters and Scholars of the University of Cambridge
Country United Kingdom
Start Date Oct 01, 2021
End Date Sep 30, 2026
Duration 1,825 days
Number of Grantees 1
Roles Coordinator
Data Source European Commission
Grant ID 101002277
Grant Description

Many modern programming languages, whether developed in industry, like Rust or Java, or in academia, like Haskell or Scala, are typed.

All the data in a program is classified by its type (e.g., as strings or integers), and at compile-time programs are checked for consistent usage of types, in a process called type checking.

Thus, the expression 3 + 4 will be accepted, since the + operator takes two numbers as arguments, but the expression 3 + ""hello"" will be rejected, as it makes no sense to add a number and a string.

Though this is a simple idea, sophisticated type system can track properties like algorithmic complexity, data-race freedom, differential privacy, and data abstraction.In general, programmers must annotate programs to tell compilers the types to check.

In theoretical calculi, it is easy to demand enough annotations to trivialize typechecking, but this can make the annotation burden unbearable: often larger than the program itself!

So, to transfer results from formal calculi to new programming languages, we need type inference algorithms, which reconstruct missing data from partially-annotated programs.However, the practice of type inference has outpaced its theory.

Compiler authors have implemented many type inference systems, but the algorithms are often ad-hoc or folklore, and the specifications they are meant to meet are informal or nonexistent.

The makes it hard to learn how to implement type inference, hard to build alternative implementations (whether for new compilers or analysis engines for IDEs), and hard for programmers to predict if refactorings will preserve typability.In TypeFoundry, we will use recent developments in proof theory and semantics (like polarized type theory and call-by-push-value) to identify the theoretical structure underpinning type inference, and use this theory to build a collection of techniques for type inference capable of scaling up to the advanced type system features in both modern and future languages.

All Grantees

The Chancellor Masters and Scholars of the University of Cambridge

Advertisement
Discover thousands of grant opportunities
Advertisement
Browse Grants on GrantFunds
Interested in applying for this grant?

Complete our application form to express your interest and we'll guide you through the process.

Apply for This Grant