Pemisahan bahasa manusia berasal dari (darwinian?) Evolusi dalam komunitas terisolasi. Pemisahan bahasa pemrograman berasal dari variasi dalam kebutuhan teknis, ideologi teknis, dari perubahan dalam pemahaman teknis dan teoritis, dari perubahan dalam kemampuan teknis kami untuk mengimplementasikan. Ini adalah proses yang agak lebih sadar, saya pikir.
Mungkinkah bahasa komputer lebih seperti bahasa alami? Mungkin agak, sampai batas tertentu. Saya kira sebagian besar dari kompleksitas bahasa alami dihasilkan dari berbagai fenomena evolusi bersamaan yang tidak memiliki alasan untuk menghasilkan hasil yang konsisten pada satu titik waktu, walaupun ada kemungkinan bahwa inkonsistensi lama mungkin semakin dihilangkan secara progresif sementara yang baru muncul . Saya bukan ahli linguistik diakronis. Tetapi apakah kita menginginkan kompleksitas semacam itu dalam bahasa pemrograman.
Masalah ambiguitas adalah masalah yang penting, tetapi tidak seperti yang dinyatakan oleh kebanyakan orang. Bahasa adalah sarana komunikasi, dan harus dianalisis dalam konteks komunikasi itu (man-man, man-machine, keduanya, antara tempat atau di antara waktu, ... untuk mengatakannya sedikit secara sederhana). Yang penting bukanlah apakah Anda hanya dapat membuat pernyataan yang tidak ambigu dalam bahasa tersebut, tetapi apakah Anda selalu dapat memastikan bahwa komunikasi akan tidak ambigu dalam konteks yang dimaksud. Ada satu bahasa pemrograman yang terkenal dan banyak digunakan, yang memungkinkan penulisan program yang ambigu (ya, memang, tapi saya belum melihat versi terbaru untuk sementara waktu). Dalam hal ini, kompiler cukup pintar untuk mendeteksi ambiguitas dan meminta klarifikasi, yang dapat dimasukkan dalam program menghilangkan ambiguitas. Perhatikan bahwa deteksi ambiguitas tidak berarti bahwa hanya satu dari pilihan yang mungkin memiliki makna, semuanya memiliki arti. Masalahnya adalah apakah salah satu entitas yang berkomunikasi dapat mendeteksi ambiguitas sehingga pengirim dapat mengklarifikasi. Manusia buruk dalam hal ini, tetapi komputer bisa sangat bagus.
Formalisme dan bahasa pemrograman bisa memiliki sintaksis yang lebih kaya dan lebih fleksibel. Saya percaya alasan utama mereka tidak melakukannya adalah konservatisme sederhana. Alat sintaksis yang digunakan masih sangat sering alat yang dirancang tiga puluh tahun yang lalu atau lebih, untuk memenuhi keterbatasan komputer pada waktu itu. Efisiensi parsing tidak lagi menjadi masalah kritis dalam menyusun dan teknik yang lebih kuat memang ada secara bijak.
Menariknya, dasar yang paling banyak digunakan untuk sintaksis bahasa pemrograman berasal dari penelitian bahasa alami: tata bahasa bebas konteks. Banyak penelitian teknis yang memindahkannya ke teori / teknis ilmu komputer pada tahun enam puluhan, untuk agak ditemukan kembali pada awal tahun delapan puluhan oleh orang-orang bahasa alami (saya menyederhanakan). Sejak itu, banyak kemajuan telah dibuat untuk sintaks dalam bahasa alami, sementara ilmu komputer tampaknya sebagian besar terjebak dengan alat sintaksis lama. Pendulum bahasa alami sekarang berayun lagi ke arah teknik statistik, tetapi pendekatan aljabar untuk sintaksis tidak dilupakan. Kemungkinan besar, pendekatan yang baik akan datang dari kombinasi teknik aljabar dan statistik.
Perasaan saya adalah bahwa area kritis adalah semantik dan transisi antara sintaksis dan semantik. Ini masih sangat sulit untuk diformalkan untuk bahasa alami, sementara kami memiliki banyak teknik yang tepat dalam hal bahasa pemrograman dan sistem formal. Karena gim ini jauh dari dimainkan untuk bahasa alami, sulit untuk mengatakan apa dampaknya pada bahasa pemrograman di masa depan.
Poin lain adalah bahwa banyak perancang bahasa pemrograman mencoba membuktikan sesuatu atau menegakkan ideologi teknis. Dengan demikian mereka mendapatkan desain yang sangat preskriptif untuk mencegah pengguna menyimpang dari paradigma yang diinginkan. Sayangnya ini sangat kontraproduktif untuk kreativitas. Bahasa paling kreatif yang pernah dirancang adalah yang pertama: Lisp (1958). Kebebasan dan fleksibilitas yang dibolehkan adalah sumber kreativitas yang cukup besar. Harganya adalah itu membutuhkan disiplin diri dan pemahaman. Tapi Lisp benar-benar sebuah bahasa logam, bahasa untuk penciptaan bahasa.
Sekarang, untuk mengambil perspektif lain, program sebenarnya bukti spesifikasi mereka dilihat sebagai pernyataan matematika (well, saya menyederhanakan lagi). Beberapa orang (saya tidak ingat referensi, maaf) telah bermain dengan pembuktian teorema untuk menghasilkan bukti yang kelihatannya ditulis oleh ahli matematika dalam bahasa alami. Jadi saya kira gagasan memiliki program yang sepertinya ditulis dalam bahasa alami mungkin tidak sepenuhnya absurd.
Namun Anda mungkin memperhatikan bahwa, bahkan ketika ditulis secara informal oleh seorang ahli matematika, wacana matematika terlihat sangat berbeda dari pembicaraan biasa, atau dari buku sejarah. Hal ini disebabkan oleh perbedaan yang signifikan dalam semesta wacana yang bersangkutan, domain semantik yang sedang dibicarakan. Jadi sementara Anda dapat membayangkan bahasa pemrograman yang lebih mirip bahasa alami, ada batasan alami yang merupakan domain wacana dan sifat-sifatnya yang diinginkan sendiri. Kemungkinan besar itu akan tetap dasarnya dangkal, yaitu sebagian besar sintaksis. Ahli matematika dapat berbicara tentang sistem formal dan tentang politik. Semoga kedua wacana tersebut tidak akan terlihat serupa. Komputer tidak bisa (belum?) Berbicara tentang politik, atau memahaminya. Hari mereka melakukannya tidak lagi pemrograman.
Melihat ke belakang dalam sejarah, bahasa tingkat tinggi, dari yang pertama (FORTRAN) merupakan upaya untuk lebih dekat ke bentuk yang lebih alami untuk mengekspresikan tugas komputasi, tetapi tugas-tugas ini dipahami sebagai matematika atau logis (Fortran 1957, Algol 1958, Lisp 1958 ), atau lebih berorientasi bisnis (Cobol 1959). Dalam 10 tahun orang-orang khawatir tentang bahasa yang akan lebih dekat, lebih baik beradaptasi dengan masalah yang dihadapi, dan ada penelitian signifikan dalam apa yang disebut extensible
languages
, mencakup sintaksis dan semantik. Satu jalur utama untuk mengekspresikan masalah secara lebih alami adalah munculnya object
orientation
(kadang-kadang dengan nama lain). Meskipun selalu sulit untuk menetapkan status sebagai orang tua, itu mungkin muncul dari karya kecerdasan buatan, sebagian besar dalam Lisp, dan dari bahasaSimula
67
(Keluarga Algol) yang dengan sendirinya dimaksudkan untuk mengekspresikan masalah dunia nyata yang lebih alami yang akan disimulasikan pada komputer. Semuanya tampak konsisten secara historis.