A modern simulation of Charles Babbage's Analytical Engine.
main
| 1 | class 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