In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application domains.
Bahasa pemrograman tujuan umum (general-purpose programming language; GPL) adalah bahasa pemrograman yang digunakan untuk membangun perangkat lunak dalam ragam domain aplikasi.
Conversely, a domain-specific programming language (DSL) is used within a specific area.
Sebagai kebalikan dari konsep ini, bahasa pemrograman spesifik domain (domain-specific language; DSL) digunakan untuk membangun perangkat lunak dalam domain tertentu.
Early programming languages were designed for scientific computing (numerical calculations) or commercial data processing, as was computer hardware.
Bahasa pemrograman masa awal dirancang secara khusus untuk melakukan proses komputasi ilmiah (kalkulasi numerik) atau pemrosesan data komersial, begitu juga dengan desain perangkat keras komputer saat itu.
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.
Bahasa pemrograman ilmiah seperti Fortran dan ALGOL mendukung perhitungan bilangan titik mengambang (floating-point) dan larik multidimensi (multidimensional array), sementara bahasa pemrograman bisnis seperti COBOL mendukung format berkas bidang tetap (fixed-field) dan rekord data.
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.
Contoh bahasa khusus lain seperti IPL-V dan LISP yang digunakan untuk pemrosesan senarai simbolik (symbolic list processing); COMIT melakukan manipulasi pada tipe data untai (string); dan APT untuk mesin yang dikendalikan secara numerik.
Systems programming requiring pointer manipulation was typically done in assembly language, though JOVIAL was used for some military applications.
Pemrograman sistem yang memerlukan manipulasi pointer biasanya dilakukan dalam bahasa rakitan (assembly), meskipun JOVIAL digunakan untuk tujuan tersebut dalam aplikasi militer.
Indeed, a subset of PL/I was used as the standard systems programming language for the Multics operating system.
Pada perkembangan berikutnya, subhimpunan dari bahasa PL/I digunakan sebagai standar bahasa pemrograman sistem untuk sistem operasi Multics.
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.
Meskipun demikian, tetap banyak bahasa pemrograman khusus tetap dikembangkan mulai tahun 1960an: GPSS dan Simula untuk simulasi kejadian diskrit; MAD, BASIC, Logo, dan Pascal untuk keperluan pengajaran pemrograman; C untuk pemrograman sistem; JOSS dan APL\360 untuk pemrograman interaktif.
The distinction between general-purpose programming languages and domain-specific programming languages is not always clear.
Pembedaan antara bahasa pemrograman tujuan umum dan tujuan khusus domain tidak selalu jelas.
For example, COBOL, Fortran, and Lisp were created as DSLs (for business processing, numeric computation, and symbolic processing), but became GPLs over time.
Misalnya, pada awalnya COBOL, Fortran, dan Lisp didesain sebagai DSL (untuk pemrosesan bisnis, perhitungan numerik, dan pemrosesan simbolik), tetapi seiring berjalannya waktu digunakan di domain berbeda sehingga digolongkan menjadi GPL.
Inversely, a language may be designed for general use but only applied in a specific area in practice.
Sebaliknya, suatu bahasa pemrograman bisa saja dirancang untuk penggunaan umum tetapi pada pada praktiknya hanya diterapkan pada area tertentu.
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.
Suatu bahasa pemrograman yang cocok untuk memecahkan suatu masalah, baik itu bahasa tujuan umum atau DSL, harus mampu meminimalkan tingkat detail yang diperlukan tetapi tetap cukup ekspresif untuk bekerja di domain masalah.
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.
Seperti yang tersirat dalam namanya, bahasa tujuan umum bersifat “umum” karena tidak memiliki dukungan untuk notasi yang dipakai dalam domain yang spesifik sementara DSL dapat dirancang dalam berbagai domain masalah untuk menangani masalah ini.
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.
Walaupun bahasa DSL biasanya berukuran lebih kecil daripada GPL karena menawarkan rentang notasi abstraksi yang lebih kecil, beberapa DSL sebenarnya memuat keseluruhan pustaka GPL sebagai subbahasa.
In these instances, the DSLs are able to offer domain-specific expressive power along with the expressive power of GPL.
Dalam kasus ini, DSL mampu menawarkan kekuatan ekspresif untuk mengolah masalah domain spesifik bersama dengan kekuatan ekspresif GPL.
General Purpose programming languages are all Turing-complete, meaning that they can theoretically solve any computational problem.
Bahasa pemrograman tujuan umum seluruhnya bersistem Turing lengkap, yang berarti secara teoretis mereka dapat digunakan memecahkan masalah komputasi apa pun.
Domain-specific languages are often similarly Turing-complete but are not exclusively so.
Bahasa-bahasa domain spesifik sering kali bersistem Turing lengkap tetapi tidak secara eksklusif demikian.
General-purpose programming languages are more commonly used by programmers.
Bahasa pemrograman tujuan umum lebih sering digunakan oleh para pemrogram.
According to a study, C, Python, and Java were the most commonly used programming languages in 2021.
Menurut sebuah penelitian, bahasa C, Python, dan Java adalah bahasa pemrograman yang paling sering digunakan pada tahun 2021.
Additionally, for many tasks (e.g., statistical analysis, machine learning, etc.)
Selain itu, untuk banyak tugas (seperti analisis statistik, pemelajaran mesin, dll.)
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).
Suatu studi empiris pada tahun 2010 berupaya membandingkan tingkatan kemampuan pemecahan masalah dan produktivitas yang dilakukan baik antara GPL atau DSL.
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.
Hasilnya, pengguna bahasa DSL ini memperoleh kinerja yang lebih baik sebesar 15%, meskipun mereka lebih familiar dengan GPL, sehingga memerlukan penelitian lebih lanjut.
By contrast, C has found use in a variety of computational domains, such as operating systems, device drivers, application software, and embedded systems.
Sebaliknya, bahasa C telah digunakan dalam berbagai domain komputasi, seperti sistem operasi, pemacu peranti (device drivers), perangkat lunak aplikasi, dan sistem terbenam (embedded systems).
As a result, though it was first used by its creators to rewrite the kernel of the Unix operating system, it was easily adapted for use in application development, embedded systems (e.g., microprocessor programming), video games (e.g., Doom), and so on.
Alhasil, meskipun pertama kali digunakan oleh perancangnya untuk menulis ulang kernel pada sistem operasi Unix, bahasa C dapat kemudian diadaptasi untuk pengembangan aplikasi, pengembangan sistem terbenam (misalnya, dalam pemrograman mikroprosesor), atau pengembangan permainan video (misalnya, digunakan dalam pengembangan seri permainan Doom), dan seterusnya.
Today, C remains one of the most popular and widely used programming languages.
Saat ini, C tetap menjadi salah satu bahasa pemrograman yang
Conceived as an extension to C, C++ introduced object-oriented features, as well as other conveniences like references, operator overloading, and default arguments.
Dirancang sebagai ekstensi dari bahasa C, bahasa pemrograman C++ memperkenalkan fitur dengan paradigma berorientasi objek, dan fitur lain seperti referensi, pelebihan muatan operator (operator overloading), dan argumen-argumen bawaan (default arguments).
Major software and finance companies, such as Microsoft, Apple, Bloomberg, and Morgan Stanley, still widely use C++ in their internal and external applications.
Perusahaan perangkat lunak dan perusahaan keuangan besar, seperti Microsoft, Apple, Bloomberg, serta Morgan Stanley, menggunakan bahasa C++ secara luas dalam aplikasi internal dan eksternal mereka.
Python was conceived as a language that emphasized code readability and extensibility.
Bahasa Python dirancang sebagai bahasa yang mementingkan keterbacaan dan ekstensibilitas kode.
For these reasons, Python has been used across a wide range of domains.
Karena dua hal ini, bahasa Python telah digunakan secara luas di berbagai domain.
Some areas where Python is used include: Web development – Frameworks like Django and Flask have allowed web developers to create robust web servers that can also exploit the wider Python ecosystem.
Berikut ini adalah beberapa domain tempat aplikasi bahasa Python: Pengembangan Web: Kerangka kerja web seperti Django dan Flask memungkinkan pengembang web untuk membuat peladen (server) web yang bersifat tangguh (robust).
Science and academia – Scientific and data libraries, like SciPy and Pandas, have enabled Python's use in scientific research.
Sains dan Akademisi: Bahasa Python menyediakan pustaka spesifik kebutuhan ilmiah dan pengolahan data, seperti SciPy dan Pandas.
General-purpose markup language General-purpose modeling language
Bahasa markah tujuan umum Bahasa pemodelan tujuan umum