Bahasa pemrograman adalah bahasa formal , tetapi tidak seperti banyak formalisme, mereka juga memiliki makna inheren tertentu yang ditentukan oleh semantik operasional mereka , atau, dalam hal bahasa markup, semantik presentasi . Dan bahasa pemrograman, meskipun memang formal, sangat mirip dengan bahasa alami, dalam hal komunikasi yang mereka izinkan.
Sementara pengembangan bahasa pemrograman adalah artifisial, proses evolusi, peminjaman, pencampuran, dan mutasi bahasa alami semuanya memiliki rekanan buatan yang cukup jelas. Jadi saya bertanya-tanya: apakah pernah ada penelitian berskala besar dan mendalam mengenai evolusi dan perilaku bahasa pemrograman dari sudut pandang seorang ahli bahasa ?
programming-languages
spoken-languages
Jon Purdy
sumber
sumber
Jawaban:
Ingat bahwa tata bahasa formal, yang tanpanya pemrograman modern tidak bisa, adalah produk dari penelitian ahli bahasa Noam Chomsky .
Kecelakaan mobil membuat saya tidak bisa menyelesaikan tesis kelulusan tentang topik yang Anda tanyakan, jadi tidak ada referensi yang bisa saya berikan kepada Anda, hanya pendapat.
Bahasa yang diucapkan berkembang dengan kecepatan apa pun tergantung pada konteksnya, dan mereka melakukannya dengan cara yang tidak dapat diprediksi sebagai konteks manusia yang tidak dapat diprediksi. Hasil WW2 memiliki efek besar pada bahasa Jepang. Inggris, Australia, Afrika Selatan, dan Amerika Utara tidak cukup berbicara bahasa yang sama. Penggunaan deklinasi kata kerja di antara apa yang dulunya merupakan koloni Spanyol telah menjadi sangat berbeda setelah dua ratus tahun kemerdekaan (para mantan koloni berpikir bahwa Spanyol Spanyol adalah kuno ).
Hanya kekuatan efisiensi atas fonetik membuat kata-kata yang berbeda digunakan dengan frekuensi yang berbeda di daerah yang berbeda diucapkan secara berbeda: kata-kata yang sangat umum di-skim, atau salah eja, dan kata-kata yang kurang umum dinyatakan seakurat mungkin.
Bahasa alami, dengan variasi, nuansa, dan evolusi tidak sesuai untuk determinisme yang kami tuntut dari komputer. (Ya ampun! Mengingat kesamaan misinterpretasi dan interpretasi kedua, tampaknya mereka tidak cocok bahkan untuk interaksi paling sederhana di antara manusia [menahan diri dari mengutip lelucon tentang apa kata gadis / teman laki-laki dan apa artinya sebenarnya))
sumber
Saya membaca kembali pertanyaan itu, dan saya pikir jawaban asli saya tidak menjawabnya. Ini percobaan lain.
Tidak, belum ada penelitian serius tentang linguistik bahasa pemrograman yang saya ketahui. Ada beberapa garis keturunan bahasa yang dilacak untuk dua cabang utama dan satu cabang:
Bagi kita dengan puluhan tahun di lapangan, jelas bahwa bahasa pemrograman telah kawin, dan dengan demikian kita menemukan sebagian besar aspek dari paradigma murni dalam kebanyakan bahasa pemrograman modern, yang sekarang disebut bahasa pemrograman multi- paradigma : C #, Python, Java, .. .. Bahkan bahasa fungsional yang sebelumnya murni seperti OCaml dan Haskell menyertakan cukup prosedural (melalui monads ) dan fitur OO untuk memungkinkan Anda melakukan apa saja.
Apa yang terjadi, saya pikir, adalah menjadi jelas bahwa mahal (bila tidak konyol) harus beralih bahasa pemrograman hanya untuk dapat menerapkan paradigma yang tepat untuk subproblem yang diberikan.
Masih ada pengecualian untuk tren di bidang sistem yang sangat paralel dan asinkron. Di sana bahasa yang diutamakan benar-benar fungsional, seperti Erlang , mungkin karena lebih mudah untuk berpikir tentang sistem yang sedemikian kompleks secara fungsional.
Bagian non-paradigmatik dari evolusi adalah sintaksis. Bahasa-bahasa yang mendorong atau bahkan mengizinkan program-program cryptic menjadi semakin jarang digunakan ( APL , AWK , dan bahkan Perl dan LISP). Sintaks yang mendominasi saat ini adalah bahasa-bahasa yang lebih mudah dibaca (tidak mudah ditulis) seperti C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript, dan juga Python), Pascal (Fortran 90+ x), Smalltalk (Ruby), ML / Miranda (OCaml, Haskell, Erlang), dan SGML (HTML, XML).
Diagram ini tidak sepenuhnya akurat, dan tidak up to date, tetapi memberikan gambaran yang bagus tentang berapa banyak bahasa pemrograman yang terkonvergensi sejak era bahasa per situs tahun 1970-an.
sumber
Saya suka jawaban @ Apalala, yang tampaknya menunjukkan konvergensi ke beberapa bahasa tujuan umum utama. Itu hanya masuk akal, karena ide yang baik di satu dapat cepat atau lambat diambil oleh yang lain.
Apa yang akan saya tambahkan adalah bahwa setiap kali seseorang menggunakan bahasa, mereka perlu memperluasnya, dengan menambahkan istilah, mengubahnya menjadi bahasa yang lebih berorientasi pada domain yang ada. Terkadang ini cukup mudah, kadang tidak. Berikut ini contoh yang tidak mudah.
Properti yang saya hargai dalam bahasa tujuan umum adalah sejauh mana ia membantu dalam definisi bahasa khusus domain baru.
sumber