education-2022/ideas/languages.md

853 B

Languages: Why You Should Have a LISP

Software Autonomy and You

If you really want to start from zero, how do you begin? At the very bottom of the stack, computers speak machine code, often translated from assembly. The easiest way to get rolling is with a lovely family of languages, often referred to as "concatenatives" or "stack languages".

Interesting content path

low-level programming walk through basic language/computer theory

  • Explain a few simple assembly instructions
    • typed operations vs typed data
    • code as data as code
  • Write a simple FORTH using stated assembly instructions
    • memory management strategies
    • stacks
    • binary formats (ELF/PE32+/MachO)
  • Write a LISP using that FORTH
    • garbage collection
    • metaprogramming
  • Prolog, SAT Solvers, SMT Solvers
  • Automata
    • Game of Life
    • parsing
  • Solve world hunger