(me_and)

About

This user hasn't posted any Comments.

All Posts by me_and

Memory: what matters

Memory: what matters

We know our computers store numbers, but the only way we’ve talked about how to store those numbers was that infinitely long piece of tape the Turing machine had. I want to spend a bit of time talking about how computers actually store data. Before...

Atomics and locks

Atomics and locks

When writing a simple program, you will normally only have a single “thread of execution”. That means that you’ll write a series of instructions for the computer, and the computer will follow them one-after-another. There might be jumps and loops (“do this five times” or...

A green steam train

Threads, trains and tortured analogies

Imagine you’re running the train network. You have a whole bunch of train tracks, a whole bunch of people to get from one place to another, and just one train to do it with. Simple, right? Move your train from place to place, and let...

Making things faster

Making things faster

Back to something a bit more practical. When you’re working with a computer, it’s pretty common to want it to go faster. It’s pretty rare that going to fast is a problem. So how can you make your computer go faster? How can computer manufacturers...

A black-and-white photograph of two women operating a large computer. The computer has two large sections, both taler than the women, with a control panel visible in the left one, vacuum tubes visible on both, and a large paper tape reel on the right of the machine.

A historical divergence: Wartime advances

The key idea from Babbage’s analytical engine was that of a single computer which could solve multiple problems. Previous devices were built to solve a single problem, and at best would need to be disassembled and rearranged before they could be used for anything else....

A line drawing showing many interlocking cogs and wheels, some with numbers and indicators marked on them, with a hand crank at the top

A historical divergence: Babbage and Lovelace

Back in the 18th century, a “computer” was a person who performed computations. They would calculate mathematical tables by hand – long lists of numbers that could be referenced for calculations. It would be a slow and arduous process prone to error, but was vital...

Numbers changing numbers

Numbers changing numbers

The Turing machine we saw has its instructions, which we often think of as its program, and its tape, which is its memory. That’s not really accurate, though, and hasn’t really been accurate since we stopped writing programs by punching holes in bits of cardboard....

Programs without compilation

Programs without compilation

Both assembled and compiled languages require some form of translation to convert them from a language a human programmer can (more-or-less) understand to the machine language the computer can understand. But what about if we could skip that step? That’s where interpreted languages come in....

Compilations

Compilations

A computer will take a sequence of numbers and interpret them as instructions. It has to – a computer can only store numbers, and the meaning of those numbers (that they’re instructions the computer should perform, rather than, say, ingredient weights for baking a cake) comes...

Writing for a computer

Writing for a computer

A number can represent some sort of “instruction” to a computer, and what instruction a given number means is determined by that computer’s “machine language”. The number sequence “27, 48, 19” might mean “store the number 48 in the bit of memory at address 19”,...

Pages:12»