Bottoms Scheme implementation project
history | edit |

More links

This is a collection of links that might be relevant in unforeseen cases. See Reading for links that should be more directly interesting for the project.

Garbage collectors

Memory Pool System

gsgc

(Boehm GC)

on LLVM

Real-world garbage collection with LLVM (Reddit)

(On LLVM’s GC Infrastructure)

Parallelism

Getting Started in *Lisp (1991), incl. Connection Machine Lisp etc.

The Esterel and Lustre programming languages

Small Lisps

Pixie (Clojure-inspired Lisp implemented in/on RPython)

A fast Lisp interpreter in Dart (HN)

(Kashmir, "a statically typed LISPy language that compiles to native code using Go" (HN))

Scheme 9 from Empty Space - A Guide to Implementing Scheme in C, Scheme 9 from Empty Space

PLisp (Apple II, i.e. 6502) (mentioned on HN)

uLisp - Lisp for the Arduino (HN)

Bone Lisp (HN)

Sild is a lisp dialect (HN) (intepreted, in C)

esp-lisp (lisp interpeter for a ESP8266)

PicoLisp (the dynamically scoped only (?) lisp from software-lab.de, including distributed database, logic, OS)

to JavaScript

Wisp

Jisp (HN)

ki on top of sweet.js

Lisps on bare metal

Movitz

(Yalo)

Mezzanine

The Future of the LispM (HN)

DreamOS

Urbit ?

Unusual Lisps

Game Oriented Assembly Lisp

WAM-CL: Common Lisp in Prolog (groups.google.com) (HN, Github)

Lispy skins

Lisp Flavoured Erlang (LFE), lfe.io

LFGo: Lisp-Flavoured Go (HN)

VMs

Instruction sets

A No-Frills Introduction to Lua 5.1 VM Instructions

Understanding Python Bytecode

odd VMs

Z-machine, First Infocom Z-machine implemented in hardware (github.com) (HN) (in Verilog/FPGA)

Sweet 16: The 6502 Dream Machine (1977) (more detail) (HN)

Mu (HN)

LLVM

Swift Intermediate Language: LLVM conference slides (pdf) (HN); Rust HIR, MIR.

random other VMs

SqueakJS (HN)

Transducers

Rich Hickey – Inside Transducers [video] (HN)

Other

We're building the GNU system [HN]

The Y Combinator – A Crash Course on Lambda Calculus

(Binary lambda calculus)

Things I learned writing a JIT in Go (describes the Go ABI and other internals)

(Hylas / Corvus, a statically-typed, low-level dialect of Lisp that targets LLVM.)

(Graph of SICP chapters)

How to Design Programs, Second Edition (HN)

Annotated Version of John McCarthy’s Paper on Lisp (fermatslibrary.com) (HN)

How to implement a programming language in JavaScript (HN)

Category Theory for the Sciences (HN)

Terra (C-like language embedded in Lua, kind of a Prescheme for Lua)

Scratching Forth, a compiler from Forth to Scratch (HN)

Odd languages

Piet

Grass the grass-planting programming language

False (from Cat's Eye Technologies: Esoteric Topics in Computer Programming from HN)

Assemblers

in Lisp

COMFY-6502, Sassy (from HN)

lithium (assembler for x86, using Clojure S-expressions)

L2 (HN)

other

An ASM Monad (HN)

(a brainfuck monad (HN))

(brainfuck optimization strategies (HN))

JITs

Adventures in JIT compilation (Brainfuck) HN, part1, part2

Scheme / Racket

(Fluxus: a Scheme engine for (3D) livecoding (HN))

Non-mainstream non-Lisp languages

omega

Ela (HN)

Pure

Red-lang (HN)

Functional programming

Functional Programming Patterns (slides) (HN), updated (HN)

Object oriented programming

Dr. Alan Kay on the Meaning of “Object-Oriented Programming” (HN)

Meta languages

Haxe

Programming paradigms

Synchronous programming language

Dataflow programming

More on monads

php-functional

IO monad realized in 1965 (HN)

More on continuations

(Asynchronous Programming, Monads and Continuations in C#, F# and Scala)

Programming languages

(The A-Z of Programming Languages)

Programming language 'skins'

on BEAM (Erlang)

Elixir, HN: Metaprogramming Elixir

Macro implementations

Meta-programming JavaScript Using Proxies (HN) (new Proxy api in ecmascript6)

Types

The Expression Problem and its solutions (Eli Bendersky) (HN) (Most of the mainstream programming languages don't provide good tools to add both new types and new operations to an existing system without having to change existing code. This is called the "expression problem".)

Type inference

An Explanation of Type Inference for ML/Haskell (HN)

Inference Convergence algorithm in Julia

Turing machines

Wang Tiles and Turing Machines

Virtual machines

(* Implementing a Virtual Machine in C, HN *)

Assembly

A fundamental introduction to x86 assembly programming, alternatives in HN

Various

The frozen TUNES project wiki for even more links (some of them potentially useful).