...implementation of algorithms is inherently procedural
...algorithm is "description of an operation step-by-step to solve some problem".
Does this definition render it naturally to structural code ?
Not so in the strict sense. Consider this common definition (from
wikipedia.org)
...
So far, this discussion of the formalisation 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...
See functional programming and logic programming for
alternate conceptions of what constitutes an algorithm.
The lack of mathematical rigor in the "well-defined
procedure" definition of algorithms posed some difficulties
for mathematicians and logicians of the 19th and early 20th
centuries. This problem was largely solved with the
description of the Turing machine, an abstract model
of a computer formulated by Alan Turing, and the demonstration
that every method yet found for describing "well-defined
procedures" advanced by other mathematicians could be
emulated on a Turing machine (a statement known as the
Church-Turing thesis).
Nowadays, a formal criterion for an algorithm is that it
is a procedure that can be implemented on a completely-
specified Turing machine or one of the equivalent
formalisms.
This is also the point demerphq makes with Knuth's imaginary computer and that dragonchild states as different programming paradigms being equivalent in algorithmic power (all "mappable" to a Turing machine). The wikipedia goes on along this line of reasoning:
One way of classifying algorithms is by their design
methodology or paradigm. There is a certain number of
paradigms, each different from the other. Furthermore,
each of these categories will include many different types
of algorithms. Some commonly found paradigms include:
... etc, read for yourself
-- allan
===========================================================
As the eternal tranquility of Truth reveals itself to us, this very place is the Land of Lotuses
-- Hakuin Ekaku Zenji
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.