Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/psub/master-thesis
A Language for the Specification and Efficient Implementation of Type Systems
https://github.com/psub/master-thesis
automated-theorem-provers domain-specific-language master-thesis typesystem
Last synced: 28 days ago
JSON representation
A Language for the Specification and Efficient Implementation of Type Systems
- Host: GitHub
- URL: https://github.com/psub/master-thesis
- Owner: pSub
- Created: 2014-04-25T12:23:17.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2019-01-29T15:38:00.000Z (almost 6 years ago)
- Last Synced: 2024-05-01T23:22:46.223Z (6 months ago)
- Topics: automated-theorem-provers, domain-specific-language, master-thesis, typesystem
- Language: TeX
- Homepage:
- Size: 1.6 MB
- Stars: 5
- Watchers: 9
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
A Language for the Specification and Efficient Implementation of Type Systems
===Abstract
---Type systems are important tools to detect semantic inconsistencies,
to establish abstractions and to guide programmers in the development
process. However, there is currently a lack of established tools
supporting the development of type systems, tools like lexer and
parser generators but for type systems. We introduce a declarative
specification language for type systems that allows to specify type
systems in a natural deductive style. We generate two products out of
a type system specification: A first-order formula representation to
facilitate the use of automated theorem provers and a type
checker. The type checker generator uses results proven by automated
theorem provers to check the applicability of optimization strategies
and the first-order formula representation is also a reference
implementation. Both results aim to accelerate the development cycle
for type systems and to narrow the gap between theory and practice.Quick-Start-Guide
---* Clone repository
* Install vampire and make sure it is in PATH
* Install Eclipse plugin Spoofax (https://www.metaborg.org/en/latest/source/install.html)
* Import project into Eclipse
* Build the project to make sure everything works
* Restart Eclipse
* Choose a type system from the folder syntax/specification/
* Comment all lines after `rules`
* Click on `Generation` -> `Generate SDF`
* Build the project again
* Uncomment the lines after `rules`Now you are ready to select actions from the `Typecheck` and
`Verification` menus, add new typing rules and conjectures. Changes in
the sections meta-variables, contexts and judgments require the
regeneration of the sdf file and a rebuild of the project.Documents
---* [Master thesis](https://users.pascal-wittmann.de/pascal/master-thesis/thesis.pdf)
* [Slides of the defense](https://users.pascal-wittmann.de/pascal/master-thesis/slides-of-the-defense.pdf)
* [Summary for SPLASH SRC application](https://users.pascal-wittmann.de/pascal/master-thesis/summary-for-splash-src-application.pdf)
* [Slides for SRC at SPLASH](https://users.pascal-wittmann.de/pascal/master-thesis/slides-for-src-at-splash.pdf)
* [Poster for SPLASH Poster Track](https://users.pascal-wittmann.de/pascal/master-thesis/poster-for-splash.pdf)
* [Slides for the HessPL workshop](https://users.pascal-wittmann.de/pascal/master-thesis/slides-for-hesspl.pdf)