Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tominated/system_f_omega
My Attempt at System Fω with Row-Polymorphism
https://github.com/tominated/system_f_omega
functional-programming lambda-calculus ocaml row-polymorphism system-f system-f-omega
Last synced: 3 months ago
JSON representation
My Attempt at System Fω with Row-Polymorphism
- Host: GitHub
- URL: https://github.com/tominated/system_f_omega
- Owner: tominated
- License: mit
- Created: 2020-08-31T17:46:07.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-07-04T18:59:57.000Z (over 3 years ago)
- Last Synced: 2024-08-05T15:06:43.169Z (6 months ago)
- Topics: functional-programming, lambda-calculus, ocaml, row-polymorphism, system-f, system-f-omega
- Language: OCaml
- Homepage:
- Size: 27.3 KB
- Stars: 30
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# My Attempt at System Fω with Row-Polymorphism
As I worked on trying to build my own functional programming language, I ended
up going really deep down the research rabbit hole and decided I want to focus
on trying to understand how System-Fω works and how it can compile to machine
code.This project is my attempt at implementing some form of it based on my patched
together understanding from various papers and books I've found during my
research. It's not going to be complete, and it will very likely be full of
bugs, but I'm hoping I can eventually implement some kind of abstract machine
with call-by-value semantics.I'll be attempting to add row-polymorphism as described by the
[Extensible records with scoped labels](https://www.microsoft.com/en-us/research/publication/extensible-records-with-scoped-labels/)
paper by Daan Leijen. I hope to eventually be able to implement some kind of
module system on top of it, and maybe even some kind of 'modular implicits' akin
to the [infamous OCaml proposal](https://arxiv.org/abs/1512.01895).Once I have some real machine code being generated, I'll likely focus on
building an inferred language on top of it, but that's a while to go…