Descrizione del progetto
Una nuova inferenza dei tipi per rispondere alle esigenze del futuro
Tutti i dati in programmi come Java o Scala sono classificati per tipo (come stringhe o integrali). Per informare i compilatori dei tipi di dati da controllare, i programmatori devono annotare i programmi. Gli algoritmi di inferenza dei tipi sono necessari per trasferire i risultati dai calcoli formali ai nuovi linguaggi di programmazione. Il progetto TypeFoundry, finanziato dall’UE, si avvarrà dei recenti sviluppi nella teoria della dimostrazione e nella semantica (esempi includono la teoria di tipo polarizzato e call-by-push-value) per identificare la struttura teorica a sostegno dell’inferenza dei tipi. Questa teoria sarà utilizzata per creare una raccolta di tecniche per l’inferenza dei tipi che possano essere replicate in funzioni di sistemi avanzati nei linguaggi sia moderni che futuri.
Obiettivo
"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.
"
Parole chiave
Parole chiave del progetto, indicate dal coordinatore del progetto. Da non confondere con la tassonomia EuroSciVoc (campo scientifico).
Parole chiave del progetto, indicate dal coordinatore del progetto. Da non confondere con la tassonomia EuroSciVoc (campo scientifico).
Programma(i)
Programmi di finanziamento pluriennali che definiscono le priorità dell’UE in materia di ricerca e innovazione.
Programmi di finanziamento pluriennali che definiscono le priorità dell’UE in materia di ricerca e innovazione.
-
H2020-EU.1.1. - EXCELLENT SCIENCE - European Research Council (ERC)
PROGRAMMA PRINCIPALE
Vedi tutti i progetti finanziati nell’ambito di questo programma
Argomento(i)
Gli inviti a presentare proposte sono suddivisi per argomenti. Un argomento definisce un’area o un tema specifico per il quale i candidati possono presentare proposte. La descrizione di un argomento comprende il suo ambito specifico e l’impatto previsto del progetto finanziato.
Gli inviti a presentare proposte sono suddivisi per argomenti. Un argomento definisce un’area o un tema specifico per il quale i candidati possono presentare proposte. La descrizione di un argomento comprende il suo ambito specifico e l’impatto previsto del progetto finanziato.
Meccanismo di finanziamento
Meccanismo di finanziamento (o «Tipo di azione») all’interno di un programma con caratteristiche comuni. Specifica: l’ambito di ciò che viene finanziato; il tasso di rimborso; i criteri di valutazione specifici per qualificarsi per il finanziamento; l’uso di forme semplificate di costi come gli importi forfettari.
Meccanismo di finanziamento (o «Tipo di azione») all’interno di un programma con caratteristiche comuni. Specifica: l’ambito di ciò che viene finanziato; il tasso di rimborso; i criteri di valutazione specifici per qualificarsi per il finanziamento; l’uso di forme semplificate di costi come gli importi forfettari.
ERC-COG - Consolidator Grant
Vedi tutti i progetti finanziati nell’ambito di questo schema di finanziamento
Invito a presentare proposte
Procedura per invitare i candidati a presentare proposte di progetti, con l’obiettivo di ricevere finanziamenti dall’UE.
Procedura per invitare i candidati a presentare proposte di progetti, con l’obiettivo di ricevere finanziamenti dall’UE.
(si apre in una nuova finestra) ERC-2020-COG
Vedi tutti i progetti finanziati nell’ambito del bandoIstituzione ospitante
Contributo finanziario netto dell’UE. La somma di denaro che il partecipante riceve, decurtata dal contributo dell’UE alla terza parte collegata. Tiene conto della distribuzione del contributo finanziario dell’UE tra i beneficiari diretti del progetto e altri tipi di partecipanti, come i partecipanti terzi.
CB2 1TN CAMBRIDGE
Regno Unito
I costi totali sostenuti dall’organizzazione per partecipare al progetto, compresi i costi diretti e indiretti. Questo importo è un sottoinsieme del bilancio complessivo del progetto.