Resources to getting started with writing Programming languages, Emulators, Assembly and Operating system. PL orginal post by Max Bernstein

Compilers

Lisp specific

Runtimes

Runtime optimization

Research around optimizing dynamic languages.

And here are runtime optimization resources that I wrote!

  • Inline caching, a post containing a small demo of how to speed up attribute lookups in an interpreter
  • Inline caching: quickening, a post about speeding up interpreters using self-modifying bytecode (“bytecode rewriting” or “quickening”)
  • Small objects and pointer tagging, a post about speeding up interpreters using pointer tagging and encoding small objects inside pointers

Pointer tagging and NaN boxing

Resources on representing small values efficiently.

Just-In-Time compilers

Small JITs to help understand the basics. Note that these implementations tend to focus on the compiling ASTs or IRs to machine code, rather than the parts of the JIT that offer the most performance: inline caching and code inlining. Compiling is great but unless you’re producing good machine code, it may not do a whole lot.

Assembler libraries

Sometimes you want to generate assembly from a host language. Common use cases include compilers, both ahead-of-time and just-in-time. Here are some libraries that can help with that.

SystemV ABI

This is a sort of grab-bag for helpful or interesting tools for programming language implementation.

Game Boy Emulators

This is a potentially fun way to render the screen without SDL, but only for non-interactive purposes.

This YouTube playlist looks like it could be worth a watch, but it’s a lot of hours.

Lists

Communities

Operating System

OSDev

Linux From Scratch

Writing an OS in Rust

littleosbook

OS from scratch

operating system resources

Nand to Tetris courses

Assembly language

picking up assembly is something i would like to do ASAP.

PC Assembly Language programming 32bits

Learning assembly for linux-x64 asm

Introduction to Programming Systems by princeton

Easy 6502

Assembly Language Adventures

Assembly Language / Reversing / Malware Analysis / Game Hacking -resources

x86 Assembly Guide

Assembly Guide