Differences between version 27 and previous revision of ProgrammingLanguage.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 27 | Last edited on Sunday, August 15, 2004 11:30:01 pm | by AristotlePagaltzis | Revert |
Older page: | version 26 | Last edited on Sunday, August 15, 2004 8:56:55 pm | by ElroyLiddington | Revert |
@@ -1,5 +1,13 @@
-;:
If the Tao is great, then the operating system is great. If the operating system is great, then the compiler is great. If the compiler is great, then the application is great. The user is pleased and there is harmony in the world. %%% %%% [
[...] %%% %%%
The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages. %%% %%%
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. %%% %%% But do not program in COBOL if you can avoid it. %%% %%%
-- ''Geoffrey James'', The Tao of Programming
+
If the Tao is great, then the operating system is great. If the operating system is great, then the compiler is great. If the compiler is great, then the application is great. The user is pleased and there is harmony in the world.
+
+ ~
[...]
+
+
The Tao gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are ten thousand languages.
+
+
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao. %%% %%% But do not program in COBOL if you can avoid it.
+
+
-- ''Geoffrey James'', The Tao of Programming
A human-readable language to control computers. SourceCode written in a ProgrammingLanguage may either be compiled into a [BinaryExecutable] or [ByteCode] by a [Compiler] or executed directly by means of an Interpreter.
!!! Very high level general purpose languages
@@ -33,9 +41,9 @@
!!! Functional programming languages
Functional programming is a __paradigm__ based loosely on the LambdaCalculus approach to ComputerScience, in which everything in a program is a function.
-In pure functional programming, there are no side effects; you cannot assign a value to a variable more than once, only return values from functions. Therefore, a function's return value depends only on the parameters passed. As a result, you can even mathematically prove the correctness of a program. You can also easily "memoize(memorise?)
" functions, ie shortcircuit their execution by look up in a cache the return value of a previous call to a computationally expensive function for the same set of arguments. Purely functional programming also allows the computer to execute all parts of the program in arbitrary order to arrive at the desired result by using LazyEvaluation and PartialEvaluation.
+In pure functional programming, there are no side effects; you cannot assign a value to a variable more than once, only return values from functions. Therefore, a function's return value depends only on the parameters passed. As a result, you can even mathematically prove the correctness of a program. You can also easily "memoize" functions, ie shortcircuit their execution by look up in a cache the return value of a previous call to a computationally expensive function for the same set of arguments. Purely functional programming also allows the computer to execute all parts of the program in arbitrary order to arrive at the desired result by using LazyEvaluation and PartialEvaluation.
<?plugin BackLinks page=CategoryFunctionalProgrammingLanguages noheader=1 ?>
Programmers generally prefer imperative programming as they find it easier to understand and build practical applications with. Indeed, some things that depend on side effects and are easy in imperative programming are unreasonably hard to solve in pure functional programming - I/O is an example. However, problems that may seem terribly difficult in imperative programming are often trivial in pure functional programming.