Autosave: 2024-09-13 19:00:03
This commit is contained in:
parent
b4c4250323
commit
054ee22cbf
4 changed files with 57 additions and 10 deletions
BIN
.zk/notebook.db
BIN
.zk/notebook.db
Binary file not shown.
|
@ -43,8 +43,8 @@ First three phases of digital electronic computers:
|
||||||
| Term | Definition |
|
| 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 |
|
| 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 | |
|
| 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 | |
|
| programmable | the ability to change the operations a computer peforms without physically altering its hardware |
|
||||||
|
|
||||||
## Mechanical calculating devices in the 17th century
|
## Mechanical calculating devices in the 17th century
|
||||||
|
|
||||||
|
|
39
zk/Turing_completeness.md
Normal file
39
zk/Turing_completeness.md
Normal 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?
|
|
@ -1,19 +1,27 @@
|
||||||
---
|
---
|
||||||
tags:
|
tags:
|
||||||
- theory-of-computation
|
- theory-of-computation
|
||||||
|
- Turing
|
||||||
---
|
---
|
||||||
|
|
||||||
## What is a Turing Machine?
|
## What is a Turing Machine?
|
||||||
|
|
||||||
A Turing Machine consists of an infinitely long tape, that has been divided up
|
Turing Machine is a machine that contains mutable state, executes sequences of
|
||||||
into cells. Each cell can contain either a 1, a 0 or an empty space. Above one
|
simple instructions that read and write that state, and can pick different
|
||||||
cell of the tape is a head, which can either move left or right, and can read
|
execution paths depending on the state (via conditional branch instructions.)
|
||||||
the symbols written in the cells. The head is also capable of erasing symbols
|
|
||||||
and writing new symbols into the cells.
|
|
||||||
|
|
||||||
 The direction that the
|
This is a general expression, it is typically expanded as follows.
|
||||||
head moves, which values it erases, and which values it writes in, are dependent
|
|
||||||
on a set of instructions provided to the machine.0
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
Different sets of instructions can be divided into **states.** States are like
|
||||||
sub-routines and can themselves feature as part of instructions.
|
sub-routines and can themselves feature as part of instructions.
|
||||||
|
|
Loading…
Add table
Reference in a new issue