Fyi, this is a design document for Temper, a programming language for high-assurance libraries that run inside anything.

Design Sketches

RFCs that capture aspects of the language and kind of stand alone. If you've thoughts on any of these, let us know at temper-lang-dev@.

Drafted

Parsing” discusses ways to craft a grammar that will ease IDE integration and maintaining a fully-featured suite of ancillary tools. It builds such a parsing pipeline in JS to ease experimentation.

Modules” discusses how modules import from and export to one another.

Dynamism” discusses the pros and cons of different points on the dynamic/static language spectrum and how multi-stage programming might give the flexibility that a multi-backend language needs while satisfying language backends that produce output for static languages.

Pattern Decomposition” considers several use cases for pattern matching of data values. It constructs in JS a protocol to allow type-specific code to convert tokens representing a pattern into suitable inputs for a generic query optimizer.

Function syntax” bikesheds function declarations and function values without getting into semantics.

To Do

Function application” will discuss function application, and how to export idiomatic interfaces to many languages.

TODO: “types and memory” will discuss how to deal with least-common denominator problems around memory and concurrency via type-system constraints.

Thanks for reading!