Programming language: Difference between revisions

[accepted revision][accepted revision]
Content deleted Content added
Squoop (talk | contribs)
top: Use a more authoritatively sourced lede.
Tags: Mobile edit Mobile app edit Android app edit App section source
Squoop (talk | contribs)
top: Add source for paragraph about implementation strategies.
Tags: Mobile edit Mobile app edit Android app edit App section source
Line 7:
A '''programming language''' is an artificial language for expressing [[computer program|computer programs]].<ref>{{Cite ISO standard|title=Information technology — Vocabulary|csnumber=63598}}</ref>
 
Programming languages typically allow software to be [[Software development|written]] in a [[Human-readable|human readable]] manner. In order to [[Execution (computing)|execute]] a program, it is traditionally either [[compiler|compiled]] to [[machine code]] or directly [[Interpreter (computing)|interpreted]]. However this distinction is blurred by technologies such as [[just-in-time compilation]] and [[bytecode]] interpreters.{{Citation needed}}
 
[[Execution (computing)|Execution]] of a program is requires an [[Programming language implementation|implementation]]. There are two main approaches for implementing a programming language, [[Compiler|compilation]], where programs are compiled to ahead-of-time to [[machine code]], and [[Interpreter (computing)|interpretation]], where programs are directly executed. In addition to these two extremes, hybrid approaches such as [[just-in-time compilation]] and [[bytecode]] interpreters also exist.<ref>{{Cite book|title=Concepts of Programming Languages|last=Sebasta|first=Robert W.|publisher=Pearson|year=2023|isbn=978-1-292-43682-1|edition=12th global|pages=46-51|language=en}}</ref>
 
[[Computer architecture]] has strongly influenced the design of programming languages, with the most common type ([[imperative languages]]) developed to perform well on the popular [[von Neumann architecture]]. While early programming languages were closely tied to the [[Computer hardware|hardware]], modern languages often hide hardware details via [[abstraction (computer science)|abstraction]] in an effort to enable better software with less effort.{{Citation needed}}