An open API service indexing awesome lists of open source software.

https://github.com/dannypsnl/plt-research

A collection of PLT researching
https://github.com/dannypsnl/plt-research

programming-language-theory type-system

Last synced: 4 months ago
JSON representation

A collection of PLT researching

Awesome Lists containing this project

README

          

# PLT research

This repository contains several PLT related sub-projects that I created for learning these certain subjects.

- [the little typer note](https://dannypsnl.github.io/plt-research/NOTE__The_Little_Typer.html)
- [continuation](https://github.com/dannypsnl/plt-research/tree/develop/continuations)
- lambda calculus
- [utlc](https://github.com/dannypsnl/plt-research/tree/develop/utlc): untyped lambda calculus
- [stlc](https://github.com/dannypsnl/plt-research/tree/develop/stlc): simply typed lambda calculus
- [de-bruijn index](https://github.com/dannypsnl/plt-research/tree/develop/de-bruijn-index) is a technology to encode variables by indcies
- polymorphism
- [hindley milner](https://github.com/dannypsnl/plt-research/tree/develop/hindley-milner) is a classic decidable algorithm and polymorphic type system variant
- [row polymorphism](https://github.com/dannypsnl/plt-research/tree/develop/row-poly) is a type system that you can have record row polymorphic, but my code is buggy
- dependent type
- [lambda pi](https://github.com/dannypsnl/plt-research/tree/develop/lambda-pi) introduces $\Pi$ type
- [strictly positive](https://github.com/dannypsnl/plt-research/tree/develop/strictly-positive) is an attribute that well inductive data type should hold, and this is a syntactic checker for it
- [universe polymorphism](https://github.com/dannypsnl/plt-research/tree/develop/univ-poly)
- [normalization by evaluation](https://github.com/dannypsnl/plt-research/tree/develop/normalization-by-evaluation)
- elaboration-zoo
- [whisper](https://github.com/dannypsnl/plt-research/tree/develop/whisper): conversion check
- [antaa](https://github.com/dannypsnl/plt-research/tree/develop/antaa): meta solving
- external
- [Write you a programming language](https://github.com/dannypsnl/write-a-programming-language)

### Compiler

Here are works that more about implementation/assembly details

1. [racket-llvm](https://github.com/failed-dragon-slayer/racket-llvm)
2. [still compiling](https://github.com/dannypsnl/still-compiling)
3. [scheme to arm64](https://github.com/dannypsnl/scheme-to-arm64)
4. [c to x64](https://github.com/failed-dragon-slayer/cc)
5. [little-scheme](https://github.com/dannypsnl/little-scheme): A little scheme interpreter for playing SICP
6. [elz](https://github.com/dannypsnl/elz)

### NOTE: video

- [Kent Dybvig: Macro-Writer's Bill of Rights](https://youtu.be/LIEX3tUliHw)
- ["Let's Build a Hygienic Macro Expander" by Matthew Flatt](https://youtu.be/Or_yKiI3Ha4)