Changes

26 bytes removed ,  22:57, March 14, 2012
→‎Classifying programming languages: extend problem domain examples, reformat list.
Line 35: Line 35:  
When using an imperative language, the programmer is responsible for giving precise instructions as to exactly what has to be done and in what order. Note that some programs may have a random element included so that the results of a program are not necessarily predictable. One of the key reasons for the success of high-level languages is that they provide a level of abstraction (sometimes several such levels). which means that a programmer can concentrate more on the problem to be solved and less on the detail of how to solve it.
 
When using an imperative language, the programmer is responsible for giving precise instructions as to exactly what has to be done and in what order. Note that some programs may have a random element included so that the results of a program are not necessarily predictable. One of the key reasons for the success of high-level languages is that they provide a level of abstraction (sometimes several such levels). which means that a programmer can concentrate more on the problem to be solved and less on the detail of how to solve it.
   −
Early high-level programming languages were often intended for use in a particular problem domain (e.g. COBOL for business purposes, Fortran and Algol 60 for scientific calculations). Other programming languages were originally intended for teaching purposes (e.g. BASIC and Pascal). The language '''C''' was originally intended for systems programming (writing operating systems and compilers).
+
Early high-level programming languages were often intended for use in a particular problem domain:
 +
:COBOL for business purposes,
 +
:Fortran and Algol 60 for scientific calculations,
 +
:BASIC and Pascal for teaching purposes,
 +
:'''C''' for systems programming (writing operating systems and compilers),
 +
:LISP for list processing and artificial intelligence.
    
Successful programming languages evolve over time to become more general-purpose, or form the basis for other languages (e.g. '''C''' -> '''C++'''). The evolution often involves incorporating good features from other languages. The general trend is for languages to become more general-purpose and provide more levels of abstraction. The concepts of structured programming were put on a sound theoretical basis in the early 1970's and these have also influenced the evolution of some programming languages (e.g. Fortran 66 -> Fortran 77). The idea of objects (combining data with the applicable operations) was available in Simula in the mid 1960's, but did not become popular until the advent of C++ in the early 1980's and Java in the mid 1990's; confusingly, Java and C++ have a lot of syntax in common, but the meaning (semantics) may differ drastically for what looks the same when written down.
 
Successful programming languages evolve over time to become more general-purpose, or form the basis for other languages (e.g. '''C''' -> '''C++'''). The evolution often involves incorporating good features from other languages. The general trend is for languages to become more general-purpose and provide more levels of abstraction. The concepts of structured programming were put on a sound theoretical basis in the early 1970's and these have also influenced the evolution of some programming languages (e.g. Fortran 66 -> Fortran 77). The idea of objects (combining data with the applicable operations) was available in Simula in the mid 1960's, but did not become popular until the advent of C++ in the early 1980's and Java in the mid 1990's; confusingly, Java and C++ have a lot of syntax in common, but the meaning (semantics) may differ drastically for what looks the same when written down.
   −
There are a variety of different programming paradigms (styles of writing programs). Some programming languages really only support a single paradigm while others may support several. Declarative programming has already been mentioned above.  Other paradigms include: procedural, functional, event-driven, object-oriented and automata-based.
+
There are a variety of different programming paradigms (styles of writing programs). Some programming languages really only support a single paradigm while others may support several. Declarative programming has already been mentioned above.  Other paradigms include: procedural, functional, event-driven, object-oriented, list processing, and automata-based.
    
Languages associated with computers can also be classified as to whether or not they are Turing-complete, i.e. whether or not they are capable of expressing all possible computations (assuming enough time and memory). Examples of languages which are not Turing-complete include SQL for describing databases and markup languages such as HTML and XML.
 
Languages associated with computers can also be classified as to whether or not they are Turing-complete, i.e. whether or not they are capable of expressing all possible computations (assuming enough time and memory). Examples of languages which are not Turing-complete include SQL for describing databases and markup languages such as HTML and XML.
SkipCaptcha
265

edits