Autosave: 2024-09-13 19:00:03

This commit is contained in:
thomasabishop 2024-09-13 19:00:03 +01:00
parent b4c4250323
commit 054ee22cbf
4 changed files with 57 additions and 10 deletions

Binary file not shown.

View file

@ -43,8 +43,8 @@ First three phases of digital electronic computers:
| Term | Definition |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| automatic | can execute programs, process data and perform functions on its own once it has been started. Can monitor its own processes and make adjustments without human intervention |
| general-purpose | |
| programmable | |
| general-purpose | a computer designed to be able to solve a wide variety of problems and perform many different types of tasks as opposed to a computer built for a specific, limited purpose |
| programmable | the ability to change the operations a computer peforms without physically altering its hardware |
## Mechanical calculating devices in the 17th century

39
zk/Turing_completeness.md Normal file
View file

@ -0,0 +1,39 @@
---
title: Turing_Completeness
tags: [theory-of-computation, Turing]
created: Friday, September 13, 2024
---
# Turing Completeness
We know that a [Turing machine](Turing_machines.md) is a theoretical construct
of a computer that:
> contains mutable state, executes sequences of simple instructions that read
> and write that state, and can pick different execution paths depending on the
> state (via conditional branch instructions.)
A Turing Complete (TC) system is a system that abides by, or can be reduced to,
the above description.
TC also serves as a _definition of computability_ and provides a formal basis
for conceiving of computation at a theoretical level.
All Turing Complete systems are functionally equivalent. This means they can
simulate each other given enough time and memory. Similarly a TC system can in
principle perform any computation that any other programmable computer can
perform. This is true for _other_ TC systems and also those that are not TC
however the inverse doesn't hold: a non-TC system cannot emulate a TS system.
For instance a calculator cannot do what a TC smart phone can do. But a smart
phone can act as a calculator.
Completeness applies to the hardware of computers as well as their software.
Turing Completeness is the theoretical basis of the practical concept of a
"general-purpose computer": a general-purpose computer is such because it is
TC - it can in theory compute anything that is computable.
Most modern programming languages are Turing Complete in that they can, in
theory, be used to compute anything that is computable.
What about Universal Turing Machines eh?

View file

@ -1,19 +1,27 @@
---
tags:
- theory-of-computation
- Turing
---
## What is a Turing Machine?
A Turing Machine consists of an infinitely long tape, that has been divided up
into cells. Each cell can contain either a 1, a 0 or an empty space. Above one
cell of the tape is a head, which can either move left or right, and can read
the symbols written in the cells. The head is also capable of erasing symbols
and writing new symbols into the cells.
Turing Machine is a machine that contains mutable state, executes sequences of
simple instructions that read and write that state, and can pick different
execution paths depending on the state (via conditional branch instructions.)
![Turing_machines_01.gif](Turing_machines_01.gif) The direction that the
head moves, which values it erases, and which values it writes in, are dependent
on a set of instructions provided to the machine.0
This is a general expression, it is typically expanded as follows.
The machine consists of an infinitely long tape, that has been divided up into
cells. Each cell can contain either a 1, a 0 or an empty space. Above one cell
of the tape is a head, which can either move left or right, and can read the
symbols written in the cells. The head is also capable of erasing symbols and
writing new symbols into the cells.
![Turing_machines_01.gif](Turing_machines_01.gif)
The direction that the head moves, which values it erases, and which values it
writes in, are dependent on a set of instructions provided to the machine.
Different sets of instructions can be divided into **states.** States are like
sub-routines and can themselves feature as part of instructions.