Content deleted Content added
m Reverted edits by 197.232.120.108 (talk) (HG) (3.4.13) |
Correction. Tags: Visual edit Mobile edit Mobile web edit |
||
(6 intermediate revisions by 4 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 15 ⟶ 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. For example, [[COBOL]], [[Fortran]], and [[Lisp (programming language)|Lisp]] were created as DSLs (for business processing, numeric computation, and symbolic processing), but became
General Purpose programming languages are all [[Turing completeness|Turing
=== Advantages and disadvantages ===
Line 25 ⟶ 24:
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 ([[C Sharp (programming language)|C#]]) and unfamiliar with the DSL ([[Extensible Application Markup Language|XAML]]). Ultimately, users of this specific ___domain-specific language performed better by a factor of 15%, even though they were more familiar with GPL, warranting further research.<ref name=":0" />
== Examples ==
Line 32 ⟶ 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 64 ⟶ 62:
* [[F Sharp (programming language)|F#]]
* [[Go (programming language)|Go]]
* [[Harbour
* [[
* [[Java (programming language)|Java]]
* [[
* [[Julia (programming language)|Julia]]
* [[Kotlin (programming language)|Kotlin]]
Line 88 ⟶ 86:
* [[V (programming language)|V]]
* [[Visual Basic]]
* [[Visual Basic (.NET)]]
* [[Zig (programming language)|Zig]]{{div col end}}
|