Opis projektu
Nowe wnioskowania o typie zaspokoi przyszłe potrzeby
Wszystkie dane znajdujące się w programach pisanych w językach takich jak Java czy Scala są klasyfikowane na podstawie typu (np. zmienne łańcuchowe lub liczby całkowite). Aby dostarczać odpowiednie informacje do kompilatora na temat typu danych wymagających sprawdzenia, programiści muszą wprowadzić w programie odpowiednie deklaracje. Aby przenieść wyniki obliczeń prowadzonych w systemach formalnych do nowych języków programowania, potrzebne są algorytmy wnioskowania o typie. Twórcy finansowanego ze środków UE projektu TypeFoundry wykorzystają najnowsze osiągnięcia z zakresu teorii dowodu i semantyki (np. spolaryzowana teoria typów oraz paradygmat „call-by-push-value”), w celu zidentyfikowania struktury teoretycznej leżącej u podstaw wnioskowania o typie. Na podstawie tej teorii zbudują zbiór technik do wnioskowania o typie, które będą mogły zwiększyć swoje zdolności, by sprostać wyzwaniom zaawansowanych systemów typu w językach używanych dzisiaj oraz w przyszłości.
Cel
"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.
"
Słowa kluczowe
Słowa kluczowe dotyczące projektu wybrane przez koordynatora projektu. Nie należy mylić ich z pojęciami z taksonomii EuroSciVoc dotyczącymi dziedzin nauki.
Słowa kluczowe dotyczące projektu wybrane przez koordynatora projektu. Nie należy mylić ich z pojęciami z taksonomii EuroSciVoc dotyczącymi dziedzin nauki.
Program(-y)
Wieloletnie programy finansowania, które określają priorytety Unii Europejskiej w obszarach badań naukowych i innowacji.
Wieloletnie programy finansowania, które określają priorytety Unii Europejskiej w obszarach badań naukowych i innowacji.
-
H2020-EU.1.1. - EXCELLENT SCIENCE - European Research Council (ERC)
GŁÓWNY PROGRAM
Wyświetl wszystkie projekty finansowane w ramach tego programu
Temat(-y)
Zaproszenia do składania wniosków dzielą się na tematy. Każdy temat określa wybrany obszar lub wybrane zagadnienie, których powinny dotyczyć wnioski składane przez wnioskodawców. Opis tematu obejmuje jego szczegółowy zakres i oczekiwane oddziaływanie finansowanego projektu.
Zaproszenia do składania wniosków dzielą się na tematy. Każdy temat określa wybrany obszar lub wybrane zagadnienie, których powinny dotyczyć wnioski składane przez wnioskodawców. Opis tematu obejmuje jego szczegółowy zakres i oczekiwane oddziaływanie finansowanego projektu.
System finansowania
Program finansowania (lub „rodzaj działania”) realizowany w ramach programu o wspólnych cechach. Określa zakres finansowania, stawkę zwrotu kosztów, szczegółowe kryteria oceny kwalifikowalności kosztów w celu ich finansowania oraz stosowanie uproszczonych form rozliczania kosztów, takich jak rozliczanie ryczałtowe.
Program finansowania (lub „rodzaj działania”) realizowany w ramach programu o wspólnych cechach. Określa zakres finansowania, stawkę zwrotu kosztów, szczegółowe kryteria oceny kwalifikowalności kosztów w celu ich finansowania oraz stosowanie uproszczonych form rozliczania kosztów, takich jak rozliczanie ryczałtowe.
ERC-COG - Consolidator Grant
Wyświetl wszystkie projekty finansowane w ramach tego programu finansowania
Zaproszenie do składania wniosków
Procedura zapraszania wnioskodawców do składania wniosków projektowych w celu uzyskania finansowania ze środków Unii Europejskiej.
Procedura zapraszania wnioskodawców do składania wniosków projektowych w celu uzyskania finansowania ze środków Unii Europejskiej.
(odnośnik otworzy się w nowym oknie) ERC-2020-COG
Wyświetl wszystkie projekty finansowane w ramach tego zaproszeniaInstytucja przyjmująca
Kwota netto dofinansowania ze środków Unii Europejskiej. Suma środków otrzymanych przez uczestnika, pomniejszona o kwotę unijnego dofinansowania przekazanego powiązanym podmiotom zewnętrznym. Uwzględnia podział unijnego dofinansowania pomiędzy bezpośrednich beneficjentów projektu i pozostałych uczestników, w tym podmioty zewnętrzne.
CB2 1TN CAMBRIDGE
Zjednoczone Królestwo
Ogół kosztów poniesionych przez organizację w związku z uczestnictwem w projekcie. Obejmuje koszty bezpośrednie i pośrednie. Kwota stanowi część całkowitego budżetu projektu.