Humans have been inventing programming languages since the 1940s. But what exactly is a “programming language” and how do computers understand different programming languages? Well read on to find out. The Basics Before we dive into things we have to break down what code is. Code is a series of instructions given to some sort … Read moreHow Code Becomes Binary
Synopsis Stack and Heap refer to different memory segments. In general, the size of the stack will be much smaller than the heap, but the time required to access data on the stack will be much shorter than trying to access data that is stored in the heap. More Info This is an inherently confusing … Read moreStack vs Heap
Last post we talked about binary on a basic level. If you are not comfortable with reading binary or counting in binary I recommend you check out that post before reading this one. Using bit shifting and bit masking judiciously opens the door for massive performance optimizations in low level hardware and high level systems … Read moreHow Bit Shifting & Bit Masking Work
Learning how to understand Binary will change how you see all numbers. What is Binary? I am sure you have had that question at least once or twice before. Usually for me what happened in the past was, I would ask that question and then end up in some article written for a college Computer … Read moreWhat is Binary?
An exploration into how your Processor works. In previous posts I have described how computers store information and how the special ALU chip can run elementary operations on that information. In this post I will endeavor to bring it all together into a cohesive overview of how your processor works. Before I dive into the … Read moreHow does your Processor Process?
A brief explanation of Computer Memory In the last post I explained how the ALU in your CPU works. As impressive as that is it doesn’t do very much good unless you can store the results. Which brings us to the problem of how can computers store memory. In general there are two types of … Read moreHow Computers Remember
The Arithmetic-Logic Unit All of mathematics solved with six bits. The ALU is the work-horse in the CPU. It is responsible for almost all computations. In previous posts I have described building various kinds of chips that have somewhat simple functionality. Each chip was required to have a specific behavior that can be repeated giving … Read moreThe ALU
This is where we learn how to do addition in the lowest levels of computer architecture. After completing project one you are left with five, 16-bit chips and no real idea where to go next, or why you made them. Luckily, you don’t have to be as smart as the guys who invented the computer … Read moreIn Addition to That…
My last post introduced the trivial but necessary “Not” chip. Before I move away from the first project I would like to mention one last chip that I found intriguing and especially difficult to solve. That chip is called a “Multiplexer” chip, or a “Mux” chip for short. This chip has a much more complicated … Read moreMuxtopia
The Not Gate Recently I have started working on a project called Nand2Tetris. The idea of the project is to build a computer from first principles all the way to an OS that runs a Tetris clone. The course is totally open source and free to audit. Thanks to Noam Nisan and Shimon Schocken for … Read moreThe Beginning