0% found this document useful (0 votes)
23 views

Formalization: Turing-Complete

Algorithms are essential to how computers process data and complete tasks. They provide a specific set of instructions that a computer follows step-by-step to carry out a function like payroll or report cards. Any procedure that can be considered an effective computation can be performed by a simple machine like a Turing machine. An algorithm must be rigorously defined, with all possible conditions and cases addressed clearly and systematically to ensure correct functioning. The order of the steps is always critical in an algorithm.

Uploaded by

Jash
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Formalization: Turing-Complete

Algorithms are essential to how computers process data and complete tasks. They provide a specific set of instructions that a computer follows step-by-step to carry out a function like payroll or report cards. Any procedure that can be considered an effective computation can be performed by a simple machine like a Turing machine. An algorithm must be rigorously defined, with all possible conditions and cases addressed clearly and systematically to ensure correct functioning. The order of the steps is always critical in an algorithm.

Uploaded by

Jash
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 1

Formalization[edit]

Algorithms are essential to the way computers process data. Many computer programs contain
algorithms that detail the specific instructions a computer should perform (in a specific order) to carry
out a specified task, such as calculating employees' paychecks or printing students' report cards.
Thus, an algorithm can be considered to be any sequence of operations that can be simulated by
a Turing-complete system. Authors who assert this thesis include Minsky (1967), Savage (1987) and
Gurevich (2000):
Minsky: "But we will also maintain, with Turing . . . that any procedure which could "naturally" be
called effective, can in fact be realized by a (simple) machine. Although this may seem extreme, the
arguments . . . in its favor are hard to refute".[19]
Gurevich: "...Turing's informal argument in favor of his thesis justifies a stronger thesis: every
algorithm can be simulated by a Turing machine ... according to Savage [1987], an algorithm is a
computational process defined by a Turing machine".[20]
Typically, when an algorithm is associated with processing information, data are read from an input
source, written to an output device, and/or stored for further processing. Stored data are regarded as
part of the internal state of the entity performing the algorithm. In practice, the state is stored in one
or more data structures.
For some such computational process, the algorithm must be rigorously defined: specified in the way
it applies in all possible circumstances that could arise. That is, any conditional steps must be
systematically dealt with, case-by-case; the criteria for each case must be clear (and computable).
Because an algorithm is a precise list of precise steps, the order of computation is always critical to
the functioning of the algorithm. Instructions are usually assumed to be listed explicitly, and are
described as starting "from the top" and going "down to the bottom", an idea that is described more
formally by flow of control.
So far, this discussion of the formalization of an algorithm has assumed the premises of imperative
programming. This is the most common conception, and it attempts to describe a task in discrete,
"mechanical" means. Unique to this conception of formalized algorithms is the assignment operation,
setting the value of a variable. It derives from the intuition of "memory" as a scratchpad. There is an
example below of such an assignment.
For some alternate conceptions of what constitutes an algorithm see functional
programming and logic programming.

You might also like