Programming Language: Difference between revisions

Content added Content deleted
m (clean up)
(update links)
Line 8: Line 8:
* A programming language, according to [[The Other Wiki]], describes... "programs". These can either compute something, change the behavior of the machine directly, or offer a form of human-readable communication from the machine.
* A programming language, according to [[The Other Wiki]], describes... "programs". These can either compute something, change the behavior of the machine directly, or offer a form of human-readable communication from the machine.
* Scripting languages describe actions of a program as a supplement. In other words, they typically control programs.
* Scripting languages describe actions of a program as a supplement. In other words, they typically control programs.
* Markup languages such as HTML and XML describe how a document should look. Akin to "marking up" a paper in editing before finalizing it.
* Markup languages such as HTML and XML describe how a document should look. Akin to "marking up" a paper in editing before finalizing it.


== Concepts ==
== Concepts ==
A programming language has four basic elements to it:
A programming language has four basic elements to it:
* Symbols to hold data.
* Symbols to hold data.
* Operators that modify the data.
* Operators that modify the data.
* Conditional statements that control the flow of the program.
* Conditional statements that control the flow of the program.
* The ability to jump around in the program at will.
* The ability to jump around in the program at will.


Programs are written into source files, which can be compiled or assembled for later execution, or interpreted for execution right away. If there's something immediately wrong the source file, the compiler, assembler, or interpreter will complain until it's fixed.
Programs are written into source files, which can be compiled or assembled for later execution, or interpreted for execution right away. If there's something immediately wrong the source file, the compiler, assembler, or interpreter will complain until it's fixed.
Line 30: Line 30:


== High Level Languages ==
== High Level Languages ==
High level languages sacrifice performance and (arguably) flexibility for a human-friendly language. For example, you could write "x = 2" instead of "MOV x, 2". Along with the human readability, it also allows for ''[[Software Porting|portability]]'' as long as a compiler or interpreter exists for the platform.
High level languages sacrifice performance and (arguably) flexibility for a human-friendly language. For example, you could write "x = 2" instead of "MOV x, 2". Along with the human readability, it also allows for ''[[Software Porting|portability]]'' as long as a compiler or interpreter exists for the platform.


Source files written in high level languages are either compiled, which forms an executable to be run, or interpreted, which is translated into intermediate "bytecode" and executed on the fly by another software platform. Compiling allows programs to be code dense and thus perform well, but the source needs to be compiled for a different platform. Interpreting allows the source to be executed directly, but performance generally suffers.
Source files written in high level languages are either compiled, which forms an executable to be run, or interpreted, which is translated into intermediate "bytecode" and executed on the fly by another software platform. Compiling allows programs to be code dense and thus perform well, but the source needs to be compiled for a different platform. Interpreting allows the source to be executed directly, but performance generally suffers.
Line 69: Line 69:
* Java: Developed by Sun in the 90s as an interpreted language, but later extended to be JIT-compiled. It mostly started in web applications, but soon expanded to many platforms that could run the virtual machine. It's still widely used in web applications but also found itself as the platform for Android OS applications.
* Java: Developed by Sun in the 90s as an interpreted language, but later extended to be JIT-compiled. It mostly started in web applications, but soon expanded to many platforms that could run the virtual machine. It's still widely used in web applications but also found itself as the platform for Android OS applications.
* Objective-C: [[Mac OS|Apple's]] (originally NeXT's) [[X Meets Y|cross between]] C and Smalltalk. Originated in NeXTstep, but is now used mainly for Mac and iOS apps.
* Objective-C: [[Mac OS|Apple's]] (originally NeXT's) [[X Meets Y|cross between]] C and Smalltalk. Originated in NeXTstep, but is now used mainly for Mac and iOS apps.
* [[Python]]: Another interpreted language, used notably on UNIX and UNIX-like systems, which aims to be readable. Version 3 made several changes to the language that are often incompatible with older code, so for running older code version 2.7 is also maintained by the organization responsible for the official interpreter, the Python Software Foundation.
* [[Python (programming language)|Python]]: Another interpreted language, used notably on UNIX and UNIX-like systems, which aims to be readable. Version 3 made several changes to the language that are often incompatible with older code, so for running older code version 2.7 is also maintained by the organization responsible for the official interpreter, the Python Software Foundation.
* FORTRAN: The very first high-level language in existence, though some call its early incarnations little more than a symbolic assembler, as a lot of features that modern programmers now take for granted simply weren't yet invented back then. Developed by IBM's John Backus in 1954 for scientific calculations and [[Long Runner|is still used to this day for the very same goal]]. Recent versions are actually closer to C than to the original language.
* FORTRAN: The very first high-level language in existence, though some call its early incarnations little more than a symbolic assembler, as a lot of features that modern programmers now take for granted simply weren't yet invented back then. Developed by IBM's John Backus in 1954 for scientific calculations and [[Long Runner|is still used to this day for the very same goal]]. Recent versions are actually closer to C than to the original language.
* Lisp: Originally LISP, as in LISt Processor. Another early language, this time ''much'' higher level that the industry was ready to. Created by John McCarthy in 1955 as a research tool in the abstract algebra field and later found its use [[Instant AI, Just Add Water|in AI development]]. Another [[Long Runner]], which, although not as popular ''per se'', influenced basically ''all'' modern programming languages, especially scripting ones like [[Python]]. Is known for several rather [[Mind Screw|hard-to-bend-the-brain-around concepts]] like first order functions and closures, as well as for its idiosyncratic (or, as many say, non-existing) syntax that consists entirely of parentheses. Has evolved greatly with time. Popular dialects are Common Lisp and Scheme.
* Lisp: Originally LISP, as in LISt Processor. Another early language, this time ''much'' higher level that the industry was ready to. Created by John McCarthy in 1955 as a research tool in the abstract algebra field and later found its use [[Instant AI, Just Add Water|in AI development]]. Another [[Long Runner]], which, although not as popular ''per se'', influenced basically ''all'' modern programming languages, especially scripting ones like [[Python (programming language)|Python]]. Is known for several rather [[Mind Screw|hard-to-bend-the-brain-around concepts]] like first order functions and closures, as well as for its idiosyncratic (or, as many say, non-existing) syntax that consists entirely of parentheses. Has evolved greatly with time. Popular dialects are Common Lisp and Scheme.


An ordered list of the fifty most popular programming languages (updated monthly) may be found [http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html here]. This measures popularity based on search engine results, so [[Your Mileage May Vary|it may not line up with other definitions]] (e.g. there may be bias towards languages for which people currently need resources, rather than those being used for production code).
An ordered list of the fifty most popular programming languages (updated monthly) may be found [http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html here]. This measures popularity based on search engine results, so [[Your Mileage May Vary|it may not line up with other definitions]] (e.g. there may be bias towards languages for which people currently need resources, rather than those being used for production code).
Line 84: Line 84:
{{reflist}}
{{reflist}}
[[Category:How Video Game Specs Work]]
[[Category:How Video Game Specs Work]]
[[Category:Programming Language]]
[[Category:{{PAGENAME}}]]