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
- Host: GitHub
- URL: https://github.com/dannypsnl/plt-research
- Owner: dannypsnl
- License: gpl-3.0
- Created: 2018-03-25T14:09:10.000Z (over 8 years ago)
- Default Branch: develop
- Last Pushed: 2025-02-21T13:24:20.000Z (over 1 year ago)
- Last Synced: 2025-08-21T12:41:38.920Z (10 months ago)
- Topics: programming-language-theory, type-system
- Language: Racket
- Homepage: https://dannypsnl.github.io/plt-research
- Size: 3.42 MB
- Stars: 29
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)