Content deleted Content added
Correction. Tags: Visual edit Mobile edit Mobile web edit |
|||
(21 intermediate revisions by 15 users not shown) | |||
Line 1:
{{Short description|Programming language used in many domains}}
In [[computer software]], a '''general-purpose programming language''' ('''GPL''') is a [[programming language]] for building [[software]] in a wide variety of application [[Domain (software engineering)|___domain]]s. Conversely, a [[Domain-specific language|___domain-specific programming language]] (DSL) is used within a specific area. For example, [[Python (programming language)|Python]] is a GPL, while [[SQL]] is a DSL for [[Query language|querying relational databases]].
Line 13 ⟶ 14:
== GPL vs. DSL ==
The distinction between general-purpose programming languages and ___domain-specific programming languages is not always clear.<ref>{{Cite journal |last=van Deursen |first=Arie |last2=Klint |first2=Paul |last3=Visser |first3=Joost |date=2000 |title=Domain-Specific Languages: An Annotated Bibliography |journal=ACM SIGPLAN Notices |volume=35 |issue=6 |pages=26-36 |citeseerx=10.1.1.33.8207 |doi=10.1145/352029.352035}}</ref> A programming language may be created for a specific task, but used beyond that original ___domain and thus be considered a general purpose programming language.
General Purpose programming languages are all [[Turing completeness|Turing
=== Advantages and disadvantages ===
General-purpose programming languages are more commonly used by programmers.
Additionally, for many tasks (e.g., statistical analysis, machine learning, etc.) there are libraries that are extensively tested and optimized. Theoretically, the presence of these libraries should bridge the gap between general-purpose and ___domain-specific languages.<ref name=":0" />
An empirical study in 2010 sought to measure problem-solving and productivity between GPLs and DSLs by giving users problems who were familiar with the GPL ([[
== Examples ==
Line 29 ⟶ 30:
The predecessor to [[C (programming language)|C]], [[B (programming language)|B]], was developed largely for a specific purpose: [[systems programming]].<ref>{{Cite web |last=Thompson |first=K. |date=1972-01-07 |title=Cover sheet for technical memorandum |url=https://www.bell-labs.com/usr/dmr/www/kbman.pdf |url-status=live |archive-url=https://web.archive.org/web/20150611114427/https://www.bell-labs.com/usr/dmr/www/kbman.pdf |archive-date=2015-06-11 |access-date=2022-06-03 |publisher=[[Bell Telephone Laboratories]]}}</ref> By contrast, C has found use in a variety of computational domains, such as [[operating system]]s, [[device driver]]s, [[application software]], and [[embedded system]]s.
C is suitable for use in a variety of areas because of its generality. It provides economy of expression, flow control, data structures, and a rich set of operators, but does not constrain its users to use it in any one context.<ref>{{Cite book |last=W. |first=Kernighan, Brian |url=http://worldcat.org/oclc/1004153413 |title=The C programming language |date=2016 |publisher=Prentice Hall |isbn=978-0-13-110370-2 |oclc=1004153413}}</ref> As a result, though it was first used by its creators to rewrite the kernel of the [[Unix]] operating system,<ref>{{Cite journal |last=Ritchie |first=Dennis |date=April 1993 |title=The development of the C language |url=https://www.bell-labs.com/usr/dmr/www/chist.pdf |journal=ACM SIGPLAN Notices|volume=28 |issue=3 |pages=201–208 |doi=10.1145/155360.155580 }}</ref> it was easily adapted for use in application development, embedded systems (e.g., microprocessor programming), video games (e.g., [[Doom (franchise)|Doom]]), and so on. Today, C remains one of the most popular and widely
=== C++ ===
Conceived as an extension to C, [[C++]] introduced [[Object-oriented programming|object-oriented]] features, as well as other conveniences like references, operator overloading, and default arguments. Like C, C++'s generality allowed it to be used in a wide range of areas. While its
=== Python ===
[[Python (programming language)|Python]] was conceived as a language that emphasized code readability and extensibility.<ref>{{Cite web |title=artima
*
*
*
*
==List==
Line 61 ⟶ 62:
* [[F Sharp (programming language)|F#]]
* [[Go (programming language)|Go]]
* [[Harbour
* [[
* [[Java (programming language)|Java]]
* [[
* [[Julia (programming language)|Julia]]
* [[Kotlin (programming language)|Kotlin]]
Line 83 ⟶ 84:
* [[Swift (programming language)|Swift]]
* [[Tcl]]
* [[V (programming language)|V]]
* [[Visual Basic]]
* [[Visual Basic (.NET)]]
* [[Zig (programming language)|Zig]]{{div col end}}
==References==▼
<references responsive="0" />▼
==See also==
* [[General-purpose markup language]]
* [[General-purpose modeling language]]
▲==References==
▲<references responsive="0" />
[[Category:Programming languages]]
|