Skip to content

Latest commit

 

History

History
33 lines (29 loc) · 1.64 KB

README.md

File metadata and controls

33 lines (29 loc) · 1.64 KB

Gradualizer

As explained in the main README, this directory contains an implementation of the Gradualizers of Cimini and Siek, with the following algorithms implemented in L-Tr:

  • gradual_static.tr generates the static semantics.
  • gradual_static_extended.tr extends the previous algorithm to accomodate languages with subtyping and multiple contravariant types.
  • gradual_dynamic.tr generates the dynamic semantics.

This directory has the following structure:

|-- dynamic
|   |-- *.lan (languages from the repo of https://github.com/mcimini/GradualizerDynamicSemantics)
|   `-- gradualized
|       `-- *.lan (the same languages, applied to gradual_dynamic.tr)
|-- static
|   |-- *.lan (languages from the repo of https://github.com/mcimini/Gradualizer)
|   `-- gradualized
|       `-- *.lan (the same languages, applied to gradual_static.tr)
|-- extra
|   |-- *.lan (languages not found in either repo)
|   |-- multiple_contra
|   |   `-- stlc_multiple_contra_*.lan (languages where multiple contravariant types are present)
|   |-- subtyping
|   |   `-- *_subtyping.lan (languages with subtyping applied, excludes those found in multiple_contra/)
|   `-- gradualized
|       |-- dynamic
|       |   `-- *.lan (the languages found in the base of extra/, applied to gradual_dynamic.tr)
|       `-- static
|           `-- *.lan (all the languages in extra/, applied to gradual_static.tr or gradual_static_extended.tr, where appropriate)

The languages in extra/subtyping were generated using an existing algorithm for adding subtyping. Note that it does not handle languages with multiple contravariant types.