Computer Engineering


Digital Logic

Sparkfun: PCB Basics (External Link)

Trace Width Calculator (External Link)

Programing: Low-Level

Unified Extensible Firmware Interface

x86 Processors

x86 Architecture

The Art of Picking Intel Registers (External Link) I'm begining to think that some of the suggestions here are actually counterproductive to creating tight or efficient code, even if they might be easier to read.

NASM (External Link)

Intel: Software Developer's Manual
  1. Basic architecture (External PDF)
  2. Instruction set reference, A-M (External PDF)
  3. Instruction set reference, N-Z (External PDF)
  4. System programming guide Part 1 (External PDF)
  5. System programming guide Part 2 (External PDF)

Optimization Reference Manual (External PDF)

AMD: Programmer’s Manual
  1. Application Programming (External PDF)
  2. System Programming (External PDF)
  3. General Purpose and System Instructions (External PDF)
  4. 128-bit and 256 bit media instructions (External PDF)
  5. 64-Bit Media and x87 Floating-Point Instructions (External PDF)

Software Optimization Guide for AMD64 Processors (External PDF)

Arm Processors

Programing: High-Level

Programing Languages

Swift Grammar (YACC / TXT)


Smalltalk Grammar (YACC / TXT)

Smalltalk-80: The Language and its Implementation (The Blue Book) (PDFY)


The Development of the C Language

The Original C Reference Manual (PDF)

The C99 Standard ISO/IEC 9899:1999 (PDF)

ANSI C Lex Specification

ANSI C YACC Specification

Standard C Libraries

Writing C software without the standard library (External Link)


Standard C++ Libraries (External Link)


Introduction to Programming Using Java (External Link)

Java Grammar (YACC / TXT)


Compiler Development

Let's Build a Compiler! -- Crenshaw (External PDF)

CS 132 Compiler Construction (PDF)

An Incremental Approach to Compiler Construction -- Abdulaziz Ghuloum (PDF)

Writing Compilers Quickly (External Link)

Making Teensy Executables (External Link)

ELF for Arm Architecture (PDF)