[accepted revision] | [accepted revision] |
Content deleted Content added
→top: Use a more authoritatively sourced lede. Tags: Mobile edit Mobile app edit Android app edit App section source |
→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.
[[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}}
|