Projektbeschreibung
Neuer Typ der Inferenz im Dienste der Zukunft
Alle Daten in einem Programm wie Java oder Scala werden nach ihrem Typ (beispielsweise Zeichenketten oder ganzen Zahlen) in Klassen eingeteilt. Um Kompilierern die zu prüfenden Datentypen mitzuteilen, müssen beim Programmieren die Programme annotiert werden. Es sind Typinferenz-Algorithmen erforderlich, um Ergebnisse aus formalen Kalkülen in neue Programmiersprachen zu übertragen. Das EU-finanzierte Projekt TypeFoundry wird die jüngsten Entwicklungen aus Beweistheorie und Semantik (z. B. polarisierte Typentheorie und Call-by-Push-Value) nutzen, um die der Typinferenz zugrunde liegende theoretische Struktur zu ermitteln. Anhand dieser Theorie wird dann eine Sammlung von Typinferenzverfahren aufgebaut, mit denen sowohl in aktuellen als auch zukünftigen Sprachen moderne Typsystemfunktionen hochzuskalieren sind.
Ziel
"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.
"
Schlüsselbegriffe
Schlüsselbegriffe des Projekts, wie vom Projektkoordinator angegeben. Nicht zu verwechseln mit der EuroSciVoc-Taxonomie (Wissenschaftliches Gebiet).
Schlüsselbegriffe des Projekts, wie vom Projektkoordinator angegeben. Nicht zu verwechseln mit der EuroSciVoc-Taxonomie (Wissenschaftliches Gebiet).
Programm/Programme
Mehrjährige Finanzierungsprogramme, in denen die Prioritäten der EU für Forschung und Innovation festgelegt sind.
Mehrjährige Finanzierungsprogramme, in denen die Prioritäten der EU für Forschung und Innovation festgelegt sind.
-
H2020-EU.1.1. - EXCELLENT SCIENCE - European Research Council (ERC)
HAUPTPROGRAMM
Alle im Rahmen dieses Programms finanzierten Projekte anzeigen
Thema/Themen
Aufforderungen zur Einreichung von Vorschlägen sind nach Themen gegliedert. Ein Thema definiert einen bestimmten Bereich oder ein Gebiet, zu dem Vorschläge eingereicht werden können. Die Beschreibung eines Themas umfasst seinen spezifischen Umfang und die erwarteten Auswirkungen des finanzierten Projekts.
Aufforderungen zur Einreichung von Vorschlägen sind nach Themen gegliedert. Ein Thema definiert einen bestimmten Bereich oder ein Gebiet, zu dem Vorschläge eingereicht werden können. Die Beschreibung eines Themas umfasst seinen spezifischen Umfang und die erwarteten Auswirkungen des finanzierten Projekts.
Finanzierungsplan
Finanzierungsregelung (oder „Art der Maßnahme“) innerhalb eines Programms mit gemeinsamen Merkmalen. Sieht folgendes vor: den Umfang der finanzierten Maßnahmen, den Erstattungssatz, spezifische Bewertungskriterien für die Finanzierung und die Verwendung vereinfachter Kostenformen wie Pauschalbeträge.
Finanzierungsregelung (oder „Art der Maßnahme“) innerhalb eines Programms mit gemeinsamen Merkmalen. Sieht folgendes vor: den Umfang der finanzierten Maßnahmen, den Erstattungssatz, spezifische Bewertungskriterien für die Finanzierung und die Verwendung vereinfachter Kostenformen wie Pauschalbeträge.
ERC-COG - Consolidator Grant
Alle im Rahmen dieses Finanzierungsinstruments finanzierten Projekte anzeigen
Aufforderung zur Vorschlagseinreichung
Verfahren zur Aufforderung zur Einreichung von Projektvorschlägen mit dem Ziel, eine EU-Finanzierung zu erhalten.
Verfahren zur Aufforderung zur Einreichung von Projektvorschlägen mit dem Ziel, eine EU-Finanzierung zu erhalten.
(öffnet in neuem Fenster) ERC-2020-COG
Alle im Rahmen dieser Aufforderung zur Einreichung von Vorschlägen finanzierten Projekte anzeigenGastgebende Einrichtung
Finanzieller Nettobeitrag der EU. Der Geldbetrag, den der Beteiligte erhält, abzüglich des EU-Beitrags an mit ihm verbundene Dritte. Berücksichtigt die Aufteilung des EU-Finanzbeitrags zwischen den direkten Begünstigten des Projekts und anderen Arten von Beteiligten, wie z. B. Dritten.
CB2 1TN CAMBRIDGE
Vereinigtes Königreich
Die Gesamtkosten, die dieser Organisation durch die Beteiligung am Projekt entstanden sind, einschließlich der direkten und indirekten Kosten. Dieser Betrag ist Teil des Gesamtbudgets des Projekts.