Huruf Yunani kecil λ (lambda) adalah simbol tidak resmi dari bidang teori bahasa pemrograman.[butuh rujukan] Penggunaan ini berasal dari kalkulus lambda, sebuah model komputasi yang diperkenalkan oleh Alonzo Church pada tahun 1930-an dan banyak digunakan oleh peneliti bahasa pemrograman. Ini menghiasi sampul teks klasik Struktur dan Interpretasi Program Komputer,[1] dan judul yang disebut Lambda Papers dari tahun 1975 hingga 1980, yang ditulis oleh Gerald Jay Sussman dan Guy L. Steele Jr., para pengembang bahasa Scheme.

Teori bahasa pemrograman (PLT) adalah cabang ilmu komputer yang membahas desain, implementasi, analisis, karakterisasi, dan klasifikasi bahasa formal yang dikenal sebagai bahasa pemrograman. Teori bahasa pemrograman terkait erat dengan bidang lain termasuk linguistik, matematika, dan rekayasa perangkat lunak.

Sejarah

sunting

Dalam beberapa hal, sejarah teori bahasa pemrograman mendahului bahkan pengembangan bahasa pemrograman. Kalkulus lambda, yang dikembangkan oleh Alonzo Church dan Stephen Cole Kleene pada tahun 1930-an, dianggap oleh beberapa orang sebagai bahasa pemrograman pertama di dunia, meskipun dimaksudkan untuk memodelkan komputasi daripada menjadi sarana bagi pemrogram untuk mendeskripsikan algoritma ke sistem komputer. Banyak bahasa pemrograman fungsional modern telah dideskripsikan sebagai menyediakan "lapisan tipis" di atas kalkulus lambda,[2] dan banyak yang dideskripsikan dengan mudah dalam kaitannya dengannya.

Bahasa pemrograman pertama yang ditemukan adalah Plankalkül, yang dirancang oleh Konrad Zuse pada tahun 1940-an, tetapi tidak diketahui publik hingga tahun 1972, dan tidak diimplementasikan hingga tahun 1998. Bahasa pemrograman tingkat tinggi pertama yang dikenal luas dan berhasil adalah FORTRAN (untuk Formula Translation), yang dikembangkan dari tahun 1954 hingga 1957 oleh tim peneliti IBM yang dipimpin oleh John Backus. Keberhasilan FORTRAN menyebabkan pembentukan komite ilmuwan untuk mengembangkan bahasa komputer "universal"; hasil dari upaya mereka adalah ALGOL 58. Secara terpisah, John McCarthy dari Massachusetts Institute of Technology (MIT) mengembangkan Lisp, bahasa pertama dengan asal-usul di akademisi yang berhasil. Dengan keberhasilan upaya awal ini, bahasa pemrograman menjadi topik penelitian yang aktif pada tahun 1960-an dan seterusnya.

Garis Waktu

sunting

Beberapa peristiwa kunci lain dalam sejarah teori bahasa pemrograman sejak saat itu:

1950-an
  • Noam Chomsky mengembangkan hierarki Chomsky di bidang linguistik, sebuah penemuan yang secara langsung berdampak pada teori bahasa pemrograman dan cabang ilmu komputer lainnya.
1960-an
1970-an
1980-an
1990-an

Sub-disiplin dan bidang terkait

sunting

Ada beberapa bidang studi yang berada di dalam teori bahasa pemrograman, atau yang memiliki pengaruh mendalam padanya; banyak di antaranya memiliki tumpang tindih yang cukup besar. Selain itu, PLT memanfaatkan banyak cabang matematika lainnya, termasuk teori komputabilitas, teori kategori, dan teori himpunan.

Semantik formal

sunting

Semantik formal adalah spesifikasi formal dari perilaku program komputer dan bahasa pemrograman. Tiga pendekatan umum untuk mendeskripsikan semantik atau "makna" dari program komputer adalah semantik denotasional, semantik operasional, dan semantik aksiomatik.

Teori tipe

sunting

Teori tipe adalah studi tentang sistem tipe; yang merupakan "metode sintaksis yang dapat diatasi untuk membuktikan tidak adanya perilaku program tertentu dengan mengklasifikasikan frasa sesuai dengan jenis nilai yang dihitungnya".[4] Banyak bahasa pemrograman dibedakan oleh karakteristik sistem tipe mereka.

Analisis dan transformasi program

sunting

Analisis program adalah masalah umum untuk memeriksa program dan menentukan karakteristik kunci (seperti tidak adanya kelas kesalahan program). Transformasi program adalah proses mengubah program dalam satu bentuk (bahasa) ke bentuk lain.

Analisis bahasa pemrograman komparatif

sunting

