Programming language – link to Error

It is not possible to add the new link because it would replace an existing, longer link.

Line 5: Line 5:
[[File:C Hello World Program.png|thumb|right|upright=1.3|The [[source code]] for a computer program in [[C (programming language)|C]]. The gray lines are [[comment (computer programming)|comments]] that explain the program to humans. When [[compiled]] and [[Execution (computing)|run]], it will give the output "[["Hello, World!" program|Hello, world!]]".]]
[[File:C Hello World Program.png|thumb|right|upright=1.3|The [[source code]] for a computer program in [[C (programming language)|C]]. The gray lines are [[comment (computer programming)|comments]] that explain the program to humans. When [[compiled]] and [[Execution (computing)|run]], it will give the output "[["Hello, World!" program|Hello, world!]]".]]
A '''programming language''' is a system of notation for writing [[computer program]]s.<ref name="Aaby 2004">{{cite book |last=Aaby |first=Anthony |url=http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/intro.htm |title=Introduction to Programming Languages |year=2004 |access-date=29 September 2012 |archive-url=https://web.archive.org/web/20121108043216/http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/intro.htm |archive-date=8 November 2012 |url-status=dead}}</ref>
A '''programming language''' is a system of notation for writing [[computer program]]s.<ref name="Aaby 2004">{{cite book |last=Aaby |first=Anthony |url=http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/intro.htm |title=Introduction to Programming Languages |year=2004 |access-date=29 September 2012 |archive-url=https://web.archive.org/web/20121108043216/http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/intro.htm |archive-date=8 November 2012 |url-status=dead}}</ref>
Programming languages are described in terms of their [[Syntax (programming languages)|syntax]] (form) and [[semantics (computer science)|semantics]] (meaning), usually defined by a [[formal language]]. Languages usually provide features such as a [[type system]], [[Variable (computer science)|variables]], and mechanisms for [[Exception handling (programming)|error handling]]. An [[Programming language implementation|implementation]] of a programming language is required in order to [[Execution (computing)|execute]] programs, namely an [[Interpreter (computing)|interpreter]] or a [[compiler]]. An interpreter directly executes the source code, while a [[compiler]] produces an [[executable]] program.
Programming languages are described in terms of their [[Syntax (programming languages)|syntax]] (form) and [[semantics (computer science)|semantics]] (meaning), usually defined by a [[formal language]]. Languages usually provide features such as a [[type system]], [[Variable (computer science)|variables]], and mechanisms for [[error]] handling. An [[Programming language implementation|implementation]] of a programming language is required in order to [[Execution (computing)|execute]] programs, namely an [[Interpreter (computing)|interpreter]] or a [[compiler]]. An interpreter directly executes the source code, while a [[compiler]] produces an [[executable]] program.


[[Computer architecture]] has strongly influenced the design of programming languages, with the most common type ([[imperative languages]]—which implement operations in a specified order) developed to perform well on the popular [[von Neumann architecture]]. While early programming languages were closely tied to the [[Computer hardware|hardware]], over time they have developed more [[abstraction (computer science)|abstraction]] to hide implementation details for greater simplicity.
[[Computer architecture]] has strongly influenced the design of programming languages, with the most common type ([[imperative languages]]—which implement operations in a specified order) developed to perform well on the popular [[von Neumann architecture]]. While early programming languages were closely tied to the [[Computer hardware|hardware]], over time they have developed more [[abstraction (computer science)|abstraction]] to hide implementation details for greater simplicity.