Share to: share facebook share twitter share wa share telegram print page

General-purpose programming language

In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains. Conversely, a domain-specific programming language (DSL) is used within a specific area. For example, Python is a GPL, while SQL is a DSL for querying relational databases.

History

Early programming languages were designed for scientific computing (numerical calculations) or commercial data processing, as was computer hardware. Scientific languages such as Fortran and Algol supported floating-point calculations and multidimensional arrays, while business languages such as COBOL supported fixed-field file formats and data records. Much less widely used were specialized languages such as IPL-V and LISP for symbolic list processing; COMIT for string manipulation; APT for numerically controlled machines. Systems programming requiring pointer manipulation was typically done in assembly language, though JOVIAL was used for some military applications.[1]

IBM's System/360, announced in 1964, was designed as a unified hardware architecture supporting both scientific and commercial applications, and IBM developed PL/I for it as a single, general-purpose language that supported scientific, commercial, and systems programming. Indeed, a subset of PL/I was used as the standard systems programming language for the Multics operating system.

Since PL/I, the distinction between scientific and commercial programming languages has diminished, with most languages supporting the basic features required by both, and much of the special file format handling delegated to specialized database management systems.

Many specialized languages were also developed starting in the 1960s: GPSS and Simula for discrete event simulation; MAD, BASIC, Logo, and Pascal for teaching programming; C for systems programming; JOSS and APL\360 for interactive programming.[1]

GPL vs. DSL

The distinction between general-purpose programming languages and domain-specific programming languages is not always clear.[2] 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 were created as DSLs (for business processing, numeric computation, and symbolic processing), but became GPL's over time.[dubiousdiscuss] Inversely, a language may be designed for general use but only applied in a specific area in practice.[3] A programming language that is well suited for a problem, whether it be general-purpose language or DSL, should minimize the level of detail required while still being expressive enough in the problem domain.[4] As the name suggests, general-purpose language is "general" in that it cannot provide support for domain-specific notation while DSLs can be designed in diverse problem domains to handle this problem.[4] General-purpose languages are preferred to DSLs when an application domain is not well understood enough to warrant its own language. In this case, a general-purpose language with an appropriate library of data types and functions for the domain may be used instead.[5] While DSLs are usually smaller than GPL in that they offer a smaller range of notations of abstractions, some DSLs actually contain an entire GPL as a sublanguage. In these instances, the DSLs are able to offer domain-specific expressive power along with the expressive power of GPL.[6]

General Purpose programming languages are all Turing complete, meaning that they can theoretically solve any computational problem. Domain-specific languages are often similarly Turing complete but are not exclusively so.

Advantages and disadvantages

General-purpose programming languages are more commonly used by programmers. According to a study, C, Python, and Java were the most commonly used programming languages in 2021.[7] One argument in favor of using general-purpose programming languages over domain-specific languages is that more people will be familiar with these languages, overcoming the need to learn a new language.

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.[4]

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#) and unfamiliar with the DSL (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.[4]


Examples

C

The predecessor to C, B, was developed largely for a specific purpose: systems programming.[8] By contrast, C has found use in a variety of computational domains, such as operating systems, device drivers, application software, and embedded systems.

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.[9] As a result, though it was first used by its creators to rewrite the kernel of the Unix operating system,[10] it was easily adapted for use in application development, embedded systems (e.g., microprocessor programming), video games (e.g., Doom), and so on. Today, C remains one of the most popular and widely-used programming languages.[11]

C++

Conceived as an extension to C, C++ introduced 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 C++'s core area of application is in systems programming (because of C++'s ability to grant access to low-level architecture),[12] it has been used extensively to build desktop applications, video games, databases, financial systems, and much more.[13] Major software and finance companies, such as Microsoft, Apple, Bloomberg, and Morgan Stanley, still widely use C++ in their internal and external applications.[13]

Python

Python was conceived as a language that emphasized code readability and extensibility.[14][15] The former allowed non-software engineers to easily learn and write computer programs, while the latter allowed domain specialists to easily create libraries suited to their own use cases. For these reasons, Python has been used across a wide range of domains.

Below are some of the areas where Python is used:[16]

  • Web Development: Frameworks like Django and Flask have allowed web developers to create robust web servers that can also take advantage of the wider Python ecosystem.
  • Science and Academia: Scientific and data libraries, like SciPy and Pandas, have enabled Python's use in scientific research.[17]
  • Machine Learning: Libraries like scikit-learn and Tensorflow have increased the accessibility of machine learning to developers.[18]
  • General Software Development: Developing user applications, web scraping programs, games, and other general software.

List

The following are some general-purpose programming languages:

See also

