All descriptions should be merged from here into the respective language's page. The lists should be replaced with category backlinks. The category pages need not (really) exist (only as helpers). All generic descriptions of categories and their respective backlink lists will be here on this page. --AristotlePagaltzis
A human-readable language to control computers. SourceCode written in a ProgrammingLanguage is commonly compiled into a BinaryExecutable or ByteCode by a Compiler, but it may be interpreted?.
Machine Oriented General Purpose: C++, Java, Pascal
These languages are designed for low-level software: drivers, OperatingSystems?, game engines, any code that has to go really fast. They tend to be simplistic languages that closely follow the VonNeumannArchitecture? CPUs are based on which allows skilled programmers to predict and control exactly how their code will be executed.
Strangely, to date they tend to be very "unsafe" languages too. In code written in C, the SystemsProgrammingLanguage? for Unix, it's easy to introduce tiny bugs that mysteriously screw everthing up from time to time -- not something you want your OperatingSystem to do.
If you want to see an alternative approach to systems programming languages examine Modula2.
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. Therefor, 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 shortcircuiting their execution by looking up the return value of a previous call to a computationally expensive function for the same set of arguments in a cache. It also allows the computer to execute all parts of the program in arbitrary order to arrive and the desired result.
For examples of functional ProgrammingLanguage see Category:FunctionalProgrammingLanguages.
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.
It has been theorised this preference for imperative programming is a result of most people learning imperative programming languages (C++, BASIC, Java etc). If they even learn functional programming at all, it is usually much later and in much less depth, so they never really learn to think like a functional programmer. Perhaps if more programmers were taught to think in a functional style from their infancy we would see more applications written in functional languages.
These languages are not intended to be used for serious work, but to stretch the brain. You might also be interested in PolyGlot.
No other page links to SpecialPurposeProgrammingLanguages yet.
93 pages link to ProgrammingLanguage: