Writing a lisp compiler from scratch in JavaScript: 1. lisp to assembly
A technical guide to building a basic Lisp compiler in JavaScript, covering parsing, code generation, and assembly output.
A technical guide to building a basic Lisp compiler in JavaScript, covering parsing, code generation, and assembly output.
Introducing the Disassembly Diagnoser for BenchmarkDotNet, a tool to disassemble .NET code to ASM, IL, and C# for performance analysis.
A deep technical dive into the ARM64 assembly implementation of Objective-C's core message-sending function, objc_msgSend.
The author argues that using intrinsics for high-performance code is unreliable and more work than writing assembly by hand.
Explains how preemptive multitasking and process scheduling work in KnightOS, an open-source OS for TI calculators.
A critique of Go's verbose error handling patterns, comparing them to more concise assembly language approaches.
Explores a DOS debugging quirk where programs behave differently in debuggers due to stack space manipulation for interrupt traps.
A developer recounts debugging a bizarre bug in a custom calculator kernel that only manifested when no breakpoints were set.
A personal reflection on the experience of a microprogramming lab, discussing the process and connecting it to RISC architecture concepts.
A student reflects on their university courses in computer hardware, software prototyping, and linear algebra, connecting them to programming.
A developer reflects on finishing school projects, plans to participate in a game jam, and aims to improve technical skills like Vim and Emacs.