Programlama dili teorisi

programlama dillerinin tasarımı, gerçekleştirimi, sınıflandırılması ile ilgilenen bilgisayar bilimlerinin bir alanı
(Programlama dili kuramı sayfasından yönlendirildi)

Programlama dili teorisi (PDT), programlama dilleri olarak bilinen biçimsel dillerin ve bunların bireysel özelliklerinin tasarımı, uygulanması, analizi, karakterizasyonu ve sınıflandırılması ile ilgilenen bir bilgisayar bilimleri dalıdır. Matematik, yazılım mühendisliği, dilbilim ve hatta bilişsel bilime bağlı ve onu etkileyen bilgisayar bilimi disiplinine girer. PDT'ye adanmış çok sayıda dergide ve genel bilgisayar bilimi ve mühendisliği yayınlarında yayınlanan sonuçlarla tanınmış bir bilgisayar bilimi dalı ve aktif bir araştırma alanı haline gelmiştir.

Tarih değiştir

Bazı yönlerden, programlama dili teorisinin tarihi, programlama dillerinin kendilerinin gelişmesinden bile önce gelir. 1930'larda Alonzo Church ve Stephen Cole Kleene tarafından geliştirilen lambda hesabı, programcıların bir bilgisayar sistemine algoritmaları tanımlamaları için bir araç olmaktan ziyade hesaplamayı modellemek için tasarlanmış olmasına rağmen, bazıları tarafından dünyanın ilk programlama dili olarak kabul edilir. Birçok modern fonksiyonel programlama dili, lambda hesabı üzerinde "ince bir katman" sağladığı şeklinde tanımlanmıştır,[1] ve birçoğu bu açıdan kolayca tarif edilmektedir.