References

  1. ^ a b Jean E. Sammet, "Programming Languages: History and Future", Communications of the ACM 15:7:601-610 (July 1972) doi:10.1145/361454.361485
  2. ^ van Deursen, Arie; Klint, Paul; Visser, Joost (2000). "Domain-Specific Languages: An Annotated Bibliography". ACM SIGPLAN Notices. 35 (6): 26–36. CiteSeerX 10.1.1.33.8207. doi:10.1145/352029.352035.
  3. ^ Berry, Gerard (May 2006). "Real time programming: special purpose or general purpose languages". HAL Open Science.
  4. ^ a b c d Kosar, Tomaz (May 2010). "Comparing General-Purpose and Domain-Specific Languages: An Empirical Study" (PDF). Computer Science and Information Systems. 7 (2): 247–264. doi:10.2298/CSIS1002247K.
  5. ^ van Deursen, Arie (December 1998). "Little languages: little maintenance?". Journal of Software Maintenance: Research and Practice. 10 (2): 75–92. doi:10.1002/(SICI)1096-908X(199803/04)10:2<75::AID-SMR168>3.0.CO;2-5.
  6. ^ van Deursen, Arie; Klint, Paul; Visser, Joost (June 2000). "Domain-specific languages: an annotated bibliography". ACM SIGPLAN Notices. 35 (6): 26–36. doi:10.1145/352029.352035. ISSN 0362-1340. S2CID 1049872.
  7. ^ "The Most Popular Programming Languages - 1965/2021 - New Update - Statistics and Data". statisticsanddata.org. Retrieved 2022-06-03.
  8. ^ Thompson, K. (1972-01-07). "Cover sheet for technical memorandum" (PDF). Bell Telephone Laboratories. Archived (PDF) from the original on 2015-06-11. Retrieved 2022-06-03.
  9. ^ W., Kernighan, Brian (2016). The C programming language. Prentice Hall. ISBN 978-0-13-110370-2. OCLC 1004153413.{{cite book}}: CS1 maint: multiple names: authors list (link)
  10. ^ Ritchie, Dennis (April 1993). "The development of the C language" (PDF). ACM SIGPLAN Notices. 28 (3): 201–208. doi:10.1145/155360.155580.
  11. ^ "TIOBE Index". TIOBE. Retrieved 2022-06-03.
  12. ^ Stroustrup, Bjarne (1995). The C++ Programming Language. Addison-Wesley.
  13. ^ a b "C++ Applications". www.stroustrup.com. Retrieved 2022-06-03.
  14. ^ "artima - The Making of Python". www.artima.com. Retrieved 2022-06-03.
  15. ^ "General Python FAQ — Python 3.10.4 documentation". docs.python.org. Retrieved 2022-06-03.
  16. ^ "Applications for Python". Python.org. Retrieved 2022-06-03.
  17. ^ "Programming Languages Popularity in 12,086 Research Papers – Quantifying Health". Retrieved 2022-06-03.
  18. ^ Pedregosa, Fabian (2011). "Scikit-learn: Machine learning in Python" (PDF). The Journal of Machine Learning Research. 12: 2825–2830. arXiv:1201.0490. Bibcode:2011JMLR...12.2825P.

Read other articles:

さいとし 西都市 西都原古墳群の鬼の窟古墳市庁舎位置 西都市旗1968年10月23日制定 西都市章1961年4月1日制定 国 日本地方 九州地方都道府県 宮崎県市町村コード 45208-4法人番号 4000020452084 面積 438.79km2総人口 27,444人 [編集](推計人口、2023年11月1日)人口密度 62.5人/km2隣接自治体 宮崎市、児湯郡高鍋町、木城町、新富町、西米良村、東臼杵郡美郷町、椎葉村、東諸県郡国

Texas Centennial Exposition Buildings (1936--1937)Daftar Kawasan Bersejarah Nasional di ASU.S. National Historic Landmark{{{designated_other1_name}}} The Centennial Building in Fair ParkLetak:Bounded by Texas and Pacific RR, Pennsylvania, Second, and Parry AvesDallasKoordinat:32°46′55″N 96°45′56″W / 32.78194°N 96.76556°W / 32.78194; -96.76556Koordinat: 32°46′55″N 96°45′56″W / 32.78194°N 96.76556°W / 32.78194; -96.76556Lua...

Belén Funes Belén Funes en 2020Información personalNacimiento 1984BarcelonaNacionalidad EspañolaInformación profesionalOcupación Directora de cine y guionista[editar datos en Wikidata]Belén Funes (Barcelona, 1984) es una directora cinematográfica catalana.[1]​ Creció en Ripollet y, tras estudiar cine y audiovisuales en ESCAC y hacer un master de guion en Cuba, en la escuela de San Antonio de los Baños, se dedicó durante unos años a trabajar de ayudante de direcció...

