Arbtirary thoughts on nearly everything from a modernist poet, structural mathematician and functional programmer.

Saturday, December 1, 2007

Lovelace, Analytical Engines, and Life

So, while procrastinating yesterday, I was wandering around the internet, and stumbled upon a reference to Ada Lovelace. I'd heard the name before but never quite knew why. Well... it turns out she was the first programmer. Yes, a woman started a profession/hobby which is known for its lack of female practitioners. What's even more impressive, is that she wrote a program for an analytical engine... It hadn't been (and never was) actually built. She knew how to program a system in machine language without the machine ever having been built. Wikipedia has a link to her translation of Menabrea's Sketch of The Analytical Engine, which she extensively annotated, and her program is included in the notes. I haven't actually looked at it yet, but that falls under the category of "Winter projects"

Another winter project will be my first real Scheme project: An implementation of The Game of Life, created by John H. Conway. Conway is brilliant, but this post isn't about him; it's about his game. The Game of Life is a zero player game, meaning it takes initial conditions and works from there. It is "played" on a large (theoretically infinite) grid, where each square (hereafter cell) is either occupied (hereafter, alive) or unoccupied (hereafter, dead). At each iteration, every cell either stays how it is, or flips (T flip-flop style). They follow 4 rules:
1)If a live cell has less than 2 adjacent living cells, it dies, as if by loneliness
2)If a live cell has more than 3 adjacent living cells, it dies, as if by overcrowding
3)If a dead cell has exactly 3 adjacent living cells, it comes to life
4)Otherwise, all cells stay the same.

It turns out, that the game is Turing Complete. This means, the game can calculate anything that can be calculated, given enough time and space. It's rather shocking that a novelty binary map with only 4 rules governing switching can calculate literally anything... It's also useful as a similation of population growth and change...

Anyway, these will be fun projects... I just hope I don't lose motivation over break.

No comments:

Creative Commons License Cory Knapp.