Analisis bahasa pemrograman komparatif berusaha mengklasifikasikan bahasa ke dalam berbagai jenis berdasarkan karakteristiknya; kategori luas bahasa sering dikenal sebagai paradigma pemrograman.

Generik dan metaprogramming

sunting

Metaprogramming adalah pembuatan program tingkat yang lebih tinggi yang, ketika dieksekusi, menghasilkan program (mungkin dalam bahasa yang berbeda, atau dalam subset dari bahasa asli) sebagai hasilnya.

Bahasa khusus domain

sunting

Bahasa khusus domain adalah bahasa yang dibangun untuk secara efisien memecahkan masalah dalam domain tertentu, atau bagian darinya.

Konstruksi kompiler

sunting

Teori kompiler adalah teori penulisan kompiler (atau lebih umum, penerjemah); program yang menerjemahkan program yang ditulis dalam satu bahasa ke bentuk lain. Tindakan kompiler secara tradisional dipecah menjadi analisis sintaks (memindai dan mengurai), analisis semantik (menentukan apa yang harus dilakukan program), optimasi (meningkatkan kinerja program seperti yang ditunjukkan oleh beberapa metrik; biasanya kecepatan eksekusi) dan pembuatan kode (pembuatan dan keluaran program yang setara dalam beberapa bahasa target; seringkali arsitektur set instruksi dari central processing unit (CPU)).

Sistem waktu-proses

sunting

Sistem waktu-proses mengacu pada pengembangan lingkungan waktu proses bahasa pemrograman dan komponennya, termasuk mesin virtual, pengumpulan sampah, dan antarmuka fungsi asing.

Jurnal, publikasi, dan konferensi

sunting

Konferensi adalah tempat utama untuk menyajikan penelitian dalam bahasa pemrograman. Konferensi yang paling terkenal meliputi Symposium on Principles of Programming Languages (POPL), Programming Language Design and Implementation (PLDI), International Conference on Functional Programming (ICFP), konferensi internasional tentang Object-Oriented Programming, Systems, Languages & Applications (OOPSLA) dan International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).

Jurnal-jurnal terkemuka yang menerbitkan penelitian PLT meliputi ACM Transactions on Programming Languages and Systems (TOPLAS), Journal of Functional Programming (JFP), Journal of Functional and Logic Programming, dan Higher-Order and Symbolic Computation.

Lihat juga

sunting

Referensi

sunting
  1. ^ Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie (1996). Structure and Interpretation of Computer Programs (Edisi 2nd). Cambridge, Massachusetts: MIT Press. ISBN 0-262-01153-0. OCLC 34576857.
  2. ^ "Models Of Computation". wiki.c2.com. December 3, 2014. Diarsipkan dari versi aslinya tanggal November 30, 2020.
  3. ^ C. Böhm and W. Gross (1996). Introduction to the CUCH. In E. R. Caianiello (ed.), Automata Theory, p. 35–64.
  4. ^ Benjamin C. Pierce. 2002. Types and Programming Languages. MIT Press, Cambridge, Massachusetts, USA.

Bacaan lebih lanjut

sunting

Pranala luar

sunting

📚 Artikel Terkait di Wikipedia

Bahasa pemrograman

Sebagian besar bahasa pemrograman adalah bahasa formal berdasarkan teks, tetapi juga dapat berupa grafis. Deskripsi bahasa pemrograman dibagi menjadi

BASIC

banyak bahasa pemrograman, termasuk di antaranya BASIC, ternyata membuat praktik pemrograman menjadi buruk. Beberapa bahkan mengeluhkan bahwa bahasa BASIC

Ilmu komputer teoretis

probabilistik, komputasi kuantum, teori automata, teori informasi, kriptografi, semantik dan verifikasi pemrograman, pembelajaran mesin, biologi komputasi

Ilmu komputer

seperti bahasa pemrograman, perangkat lunak dan perangkat keras. Sebagai suatu disiplin ilmu, Ilmu Komputer lebih menekankan pada pemrograman komputer

Sintaksis

mengatur sistematika, seperti logika, bahasa formal buatan, dan bahasa pemrograman komputer. Karya mengenai tata bahasa telah ditulis jauh sebelum sintaksis

GW-BASIC

GW-BASIC tidak memiliki struktur yang cukup untuk disebut sebagai sebuah bahasa pemrograman terstruktur, seperti halnya variabel lokal. Selain itu, kecepatan

Pemrograman deklaratif

Dalam ilmu komputer, pemrograman deklaratif adalah paradigma pemrograman—gaya membangun struktur dan elemen program komputer—yang mengekspresikan logika

Informatika

dalam bahasa Inggris informatics, computing, atau computer science. Dalam ruang lingkup yang lebih luas, informatika meliputi beberapa aspek: Teori informasi