README.md 1.35 KB
Newer Older
André Pacak's avatar
André Pacak committed
1
## iTypes
André Pacak's avatar
André Pacak committed
2

André Pacak's avatar
André Pacak committed
3
It is crucial that developers receive instantaneous feedback while writing
André Pacak's avatar
André Pacak committed
4 5
programs, e.g. type errors of a program.

André Pacak's avatar
André Pacak committed
6
The goal of this project is to see how type checkers can be incrementalized in
André Pacak's avatar
André Pacak committed
7 8 9 10 11 12 13 14
order to provide immediate feedback for the developer.
As a starting point we are investigating bidirectional type systems.

We want to provide a domain-specific language that enables language designers to define
bidirectional type systems.
Additionally, we want to implement a compiler that translates bidirectional
type systems into a format that can be incrementalized.

André Pacak's avatar
André Pacak committed
15
Currently, we are exploring how to manually transform bidirectional type system systematically
André Pacak's avatar
André Pacak committed
16 17 18 19
in order to figure out how to structure the compilation pipeline.

## Getting Started

André Pacak's avatar
André Pacak committed
20 21
To build the type checkers in Haskell, install the [Stack](https://www.haskellstack.org) build tool and run `stack build` within
the directory `haskell` of the project.
22 23 24

To build the type checkers in IncA, install [IncA](https://github.com/szabta89/IncA) and open the directory `inca-translation` with MPS.

André Pacak's avatar
André Pacak committed
25 26
## Publications

André Pacak's avatar
André Pacak committed
27 28
**Vision Paper: Generating Incremental Type Services**<br/>
André Pacak and Sebastian Erdweg<br/>
André Pacak's avatar
André Pacak committed
29
_Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering (SLE)._ ACM, 2019
André Pacak's avatar
André Pacak committed
30
[[PDF]](https://andrepacak.de/paper/vision_generating_incremental_type_services.pdf)