diff options
author | JJ | 2023-11-23 05:49:50 +0000 |
---|---|---|
committer | JJ | 2023-11-23 05:49:50 +0000 |
commit | fa8bb975614b5da3eb358598a1fa379911900f0d (patch) | |
tree | 437563202ff3a79e352289f1d9f2bbe26fe48a5d /computation |
meow
Diffstat (limited to 'computation')
-rw-r--r-- | computation/compilers.md | 8 | ||||
-rw-r--r-- | computation/continuations.md | 13 | ||||
-rw-r--r-- | computation/effects.md | 1 | ||||
-rw-r--r-- | computation/index.md | 0 | ||||
-rw-r--r-- | computation/modules.md | 24 | ||||
-rw-r--r-- | computation/paradigms.md | 9 | ||||
-rw-r--r-- | computation/semantics.md | 1 | ||||
-rw-r--r-- | computation/syntax.md | 22 | ||||
-rw-r--r-- | computation/types.md | 11 |
9 files changed, 89 insertions, 0 deletions
diff --git a/computation/compilers.md b/computation/compilers.md new file mode 100644 index 0000000..b3b1769 --- /dev/null +++ b/computation/compilers.md @@ -0,0 +1,8 @@ +# Compilers + +Books and Courses +- [Introduction to Compiler Construction](https://www.students.cs.ubc.ca/~cs-411/2022w2/book_top.html) +- [Programming Languages, Application and Interpretation](https://www.plai.org/) + +Articles +- [Compiler Optimizations Are Hard Because They Forget](https://faultlore.com/blah/oops-that-was-important/) diff --git a/computation/continuations.md b/computation/continuations.md new file mode 100644 index 0000000..4d4565d --- /dev/null +++ b/computation/continuations.md @@ -0,0 +1,13 @@ +# continuations + +## Resources +- [nim-works CPS](https://github.com/nim-works/cps/tree/master/docs): +- [CPS vs. SSA](http://www.mlton.org/pipermail/mlton/2003-January/023054.html) +- https://matt.might.net/articles/by-example-continuation-passing-style/ +- https://okmij.org/ftp/continuations/ + +## Continuations + +## Continuation-passing style + +## Deliminated continuations diff --git a/computation/effects.md b/computation/effects.md new file mode 100644 index 0000000..7b8ba3e --- /dev/null +++ b/computation/effects.md @@ -0,0 +1 @@ +# Effects diff --git a/computation/index.md b/computation/index.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/computation/index.md diff --git a/computation/modules.md b/computation/modules.md new file mode 100644 index 0000000..8ec4b61 --- /dev/null +++ b/computation/modules.md @@ -0,0 +1,24 @@ +# Modules + +An overarching question I've had that I've been unable to resolve: are ML-style modules any more expressive than a system with: +- polymorphic data types +- polymorphic interface types +- first-class modules, that are *not* polymorphic (no functors)? + +## Resources + +Papers +- [F-ing Modules](https://www.cambridge.org/core/journals/journal-of-functional-programming/article/fing-modules/B573FA00832D55D4878863DE1725D90B) (2014) + +Posts +- [Modules Matter Most](https://existentialtype.wordpress.com/2011/04/16/modules-matter-most/) + - [Modules Matter Most (presentation)](http://macqueenfest.cs.uchicago.edu/slides/harper.pdf) +- ['Modules Matter Most' for the Masses](https://www.pathsensitive.com/2023/03/modules-matter-most-for-masses.html) +- [First-Class Modules: An Introduction](https://dev.realworldocaml.org/first-class-modules.html) +- [Exotic Programming Ideas: Module Systems](https://www.stephendiehl.com/posts/exotic01.html) +- [A Crash Course on ML Modules](https://jozefg.bitbucket.io/posts/2015-01-08-modules.html) +- [UW CSE 341: ML Modules](https://courses.cs.washington.edu/courses/cse341/04wi/lectures/09-ml-modules.html) + +Books +- [ATTAPL Ch. 8: Design Considerations for ML-style Module Systems]() + diff --git a/computation/paradigms.md b/computation/paradigms.md new file mode 100644 index 0000000..59261ae --- /dev/null +++ b/computation/paradigms.md @@ -0,0 +1,9 @@ +# Programming Paradigms + +## Imperative Programming + +## Object-Oriented Programming + +## Functional Programming + +... diff --git a/computation/semantics.md b/computation/semantics.md new file mode 100644 index 0000000..e3e063a --- /dev/null +++ b/computation/semantics.md @@ -0,0 +1 @@ +# Formal Semantics diff --git a/computation/syntax.md b/computation/syntax.md new file mode 100644 index 0000000..7dd776d --- /dev/null +++ b/computation/syntax.md @@ -0,0 +1,22 @@ +# Syntax + +## Resources + +Articles +- [An Overview of Lexing and Parsing](https://www.perl.com/pub/2012/10/an-overview-of-lexing-and-parsing.html/) +- [Just write the #!%/* parser](https://tiarkrompf.github.io/notes/?/just-write-the-parser/) + +Books and Courses +- [Compilers: Principles, Techniques, Tools](https://annas-archive.org/md5/90db32d070cfb70ca617e655d5c35529) + +## Notation + +## Lexing + +## Parsing + +cover: +- please please please lex +- handrolled parsers +- pegs and their limitations +- other varieties of parser generators (ANTLR, lalrpop, yacc...) diff --git a/computation/types.md b/computation/types.md new file mode 100644 index 0000000..2edfe7c --- /dev/null +++ b/computation/types.md @@ -0,0 +1,11 @@ +# types! ah, wonderous types! + +## Resources + +- *Types and Programming Languages* by Benjamin C. Pierce + +## algebraic data types + +## inductive types +- https://en.wikipedia.org/wiki/Inductive_type + |