/game-of-life

Primary LanguageTypeScript

Turing Completeness

Requirements:

  • do everything a Turing machine can do!
  • conditional branching
  • must have sufficient amount of memory
"The ability to read and write a pattern of 0s and 1s is powerful enough to compute anything that CAN be computed."

-- Computerphile, Professor Brailsford

  • considered Type-0 Grammar/language (Recursively enumerable) in Chomsky's heirarchy of languages

Charles Babbage

  • realized that to perform any computation, must have conditional branching
    • which implicitly implies "go to..." that various information needs to be stored.
    • If Here, go there, else, go here...

Cellular Automata

  • program that operates in 2d grid
  • simple set of rules tat govern realtionship between a cell and it's neighbours
  • will produce generations of grid
    • don't want to mutate existing grid as that would compound errors across generations
    • new grid will become current (rinse repeat)
  • TL:DR:
    complex behavior can be derived from simple rules
    
  • IRL - used in biology and chemistry to simulate models for research