summaryrefslogtreecommitdiff
path: root/sec/compiler.ltx
diff options
context:
space:
mode:
authorChloe Brown <chloe.brown.00@outlook.com>2025-04-23 15:59:22 +0100
committerChloe Brown <chloe.brown.00@outlook.com>2025-04-23 15:59:22 +0100
commit4353f331b5ab4af157f576f54b1cc79dd08abb12 (patch)
tree2a8a9314e27bb1ed185ee5bee40ac5b0062f46da /sec/compiler.ltx
parenta2afd4b08dc2b7eada2f95ee95457457a3331344 (diff)
Current state of affairs.
Diffstat (limited to 'sec/compiler.ltx')
-rw-r--r--sec/compiler.ltx25
1 files changed, 19 insertions, 6 deletions
diff --git a/sec/compiler.ltx b/sec/compiler.ltx
index dde2856..2cfde8e 100644
--- a/sec/compiler.ltx
+++ b/sec/compiler.ltx
@@ -6,12 +6,25 @@
\TODO{
\begin{itemize}
- \item QTT basics
- \item intrinsically well-scoped AST
- \item bidirectional judgement
- \item well-typed data types
- \item type checking function
- \item irrelevant pattern matching
+ \item describe that I have a type checker and compiler implemented in Idris
+ \item explain what intentionally well-scoped syntax is
+ \item justify why I used intentionally well-scoped syntax
+ \item describe how type checking produces a derivation
+ \item explain the derivation is runtime erased
+ \item justify the derivation having no runtime cost
+ \item describe why knowing there is a derivation is necessary
+ \item explain why these extra features do not guarantee compiler correctness
+ \end{itemize}
+}
+
+\TODO{
+ \begin{itemize}
+ \item justify how dynamic types make Scheme a good compilation target
+ \item describe how products are compiled to assoc-lists
+ \item describe how sums are compiled to tagged values
+ \item describe how dynamic typing removes the need for roll
+ \item explain why fold needs to know the term has a valid type
+ \item explain why fold must be compiled recursively with map
\end{itemize}
}