İcat edilmiş ilk programlama dili 1940'larda Konrad Zuse tarafından tasarlanan, ancak 1972'ye kadar kamuya açıklanmayan (ve 1998'e kadar uygulanmayan) Plankalkül'dü. Yaygın olarak bilinen ve başarılı ilk üst düzey programlama dili, 1954'ten 1957'ye kadar John Backus liderliğindeki IBM araştırmacılarından oluşan bir ekip tarafından geliştirilen Fortran'dı. Fortran'ın başarısı, "evrensel" bir bilgisayar dili geliştirmek için bir bilim adamları komitesinin kurulmasına yol açtı; çabalarının sonucu ALGOL 58'di. Ayrı olarak, MIT'den MITJohn McCarthy'idi, kökleri akademiden başarılı ve kökleri olan ilk dil olan Lisp'i geliştirdi. Bu ilk çabaların başarısı ile programlama dilleri 1960'larda ve sonrasında aktif bir araştırma konusu haline geldi.

Some other key events in the history of programming language theory since then:

1950'ler değiştir

  • Noam Chomsky, programlama dili teorisini ve diğer bilgisayar bilimi dallarını doğrudan etkileyen bir keşif olan, dilbilim alanında Chomsky hiyerarşisini geliştirdi.

1960'lar değiştir

1970'ler değiştir

1980'ler değiştir

1990'lar değiştir

Alt disiplinler ve ilgili alanlar değiştir

Programlama dili teorisi içinde yer alan veya üzerinde derin bir etkisi olan birkaç çalışma alanı vardır; bunların birçoğu önemli ölçüde örtüşmektedir. Ayrıca PDT, hesaplanabilirlik teorisi, kategori teorisi ve küme teorisi dahil olmak üzere matematiğin diğer birçok dalını kullanır.

Biçimsel anlambilim değiştir

Biçimsel anlambilim, bilgisayar programlarının ve programlama dillerinin davranışının biçimsel özelliğidir. Bir bilgisayar programının şematiği veya "anlamını" tanımlamak için kullanılan üç yaygın yaklaşım, düz anlambilim, işlemsel anlambilim ve aksiyomatik anlambilimdir.

Tip teorisi değiştir

Tip teorisi, tip sistemlerinin incelenmesidir; bunlar "ifadeleri hesapladıkları değer türlerine göre sınıflandırarak belirli program davranışlarının yokluğunu kanıtlamak için izlenebilir bir sözdizimsel bir yöntemdir".[3] Birçok programlama dili, tür sistemlerinin özellikleriyle ayırt edilir.

Program analizi ve dönüşümü değiştir

Program analizi, bir programı inceleme ve temel özellikleri belirleme (program hataları sınıflarının olmayışı gibi) genel sorunudur. Program dönüştürme, bir programı bir biçimden (dilden) başka bir biçime dönüştürme işlemidir.

Karşılaştırmalı programlama dili analizi değiştir

Karşılaştırmalı programlama dili analizi, programlama dillerini özelliklerine göre farklı türlere ayırmayı amaçlar; programlama dillerinin geniş kategorileri genellikle programlama paradigmaları olarak bilinir.

Genel ve metaprogramlama değiştir

Meta-programlama, yürütüldüğünde sonuç olarak programlar (muhtemelen farklı bir dilde veya orijinal dilin bir alt kümesinde) üreten daha yüksek dereceli programların üretilmesidir.

Alana özgü diller değiştir

Etki alanına özgü diller, etki alanının belirli bir bölümünün sorunlarını verimli bir şekilde çözmek için oluşturulmuş dillerdir.

Derleyici yapısı değiştir

Derleyici teorisi, derleyiciler (veya daha genel olarak çevirmenler) yazma teorisidir; Bir dilde yazılmış bir programı başka bir forma çeviren programlar. Bir derleyicinin eylemleri geleneksel olarak sözdizim analizine (tarama ve ayrıştırma), semantik analize (bir programın ne yapması gerektiğini belirleme), optimizasyona (bir metrik tarafından belirtildiği gibi bir programın performansını iyileştirme; tipik olarak yürütme hızı) ve kod oluşturma olarak ayrılır (bazı hedef dilde eşdeğer bir programın oluşturulması ve çıkışı; genellikle bir CPU'nun emir seti).

Çalışma zamanı sistemleri değiştir

Çalışma zamanı sistemleri, sanal makineler, çöp toplama ve yabancı işlev arayüzleri dahil olmak üzere programlama dili çalışma zamanı ortamlarının ve bileşenlerinin geliştirilmesine atıfta bulunur.

Dergiler, yayınlar ve konferanslar değiştir

Konferanslar, programlama dillerinde araştırmaları sunmak için birincil mekandır. En iyi bilinen konferanslar arasında Programlama Dilleri İlkeleri Sempozyumu (POPL), Programlama Dili Tasarımı ve Uygulaması (PLDI), Uluslararası İşlevsel Programlama Konferansı (ICFP), Uluslararası Nesne Yönelimli Programlama, Sistemler, Diller ve Uygulamalar Konferansı (OOPSLA) ve Uluslararası Programlama Dilleri ve İşletim Sistemleri için Mimari Destek Konferansı (ASPLOS) .

PLT araştırmasını yayınlayan önemli dergiler arasında ACM İşlemleri Programlama Dilleri ve Sistemleri (TOPLAS), Journal of Functional Programming (JFP), Journal of Functional and Logic Programming ve Higher-Sıradan ve Sembolik Hesaplama bulunmaktadır.

Ayrıca bakınız değiştir

Kaynakça değiştir

Konuyla ilgili yayınlar değiştir

  1. ^ "Arşivlenmiş kopya". 9 Temmuz 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Kasım 2021. 
  2. ^ C. Böhm and W. Gross (1996). Introduction to the CUCH. In E. R. Caianiello (ed.), Automata Theory, p. 35-64/
  3. ^ Benjamin C. Pierce. 2002. Types and Programming Languages 4 Kasım 2021 tarihinde Wayback Machine sitesinde arşivlendi.. MIT Press, Cambridge, Massachusetts, USA.