Lorenzo Wright campeão olímpico Atletismo Modalidade 100 m, 200 m, salto em distância Nascimento 9 de dezembro de 1926Detroit, EUA Nacionalidade norte-americano Morte 27 de março de 1972 (45 anos)Detroit, EUA Medalhas Jogos Olímpicos Ouro Londres 1948 4x100 m Lorenzo Christopher Wright (Detroit, 9 de dezembro de 1926 – Detroit, 27 de março de 1972) foi um velocista e saltador norte-americano, campeão olímpico em Londres 1948. Primariamente um atleta do salto em distância ...

Nanase Nishino西野 七瀬Nanase Nishino di Taiwan pada 2014Informasi latar belakangNama lain Nāchan[1] Nanasemaru Lahir25 Mei 1994 (umur 29)AsalPrefektur Osaka, JepangGenreJ-popPekerjaanIdola, penyanyi, peragawanTahun aktif2011-sekarangArtis terkaitNogizaka46 Nanase Nishino (Jepang: 西野 七瀬code: ja is deprecated , Hepburn: Nishino Nanase, kelahiran 25 Mei 1994 di Prefektur Osaka) adalah seorang idola Jepang, model dan anggota grup perempuan idola Jepang Nogizaka46.[2...

Cigarettes et chocolat chaud Données clés Réalisation Sophie Reine Scénario Sophie Reine Acteurs principaux Gustave KervernCamille Cottin Héloïse Dugas Sociétés de production Mandarin Cinéma Pays de production France Genre Comédie dramatique Durée 98 minutes Sortie 2016 Pour plus de détails, voir Fiche technique et Distribution Cigarettes et chocolat chaud est une comédie dramatique française réalisée par Sophie Reine, sortie en 2016. Le titre du film a été inspiré à la r...

Eindklassement Algemeen klassement Giovanni Brunero 137h 55' 59 Tweede Alfredo Binda + 15' 28 Derde Arturo Bresciani + 54' 41 Vierde Ermanno Vallazza + 1h 11' 38 Vijfde Giuseppe Enrici + 1h 15' 57 Zesde Pierino Bestetti + 1h 26' 00 Zevende Gianbattista Gilli + 2h 02' 52 Achtste Angelo Gremo + 3h 16' 58 Negende Michele Robotti + 3h 41' 39 Tiende Ezio Cortesia + 3h 59' 18 Rode Lantaarn Giuseppe Chiesa (40e) + 27h 26' 56 Ploegenklassement Legnano ...h ..' .. Tweede ... - Derde ... - De 14e editi...

The Honourable SirIgnatius KilageGCMG CBEGubernur Jenderal Papua Nugini ke-44Masa jabatan1 Maret 1989 – 31 Desember 1989Penguasa monarkiElizabeth IIPerdana MenteriRabbie NamaliuPendahuluKingsford DibelaPenggantiVincent Eri Informasi pribadiLahir(1941-06-12)12 Juni 1941Meninggal31 Desember 1989(1989-12-31) (umur 48)Sunting kotak info • L • B Sir Ignatius Kilage GCMG CBE (12 Juli 1941 – 31 Desember 1989) adalah politisi Papua Nugini yang...

الريشة الطائرة في الألعاب الأولمبية الصيفيةالهيئة الإداريةالاتحاد الدولي لكرة الريشةالمنافسات5 (رجال: 2; سيدات: 2; مختلطة: 1)الألعاب 1896 1900 1904 1908 1912 1920 1924 1928 1932 1936 1948 1952 1956 1960 1964 1968 1972 1976 1980 1984 1988 1992 1996 2000 2004 2008 2012 2016 2020 ملاحظة: سنوات الرياضة الترويجية او الاستعراضية موضحة بالأرقام

ÉlancourtNegaraPrancisArondisemenRambouilletAntarkomuneCommunautéd'agglomérationde Saint-Quentin-en-Yvelines Élancourt merupakan sebuah komune di pinggiran barat Paris, Prancis. Terletak 30.6 km (19.0 mil) dari pusat kota Paris, di kota baru Saint-Quentin-en-Yvelines. Angkutan Distrik Clef de Saint-Pierre dan bukit Élancourt Gereja Saint-Médard La Commanderie de la Villedieu Élancourt tidak dilayani oleh stasiun Métro de Paris, RER, atau jaringan rel pinggiran. Stasiun terdekat d...

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: 神奈川県立多摩高等学校 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年4月) 神奈川県立多摩高等学校 北緯35...

