| • Science | • People | • Locations | • Timeline |
One way of stating the Church-Turing thesis is that any language that can simulate a Turing machine can be used to implement any effective algorithmFlowcharts were often used to represent algorithms. An algorithm is a finite set of well-defined instructions for accomplishing some task which, given an initial state, will result in a corresponding recognisable end-state (contrast with heuristic). Algor — in this sense, it is irrelevant what language is used to implement a particular algorithm, as that exact algorithm can also be implemented in every other language. However, when designing an algorithm to solve a particular problem, programmers are sometimes heavily influenced by the language constructs available. Though a large part of this is undoubtedly the way of least resistance (implement whatever is easiest to implement), there is also an element of "appropriateness" or "naturalness" that seems to compel the programmer to a design that "befits" the language.
Most programmers consider this a Good ThingIn some versions of computing jargon, a Good Thing written with capital letters as if a proper noun for added emphasis (and with the words similarly emphasised when spoken), is something which has positive consequences for the subject under discussion., and the bewildering multitude of programming languages can be defended with the remark that a new programming language, while not extending the set of all possible algorithms, does extend the set of all algorithms we can efficiently think about. A well-known epigram by Alan PerlisAlan Perlis Alan J. Perlis ( April 1, 1922 February 7, 1990) was a prominent U. computer scientist. He was born in Pittsburgh, Pa. He was the first recipient of the Turing Award, in 1966. In 1943, he received his bachelor's degree in chemistry from the Ca states that "a language that doesn't affect the way you think about programming, is not worth knowing".
This is not universal, however. Some programmers find the task of algorithm design largely the same, regardless of the programming language used - and, with the overwhelming dominance of imperative languages in commercial applications, the supposed diversity of programming languages is often a case of slightly different syntax for essentially the same set of programming language constructs. Another famous epigram states that "a good FORTRAN programmer can write bad FORTRAN code in any language".
Programming