İnsan dillerinin ayrılması, izole topluluklardaki (Darwinist?) Evrimden gelir. Programlama dillerinin ayrılması, teknik gereksinimdeki, teknik ideolojideki, teknik ve teorik anlayıştaki değişikliklerden, teknik yetenek uygulamalarımızdaki değişikliklerden gelir. Bence biraz daha bilinçli bir süreç.
Bilgisayar dilleri doğal dillere daha çok benzeyebilir mi? Muhtemelen biraz, bir noktaya kadar. Sanırım, doğal dil karmaşıklığının büyük bir kısmı, eski tutarsızlıkların muhtemelen yenisinin ortaya çıkması sırasında muhtemelen kademeli olarak ortadan kalkması muhtemel olsa da, zaman içerisinde herhangi bir noktada tutarlı bir sonuç üretmek için hiçbir neden bulunmayan çeşitli eşzamanlı evrim fenomenlerinden kaynaklanmaktadır. . Ben diachronic dilbilimi konusunda uzman değilim. Fakat programlama dillerinde bu tür bir karmaşıklık istiyor muyuz?
Belirsizlik sorunu önemli bir konudur, ancak çoğu insan tarafından belirtildiği gibi değildir. Bir dil bir iletişim aracıdır ve bu iletişim bağlamında analiz edilmelidir (insan-insan, insan-makine, hem yerler arasında hem de zamanlar arasında, biraz basitçe söylemek için). Önemli olan, dilde yalnızca açıklayıcı ifadeler yapıp yapamayacağınız değil, iletişimin amaçlanan bağlamda her zaman net olmasını sağlayacak olup olmadığına bakmamaktır. Belirsiz programlar yazmaya olanak tanıyan iyi bilinen ve yaygın olarak kullanılan bir programlama dili var (peki, öyleydi, ama bir süredir en son sürümlere bakmadım). Bu durumda, derleyici belirsizliği tespit etmek ve belirsizliği ortadan kaldırmak için programa dahil edilebilecek açıklama talep etmek için yeterince akıllıdır. Belirsizlik tespitinin, olası seçimlerden sadece birinin anlamı olduğu anlamına gelmediğine dikkat edin. Sorun, iletişim kuran kurumlardan birinin belirsizliği tespit edip edemeyeceği ve gönderenin netleştirebilmesidir. İnsan bu konuda kötü, ama bilgisayarlar oldukça iyi olabilir.
Formaliteler ve programlama dilleri daha zengin ve daha esnek bir sözdizimine sahip olabilir. Yapmamalarının temel nedeninin basit muhafazakarlık olduğuna inanıyorum. Kullanılan sözdizimsel araçlar hala, otuz yıl önce veya daha fazla, o zamanın bilgisayarlarının sınırlamalarını karşılamak üzere tasarlanmış araçlardır. Ayrıştırma verimliliği artık derleme işleminde böylesine kritik bir konu değildir ve daha güçlü teknikler izlenebilir olarak mevcuttur.
İlginç bir şekilde, dillerin sözdizimini programlamak için en yaygın kullanılan temel, doğal dil araştırmasından gelir: bağlamsız gramer. Teknik araştırmaların çoğu, altmışlı yılların teorik / teknik bilgisayar bilimlerine, doğal dil halkı tarafından seksenlerin başlarında biraz keşfedilmesi için harekete geçti (basitleştiriyorum). O zamandan beri, doğal dillerde sözdizimi konusunda çok fazla ilerleme kaydedilirken, bilgisayar bilimi büyük ölçüde eski sözdizimsel araçlarla sıkışmış görünüyor. Doğal dil sarkaçı şimdi istatistiksel tekniklere doğru tekrar sallanıyor, ancak sözdizimi için cebirsel yaklaşımlar unutulmadı. Büyük olasılıkla, iyi yaklaşımlar cebirsel ve istatistiksel tekniklerin bir kombinasyonundan gelecektir.
Benim düşüncem, kritik alanın anlambilim ve sözdizimi ile anlambilim arasındaki geçiş olduğu. Programlama dilleri ve biçimsel sistemler söz konusu olduğunda birçok kesin tekniğimiz varken bu hala doğal dil için biçimlendirmek için çok zor. Oyun, doğal diller için oynanmaktan uzak olduğu için, gelecekte programlama dilleri üzerinde ne gibi bir etkisinin olabileceğini söylemek zor.
Başka bir nokta, birçok programlama dili tasarımcısının bir şeyi kanıtlamaya veya teknik bir ideolojiyi zorlamaya çalıştığıdır. Böylece, kullanıcıların amaçlanan paradigmalarından ayrılmalarını önlemek için tasarımlarında aşırı derecede kuralcıdırlar. Bu ne yazık ki yaratıcılık için son derece üretkendir. Şimdiye kadar tasarlanan en yaratıcı dil, ilkler arasındaydı: Lisp (1958). İzin verdiği özgürlük ve esneklik kayda değer yaratıcılığın kaynağıydı. Fiyat kendini disiplin ve anlayış gerektiriyordu. Ancak Lisp, dillerin yaratılması için kullanılan bir dildi.
Şimdi, başka bir perspektifi ele almak için, programlar aslında matematiksel bir ifade olarak görülen özelliklerinin kanıtıdır (peki, tekrar basitleştiriyorum). Bazı insanlar (referansları hatırlamıyorum, üzgünüm) teoremle oynuyorlardı, bir matematikçi tarafından doğal dilde yazılmış gibi görünen kanıtlar üretiyorlar. Bu yüzden sanırım doğal bir dilde yazılmış gibi görünen programlara sahip olma fikri tamamen saçma olmayabilir.
Bununla birlikte, bir matematikçi tarafından gayrı resmi bir şekilde yazılmış olsa bile, matematiksel söylemin sıradan konuşmalardan veya bir tarih kitabından oldukça farklı göründüğünü fark edebilirsiniz. Bu, söz konusu söylem evreninde, konuşulmakta olan anlamsal alanlardaki önemli bir farktan kaynaklanmaktadır. Böylece, daha çok doğal dillere benzeyen programlama dilleri düşünebilirsiniz, ancak söylemin alanı ve kendi arzulanan özellikleri olan doğal bir sınırlama vardır. Büyük olasılıkla, esasen yüzeysel, yani çoğunlukla sözdizimsel kalacaktır. Matematikçi, biçimsel sistemler ve politika hakkında konuşabilir. Umarım iki söylem benzer gözükmeyecektir. Bilgisayarlar (henüz?) Siyasetten bahsedemez veya anlayamazlar. Yaptıkları gün artık programlama olmayacak.
Tarihe bakıldığında, üst düzey diller, en baştan (FORTRAN) hesaplama görevlerini ifade etmek için daha doğal bir forma yaklaşma çabasıydı, ancak bu görevlerin matematiksel veya mantıksal olduğu anlaşıldı (Fortran 1957, Algol 1958, Lisp 1958). ) veya daha fazla iş odaklı (Cobol 1959). 10 yıl içerisinde insanlar, daha yakın olacak, eldeki soruna daha iyi adapte olacak diller konusunda endişeleniyorlardı ve extensible
languages
sözdiziminde hem sözdizimi hem de anlambilimi kapsayan önemli bir araştırma vardı . Sorunları daha doğal olarak ifade etmenin temel yollarından biri object
orientation
(bazen başka isimler altında) ortaya çıkmasıydı . Ebeveynlik atamak her zaman zor olsa da, muhtemelen yapay zeka çalışmaları, çoğunlukla Lisp ve dilden ortaya çıktı.Simula
67
(Algol ailesi), bir bilgisayarda simüle edilecek daha doğal olarak gerçek dünya sorunlarını ifade etmeyi amaçladı. Her şey tarihsel olarak tutarlı görünüyor.