Changes

Jump to: navigation, search

Programming language

7,824 bytes added, 15:34, June 28, 2016
Spelling/Grammar Check & Cleanup, typos fixed: internationally- → internationally , 1970's → 1970s (4)
A '''Programming Languageprogramming language''' is a small set of words and syntactic rules that allow people an artificial [[language]] used mainly for giving instructions to write [[computer programs. When ]]s; a secondary use is for the precise specification of [[computer programalgorithm]] s. A group of instructions for a particular purpose is executed by known as a [[computerprogram]], it will follow the instructions and perform the requested work.
Many different programming When compared with human languages have been defined(e. Some are general-purpose and some are specific to a particular problem domaing. HoweverEnglish, French, Spanish, etc.), programming languages evolve over time are very much smaller, much simpler, and usually become are also more general-purposeprecise. For instance, the [[BASIC programming language]] and the [[Pascal Most programming language]] were originally intended as teaching languages, for students consist of programming. But both are now popular as general-purpose languages. The features a mixture of most modern English words and mathematical notation; very few programming languages are similar, but the have a base vocabulary exceeding 60 words and syntax differ. For instance, the PRINT statement is used to output data in BASIC, whereas WRITELN is used for the same purpose in Pascal. Even when the words and syntax are similar between two languages, often the meaning (semantics) is differentalthough they may also have utility libraries with hundreds of entries which provide optional extra functionality.
Unlike human Many thousands of different programming languageshave been defined, computer languages though only a few dozen are much smaller in widespread use. The first publicly available programming language A-0 was developed in 1951 by [[Grace Hopper]]. In 1948 Zuse published a paper (having grammars of around two dozen wordsin "Archiv der Mathematik") and define meanings more preciselyabout an early programming language Plankalkül, though this was not actually implemented until 1998.
The first ==Describing a programming language was A==While human languages such as English may have rules of grammar, there are almost always exceptions to these rules. To reduce ambiguity, most programming languages have their [[grammar]] or syntax rigidly defined by a relatively small number of rules, with no exceptions. In many cases some variation of a [[Context-0Free Grammar|context-free grammar]] is used, developed in 1951often Backus-Naur Form, or some extension thereof. Note that context-free grammars are not powerful enough to describe human languages such as English.
* Based on history we can see how all successful languages had very powerful sponsors. C/C++/Java/C# are all creations The meaning or [[semantics]] of big companies like AT&T, Sun, Microsoft. All these new languages are born any particular construct in universities a programming language is most commonly described in fairly precise English. Several unsuccessful attempts have been made to find a useful and research institutes or are coming from very specific niche domainsformal way of describing the semantics. [http://littletutorials.com/2008/05/28/13-reasons-java-die-old-age/]
==Implementation of Programming Languages==A set of instructions written in a The more important programming language languages have an internationally agreed official standard (ISO is called '''source code'''the international standards organisation, or simply '''code'''ANSI is the standards body in the United States). In order for a computer to execute a programtheory, another program must be used programs which conform to prepare the source for execution. '''Interpreters''' translate relevant standard should be usable on most types of computer; this works in practice most of the source code into '''machine code''' as the program executes. '''Compilers''' and '''Assemblers''' convert the source code into machine code oncetime, and the computer can run provided that the programmers have been careful to avoid machine code any number of timesdependencies. This makes compiled code run faster than interpreted codeSuch agreed standards are usually revised every 5 to 15 years, often with new features being added, usually by a factor of about 10and sometimes with old features being either removed or marked as obsolete.
Very few programmers learn a programming language directly from the formal definition, which exists primarily as a reference which can be consulted in cases of doubt. There are usually plenty of books and training courses for the more common programming languages.
==Distinguishing FeaturesThe art of programming==The act of writing a computer program using a programming language is called [[Computer Programming languages can be divided into '''declarative''' and '''procedural''' languages|programming]]. Declarative languages define information such as relationships While there are many guidelines, there are no rules which are guaranteed to produce a correct and attributes. Modula usable program, so programming is very much an example of art or skill rather than a declarative languagescience. Procedural languages define processes (algorithms) for the computer Furthermore, a programmer must pay meticulous attention to follow. C is an example detail: a moderately large program of say 150,000 instructions must be completely free of punctuation errors, grammatical errors, and spelling mistakes, and must also be largely free of logical errors (as a procedural languagesize comparison, a 400-page paperback book contains about 16,000 lines - 1/10th the size).
Languages can also be divided into '''low-level languages''' such as Assembly, and '''high-level languages''' such as [[Cobol|COBOL]]. Low-level languages are those where the program code interacts directly (or fairly directly), with the CPU, whereas high-level languages Various studies have found that programmers with a higher level comparable amount of abstraction, leaving the compiler experience may differ in skill levels by a factor of 10 or interpreter to deal with issuing the appropriate commands to the CPU, and similar issuesmore.
==Classifying programming languages==The level of a language initial distinction is a sliding scale, with some languages considered more high-level than others. Low-level langauges tend to require more steps to accomplish the same tasks than highbetween '''low-level languages. [[Assembly Language]] is not '''aand ''' specific language, such as BASIC, but rather any of a group of high-level languages that are each specific to a particular [[CPU]]'''.
Most, if not all, high===Low-level languages support the following features: sub===Low-routines (functions and procedures)level languages are generally referred to as '''assembly''' languages. Most instructions in such languages equate directly to a single machine instruction. Each machine architecture has its own assembly language, variables, flowso programs written in such languages are generally very machine-controlspecific and are not portable. The instructions in such languages are usually fairly cryptic, data typesoften using abbreviations such as ADD, I/OJNE, arithmetic operationsLR, string operationsLI, dynamic allocation etc. In the early days of computing (heapsup to about 1ate 1950's)most programming was done in assembly language, arrays, structures, constants, and literals. Unique features of some languages will find their way into other languages if the feature is generally useful, or will remain unique partly due to the language otherwise. An example limited power and memory capacity of a feature that has not received widespread acceptance is '''sets'''early computers.
'''Objects''' are ===High-level languages===High-level languages generally use a means mixture of encapsulating data English words and algorithms that operate on that datasimple mathematical notation, and are often available with polymorphism. Originally specified in Simula, objects became popular with the advent little or no change on many different types of C++. Many languages which originally did not support objects have since acquired them. For instance computers, depending on what [[Visual BASICcompiler]] s are available on which computers. These are often referred to as 3rd-generation languages (the 1st generation was raw binary machine code, the 2nd was assembly language). A single high-level statement may be equivalent to using 3 to 10 assembly language statements, so programming in a high-level language can be much more productive. One of the key reasons for the success of high-level languages is that they provide a version level of BASIC supporting objectsabstraction (sometimes several such levels). Likewise, [[Borland Delphi]] is which means that a version programmer can concentrate more on the problem to be solved and less on the detail of Pascal supporting objectshow to solve it.
==Language List==Most There are a variety of the program code in use today is written in Cdifferent programming paradigms (styles of writing programs). Some programming languages really only support a single paradigm while others may support several. Possible paradigms include: imperative, C++declarative, COBOLprocedural, and Java. Other popular generalfunctional, event-purpose languages include BASICdriven, Pascalobject-oriented, list processing, and C#. There are literally thousands of programming languages, although many of them are simply variants of others. Variants are called '''dialects'''. Thus, Visual BASIC is a dialect of BASICautomata-based.
The following is a sample list 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 programming expressing all possible computations (assuming enough time and memory). Examples of languages which are not Turing-complete include SQL for describing databases and markup languagessuch as HTML and XML.
A-0Example statements include: X = 5 + Y*3 '''if''' result < 3 '''then''' stop '''print''' "Hello world"
Ada====Imperative programming====This is the most common type of programming language, and many of the other paradigms are derived from or build on this. 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.
ALGOLEarly 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.
APLSuccessful 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 1970s 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 1960s, but did not become popular until the advent of C++ in the early 1980s and Java in the mid 1990s; 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.
Assembly====Declarative programming====Declarative languages define relationships and facts, ask a question, and leave it to the underlying program implementation and its theorem prover to work out how to derive an answer. An example of such a language is Prolog (Programming in Logic). These languages can be effective in areas such as database analysis, symbolic mathematics, and language parsing.
[[BASIC]]==Implementation of programming languages==A program as written by a programmer in some programming language is said to be in the form of '''source code'''. Such source code can not be used as is, but must first be processed by another program before it can be used on a computer.
[[C]]In the case of assembly language the processing program is called an '''assembler'''; this has a relatively simple task since the instructions coded by the user correspond almost exactly to the actual machine code instructions to be used. The entire program is assembled prior to use.
There are three types of program for dealing with high-level programming languages:* '''[[C++compiler]]''', which converts the entire program to machine code prior to use.* '''[[Interpreter (computer science)|interpreter]]''', which examines the source program line by line, works out what has to be done and does it.* translation to some '''intermediate code''', which can then either be interpreted or converted to machine code on the fly.
C#Programs which have been completely converted to machine code prior to use may easily run 10 times faster than programs which are interpreted.
COBOLThere are no fixed rules as to which programming languages are processed in which way, and indeed most languages can be handled in any of these three ways. Many languages have been implemented in two or more of these ways. Traditionally compilers have been used for languages where performance is important (e.g. Fortran, '''C'''), interpreters have been used for languages where convenience of use is important (e.g. most scripting and command languages), and translation to intermediate code has been used when machine-independence is considered to be important (e.g. Java).
D==Assorted Languages==
EuclidInformation about some 2,500 programming languages can be found in 'The Language List'.<ref>{{cite web| url = http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm| title = The Language List | accessdate = 2012-03-16}}</ref>
FORTRANAccording to LangPop <ref>{{cite web| url = http://www.langpop.com/| title = Programming Language Popularity | accessdate = 2012-03-13}}</ref> the most popular programming languages as of 2012 are:
Galaxy:[[C]]:[[C++]]:C#:[[Java]]:[[Javascript]]:[[Perl]]:[[PHP]]:[[Python (programming language)|Python]]:Ruby:Shell:[[SQL]]:Visual Basic
IITRANA similar list, which [[Java]] as the most popular programming language, was published for 2011.<ref>http://www.eweek.com/c/a/Application-Development/Java-C-C-Top-18-Programming-Languages-for-2011-480790/?kc=EWKNLBOE12242010FEA1</ref>
JavaAccording to Professor Alfred V. Aho <ref>{{cite web| url = http://www.google.co.uk/url?sa=t&rct=j&q=influential+programming+languages&source=web&cd=9&ved=0CGkQFjAI&url=http%3A%2F%2Fwww1.cs.columbia.edu%2F~sedwards%2Fclasses%2F2002%2Fw4995-02%2Faho.pdf&ei=lyNhT9LcCoTX0QWi6qihBw&usg=AFQjCNHlnXcrb-ExmOXpx9O81GWQ2ZvU3w| title = Trends in Programming Language Design | accessdate = 2012-03-14}}</ref> The most influential high-level programming languages have been (in approximate order of development):
:[[JavascriptFORTRAN]]showed that a useful high-level language was possible. :COBOL provided a language especially for business use.:LISP provided a language suitable for symbol processing.:Algol 60 was the first block-structured language and set a new standard in language definition (Backus-Naur form).::Algol 60 was described by Edsger Dijkstra, as "a great improvement on many of its successors".:[[BASIC]] was the first language used interactively with multiple simultaneous users.:Simula 67 was the first object-oriented language.:[[C]] showed that operating systems and compilers could be written in a high-level language.
Jovial LISP Modula 2 MUMPS Oberon==Prescient Quotes on Police State Programming Surveillance==* "The progress of [[Pascalscience]]in furnishing the [[big government|government]] with means of [[espionage]] is not likely to stop with [[wiretap]]ping. Ways may some day be developed by which the [[Police state|government]], without removing papers from [[hard disk|secret drawers]], can reproduce them in [[Foreign Intelligence Surveillance Court|court]], and by which it will be enabled to expose to a [[jury]] the most intimate occurrences of the home. Advances in the [[computer science|psychic and related sciences]] may bring means of exploring unexpressed beliefs, thoughts and emotions. 'That places the [[liberty]] of every [[citizen|man]] in the hands of every [[tyrant|petty officer]]' was said by James Otis of much lesser [[tyranny|intrusions]] than these. 1 To Lord Camden a far slighter intrusion seemed '[[subversive]] of all the comforts of society.' Can it be that the [[Constitution]] affords no [[Right to Privacy|protection]] against such invasions of [[Fourth Amendment|individual security]]?" Perl PHP PL/I Prolog ** [[Python Louis Brandeis]]''' (programming language1856-1941)|Python, [[United States Supreme Court]] RPG Sirius SmallTalk SNOBOL YACC[[Associate Justice]] Dissenting, ''[[Olmstead v. United States]]'', 277 U.S. 438 (1928).
==References==
[http://www.princeton.edu/~ferguson/adw/programming_languages.shtml The History of Computer Programming Languages][http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm The Language List]{{reflist|2}}
[[Category:Information technologyTechnology]]
[[Category:Computer Science]]
Block, SkipCaptcha, bot, edit
57,719
edits