Skip to content
/ fzip Public

Implementation of a type checker for the Fzip language

License

Notifications You must be signed in to change notification settings

esope/fzip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fzip

Description

This project implements the language that is described in the last part of Benoît Montagu's PhD thesis. It is an extension of System F with subtyping, singleton kinds and open existential types. This implementation is was not designed to be efficient, and, indeed, it is not efficient (most algorithms are quadratic in the size of terms).

The representation of binders is the one from Sato & Pollack. For more details, see the following articles:

To get an overview of the syntax, see the examples in the examples subdirectory. The files can use UTF-8 symbols: for instance, 'λ' can be used instead of 'fun', or '→' instead of '->'. The user is invited to read the file lexer.ml to get more info.

Requirements:

  • make
  • Objective Caml >= 3.12
  • ocamlfind
  • ulex
  • menhir
  • OUnit (for running tests)

How to build:

To build, type in a terminal:

make

To build a native version, type:

make native

How to run tests:

To run tests, type:

make test

or to run them in native mode:

make test.native

About

Implementation of a type checker for the Fzip language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages