Skip to content
andychu edited this page Jul 6, 2019 · 118 revisions

Welcome to the oil wiki!

For Users

For Developers

Other:

Implementation Details

Reference

External Resources -- External Resources on Unix shells, programming language design, and implementation

Protocol Designs

Other Designs

Analysis of Unix Shell

OSH Parser / OSH Optimization Log

Programming Language Implementation

Parsing Case Studies -- What algorithms and tools do production-quality languages use for parsing?

Bootstrapping Case Studies -- How are languages bootstrapped?

Lossless Syntax Tree Pattern

Language Subsets -- an abstract but practical way of specifying a language

Compact AST Representation

Architecture of Various Interpreters

Programming Language Design

Oil Blog Planning

Programming Patterns

Blog Themes / Post Ideas

Parsing is Difficult

  • Interesting facts about other language implementations:

    • Clang AST, TypeScript external visitors with "switch", TableGen language in LLVM, sh/awk/C code gen in most shells.
  • Breaking abstractions -- the git log | python pipeline is like the Go-style of unicode handling with utf-8. You don't always have to parse, operate, serialize. Sometimes you can just massage the input.

  • Remote evaluation. ssh user@host find -type f -a -executable sends an expression over the wire, just like SQL does. Or sh, awk, etc.

Clone this wiki locally