A modern simulation of Charles Babbage's Analytical Engine.

1class AnalyticalEngine:
2 """A small, readable simulation."""
3
4 def __init__(self, registers: int = 16) -> None:
5 self.registers = [0] * registers
6 self.pc = 0
7
8 def load(self, index: int, value: int) -> None:
9 self.registers[index] = value
10
11 def run(self, program: list[tuple[str, int, int]]) -> None:
12 while self.pc < len(program):
13 op, a, b = program[self.pc]
14 if op == "add":
15 self.registers[a] += self.registers[b]
16 elif op == "store":
17 self.registers[a] = b
18 self.pc += 1
19
19 lines · 591 bytesLast updated 5 days ago