Chief executives of the unincorporated U.S. territory This article appears to contradict the articles Richard P. Leary, William Edwin Safford, Seaton Schroeder, William Swift, William Elbridge Sewell, Raymond Stone, George Leland Dyer and Luke McNamee. Please discuss at the talk page and do not remove this message until the contradictions are resolved. (October 2020) Governor of GuamI Maga'låhi / Maga'håga GuåhanTerritory sealIncumbentLou Leon Guerrerosince January 7, 2019StyleThe Hon...

CITIC Group Corporation Ltd.CITIC Group's headquarters in Beijing, China.Nama asli中国中信集团有限公司JenisBUMN TiongkokIndustrikonglomerasiDidirikan1979; 44 tahun lalu (1979)PendiriRong YirenKantorpusatBeijing, TiongkokWilayah operasiRepublik Rakyat TiongkokTokohkunciChang Zhenming (Ketua)Jiong Wang (Wakil Ketua, Presiden, Anggota Komite Eksekutif dan Anggota Komite Nominasi)Jianzhong Dou (Direktur Eksekutif dan Anggota Komite Eksekutif)Wei Min Ju (Kepala Bagian Keuangan)Produ...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. 10 Days Before the WeddingSutradaraAmr GamalProduserDitulis oleh Amr Gamal PemeranHadeel AbdulHakeemTanggal rilis 21 Agustus 2018 (2018-08-21) Durasi122 menitNegara Yaman Bahasa Arab 10 Days Before the Wedding adalah film Yaman bergenre drama pro...

カイザー・フリードリヒIII世級戦艦 竣工当時の「カイザー・フリードリヒIII世」。 艦級概観 艦種 戦艦 艦名 君主の名 前級 ブランデンブルク級 次級 ヴィッテルスバッハ級 性能諸元 排水量 常備:13,208 トン満載:11,785 トン 全長 125.3m 水線長 120.9m 全幅 20.4m 吃水 8.0m 機関 海軍式石炭専焼水管缶10基+三段膨張式三気筒レシプロ機関3基3軸推進 最大出力 13,000hp 最大速力 17.5...

Tobias Pötzelsberger, 2020 Tobias Pötzelsberger (* 11. Mai 1983[1] in Oberösterreich) ist ein österreichischer Journalist und Singer-Songwriter. Inhaltsverzeichnis 1 Leben 2 Journalismus 3 Auszeichnungen 4 Musik 5 Weblinks 6 Einzelnachweise Leben Pötzelsberger wuchs in Lochen am See, einer Gemeinde im Bezirk Braunau am Inn, auf.[2] Im Jahr 2008 schloss er sein Studium der Politikwissenschaft an der Universität Salzburg ab. Seine Diplomarbeit widmete sich den Auswirkungen...

Unincorporated community in the state of Oregon, United States Unincorporated community in Oregon, United StatesScholls, OregonUnincorporated communityScholls GrangeScholls, OregonLocation within the state of OregonShow map of OregonScholls, OregonScholls, Oregon (the United States)Show map of the United StatesCoordinates: 45°24′29″N 122°55′20″W / 45.40806°N 122.92222°W / 45.40806; -122.92222CountryUnited StatesStateOregonCountyWashingtonElevation151 f...

Stem cells that give rise to other blood cells This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (August 2015) (Learn how and when to remove this template message) Hematopoietic stem cellOverview of normal human haematopoiesisDetailsPrecursorHemangioblastSystemHematopoietic systemLocationBone marrowFunctionStem cells that give rise to other blood cellsIdentifiersLatinCellul...

Sierra del CarmenBoquillas CanyonHighest pointElevation2,720 m (8,920 ft)Prominence1,360 m (4,460 ft) Coordinates29°01′54″N 102°36′53″W / 29.03158°N 102.61473°W / 29.03158; -102.61473GeographySierra del Carmen CountryMexico, United StatesStateCoahuila, TexasParent rangeSierra Madre Oriental The Sierra del Carmen, also called the Sierra Maderas del Carmen, is a northern finger of the Sierra Madre Oriental in the state of Coahuil...

American baseball player (born 1983) Baseball player Kurt SuzukiSuzuki with the Washington Nationals in 2019CatcherBorn: (1983-10-04) October 4, 1983 (age 40)Wailuku, Hawaii, U.S.Batted: RightThrew: RightMLB debutJune 12, 2007, for the Oakland AthleticsLast MLB appearanceOctober 4, 2022, for the Los Angeles AngelsMLB statisticsBatting average.255Home runs143Runs batted in730 Teams Oakland Athletics (2007–2012) Washington Nationals (2012–2013) Oakland Ath...

Kembali kehalaman sebelumnya