Bir programlama dili , algoritmaları formüle etmek ve bunları uygulayan bilgisayar programları üretmek için geleneksel bir gösterimdir . Bir programlama dili, doğal bir dile benzer şekilde, bir alfabe , bir kelime hazinesi , dilbilgisi kuralları , anlamlar ve aynı zamanda sözdizimini makine tarafından anlaşılır hale getirmesi gereken bir çeviri ortamından oluşur .
Programlama dilleri, bir yandan bilgisayar aparatları tarafından manipüle edilecek verilerin yapılarını tanımlamayı, diğer yandan manipülasyonların hangi algoritmalara göre nasıl yapıldığını belirtmeyi mümkün kılmaktadır. Programcının bilgisayarla ve aynı zamanda diğer programcılarla iletişim kurduğu iletişim araçları olarak hizmet ederler; programlar genellikle bir programcı ekibi tarafından yazılır, okunur, anlaşılır ve değiştirilir.
Bir programlama dili, otomatik bir çevirmen tarafından uygulanır: derleyici veya yorumlayıcı . Derleyici, önce belirli bir programlama dilinde yazılmış bir kaynak kodunu , doğrudan bir bilgisayar tarafından, yani makine dilinde veya ara kodda bir program tarafından çalıştırılabilen bir hedef koda dönüştüren bir bilgisayar programıdır, yorumlayıcı ise bu çeviriyi gerçekleştirir " anında".
Programlama dilleri, farklı soyutlama olanakları ve cebire yakın bir notasyon sunarak, veri işleme operasyonlarını ve duruma göre program akışının evrimini kısa ve anlaşılır bir şekilde tanımlamayı mümkün kılar. Soyut yazma olasılığı, programcının zihnini bilgisayar donanımının özelliklerini dikkate almak da dahil olmak üzere gereksiz çalışmalardan kurtarır ve böylece daha gelişmiş sorunlara konsantre olmasını sağlar.
Her programlama dili bir veya daha fazla programlama yaklaşımını destekler - paradigmalar . Paradigmayı tetikleyen kavramlar programlama dilinin bir parçasıdır ve programcının bu paradigmaya göre hayal edilmiş bir çözümü dilde ifade etmesine izin verir.
İlk programlama dilleri 1950'lerde bilgisayarların gelişiyle aynı zamanda oluşturuldu . Bununla birlikte, birçok programlama kavramı, geliştirilmeden önce bir dil veya bazen birkaç dil tarafından başlatıldı ve ardından aşağıdaki dillerde genişletildi. Çoğu zaman bir programlama dilinin tasarımı, önceki dillerle kazanılan deneyimlerden güçlü bir şekilde etkilenmiştir.
Bir programlama dili, anlamsal kuralların ilişkilendirildiği sembolleri ve sözdizimsel kuralları içeren resmi bir dilbilgisinden oluşturulur. Bu unsurlar dilin kapasitesine göre az ya da çok karmaşıktır. Bir programlama dilinin çalışma modları ve karmaşıklığının tanımı genellikle bunların Chomsky hiyerarşisinin derecelerinden birine ait olmalarına göre belirlenir .
Teorik bir bakış açısından, herhangi bir bilgisayar dili Turing-complete ise, yani Turing ve Church anlamında tüm hesaplanabilir işlevleri temsil etmeyi mümkün kılıyorsa (yine de kabul etmekle birlikte) bir programlama dili olarak nitelendirilebilir. bilgisayar belleğinin sonsuz bir alan olmadığı teorisinin istisnası için).
Kuralları sözdizimi Biçimsel bir dilbilgisi tarafından tanımlanan bunlar, programlar elde etmek için dil öğelerinin birleştirilebileceği farklı yolları yönetir. Noktalama (örneğin bir sembolün yapıştırılması ; bir program talimat hattının sonunda) sözdizimi meselesidir. kelime hazinesi Dilin öğeleri arasında, sözcük dağarcığı , simgelerden oluşturulan yönergeler kümesini temsil eder . Talimat anımsatıcı olabilir veya yalnızca aritmetik operatörler ("+" ve "-") veya Booleanlar ( mantıksal ve örneğin için &&) gibi işlem sembolleriyle temsil edildiğinde olduğu gibi sembolik olabilir . Ayrıca bazen bir talimatı belirtmek için bir anahtar kelimeden bahsederiz (anahtar kelime kavramı aynı zamanda kelime dağarcığının bir parçası olan sembolleri kapsamadığından dilin kötüye kullanılması yoluyla ). semantik Semantik kuralları , dilde oluşturulabilecek cümlelerin her birinin anlamını, özellikle programın yürütülmesi sırasında cümlenin etkilerinin ne olacağını tanımlar. Öğrenci için bilim , programlama dillerinin semantiğidir . alfabe Programlama dilleri için alfabe , aksan, sayı ve sembol içermeyen A'dan Z'ye harflerden oluşan ASCII veya çoğu modern dil için Unicode (kullanımı genel ile değişmez dizelerle sınırlıdır) gibi mevcut standartlara dayanmaktadır. ve Unicode tanımlayıcılara da izin veren C♯ gibi bazı dikkate değer istisnalar dışında yorumlar ).Çoğu programlama dili, ek yapısal öğeler, prosedürel yöntemler ve geçici ve değişken tanımlar ve tanımlayıcılar sağlayabilir:
yorumlar Yorumlar çevrilmez metinlerdir. Açıklama bırakmak için programlara eklenebilirler. Yorumlar, "-" , "/ *" veya "//" gibi programlama dilinden programlama diline farklılık gösteren işaretlerle sınırlandırılır . kimlikleri Değişkenler , prosedürler veya türler gibi programın yapı taşları , programı ve çalışmasını düzenlemek için kullanılır. Böylece, örneğin, bir programı fonksiyonlara bölebilir veya ona nesnelerle bir yapı verebiliriz : bu yapı elemanları dile bağlı olarak tanımlayıcılar veya anahtar kelime prosedürleri ile tanımlanır .Bir programlama dili, algoritmalar oluşturmak ve akış diyagramlarını ifade etmek için bir çerçeve sağlar. Özellikle bilgisayar aparatı tarafından işlenecek verilerin yapılarının ve manipülasyonların ne olacağının tanımlanmasını mümkün kılar. Bir programlama dili, bilgisayarla ve aynı zamanda programcılar arasında bir iletişim aracı olarak kullanılır: programlar genellikle bir programcı ekibi tarafından yazılır, okunur ve değiştirilir.
Bir programlama dili, algoritma geliştirmek için ilkel olarak kullanılabilecek bir dizi kavram sunar. Programcılar, dilin açık, basit ve birleşik olduğunu, basit ve düzenli kurallara göre birleştirilebilecek minimum kavram olduğunu takdir ederler. Bir programlama dilinin nitelikleri, programların yazılma, test edilme ve daha sonra anlaşılma ve değiştirilme kolaylığını etkiler.
Kullanım kolaylığı, taşınabilirlik ve netlik, programlama dillerinin popüler nitelikleridir. Sözdizimine, kelime dağarcığına ve sembollere bağlı olan kullanım kolaylığı, bu dilde yazılan programların okunabilirliğini ve öğrenme süresini etkiler. Taşınabilirlik, belirli bir bilgisayar platformu (bir işletim sistemi) tarafından yürütülmek üzere yazılan bir programın başka bir platformda yürütülmek üzere aktarılmasına izin verir.
Programcılar, programın doğasında bulunan mantıksal yapıyı ifade etmek için sözdizimini severler. Programlamadaki endişelerden biri, hatalardan kaçınmak, onları tespit etmenin, önlemenin ve düzeltmenin mümkün olmasıdır; bu, programlama dillerinin iç mekanizmalarıyla mümkün olur. Bazen sorunları bulmak için örtülü kontroller yapılır.
Programcılar, bir programlama dilinin iyi programlama ve mühendislik uygulamalarıyla uyumlu olduğunu, program yapılandırmasını teşvik ettiğini, program bakımını kolaylaştırdığını ve kötü uygulamaları caydırdığını ve hatta yasakladığını takdir eder. gotoÖrneğin, erken programlama dillerinden beri var olan talimatı kullanmak kötü bir uygulama olarak kabul edilir. Son programlama dillerinde kullanımı tavsiye edilmez, hatta imkansızdır.
Endüstri standartlarına uyum, başka bir programlama dilinde yazılmış özellikleri kullanma yeteneği ve birden çok iş parçacığının aynı anda yürütülmesi, programlama dillerinde popüler olanaklardır.
Bir programlama dili, algoritmalar geliştirmek için ilkel olarak kullanılabilecek talimatlar, değişkenler, türler ve prosedürler veya işlevler gibi bir dizi kavram üzerine kuruludur.
bir talimatBir bilgisayara verilen bir sipariş.
Bir değişkenProgram tarafından manipüle edilen verilere atıfta bulunmak için bir programda kullanılan bir ad.
bir sabitKalıcı bir değere atıfta bulunmak için kullanılan bir ad.
Gerçek bir ifadeProgramda tam olarak belirtilen bir değer.
bir tipHer verinin, olası değerlerin aralığını, gerçekleştirilebilecek işlemleri ve verilerin bit biçiminde temsilini etkileyen bir sınıflandırması vardır. Her programlama dili, dile dahil edilmiş bir dizi ilkel tür sunar . Bazı diller yeni türler oluşturma imkanı sunar.
Yaygın ilkel veri türleri, tamsayılar , gerçek sayılar , boolean , dizeler ve işaretçilerdir .
Spesifik olarak, boole türü , true ve false olmak üzere yalnızca iki değere sahip bir türdür , işaretçi türü ise bellekte bir yerde bulunan verileri ifade eder.
Örneğin, C dili, verilere ayrılan bellek miktarını tam olarak seçmenize olanak tanıyan çeşitli türlere sahiptir.
Bir veri yapısıBellekte, onları işlemek için kullanılan algoritmaları etkileyen, bir dizi veriyi organize etmenin karakteristik bir yolu. Ortak yapılar diziler , kayıtlar , listeler , yığınlar , kuyruklar ve ağaçlardır .
bir beyanDeğişkenler, prosedürler, türler vb. gibi program öğelerinin adları ve özellikleri hakkında çevirmene (derleyici, yorumlayıcı vb.) bilgi vermek için kullanılan bir program tümcesi.
Program işlemlerinin kullanılan veri türleri ile mümkün olduğundan emin olmak için derleme zamanında veya program yürütme sırasında kontroller yapılır. Kesin olarak yazılan dilde , programın her bir öğesinin, programı çalıştırmadan önce hataları yakalamayı mümkün kılan, derleme zamanında bilinen ve kontrol edilen benzersiz bir türü vardır.
Prosedürler, fonksiyonlar, yöntemlerÇeşitli programlama dilleri, bir programın bir parçasını izole etme ve onu tekrar tekrar kullanılabilen genel, yapılandırılabilir bir işlem yapma imkanı sunar. Bu parçalara paradigmaya bağlı olarak prosedürler , işlevler veya yöntemler denir .
ModüllerProgramlama dilleri ayrıca bir programı modül adı verilen ve her biri belirli bir role sahip birkaç parçaya bölme ve ardından parçaları birleştirme imkanı da sunabilir .
Prosedür ve modül kavramları, bu karmaşıklıkla başa çıkmaya yardımcı olarak karmaşık ve hacimli programların oluşturulmasını kolaylaştırmayı amaçlamaktadır. Bu işlevler özellikle modülerlik ve soyutlamaya izin verir .
Bir paradigma , programlamaya yaklaşmanın bir yoludur. Her paradigma kendi programlama felsefesini getirir; Bir programcı tarafından belirli bir paradigmaya göre bir çözüm bir kez hayal edildiğinde, o paradigmayı takip eden bir programlama dili bunun ifade edilmesine izin verecektir. Zorunlu, bildirimsel, işlevsel, mantıksal, nesne yönelimli, rakip, görsel, olay güdümlü ve web tabanlı programlama paradigmalarıdır. Her programlama dili, bir programlama sorununa bir çözüm ifade etmek için kullanılabilecek bir dizi kavram sağlayan bir veya daha fazla paradigmayı yansıtır. Tarih boyunca bilim adamları ve programcılar bir programlama stilinin avantajlarını ve sınırlamalarını belirlemiş ve yeni stiller getirmiştir. Çoğu çağdaş programlama dili, uyumlu olmaları koşuluyla çeşitli programlama paradigmalarının benimsenmesine izin verir.
Emir veya prosedür paradigması , tıpkı bir yemek tarifi yapmak gibi talimatları adım adım uygulama ilkesine dayanır. Von Neumann makinesinin prensibine dayanmaktadır . Yürütme akış kontrol talimatlarının bir dizi sırasını kontrol talimatları adımları açıklar yürütülür . C , Pascal , Fortran ve COBOL programlama dili uygular zorunludur paradigma örnekleridir.
Esasen iki bildirimsel paradigma vardır; bunlar işlevsel paradigma ve mantıksal paradigmadır. Fonksiyonel paradigmada, program matematiksel fonksiyonları tanımlar. Mantıksal paradigmada, yüklemleri tanımlar : yani, somutlaştırıldıktan sonra doğru veya yanlış olabilen veya bir doğruluk değeri almayan ifadeler (yüklemin değerlendirilmesi sona ermediğinde). Bir uygulama modelinde, soyut bir makine , her bir fonksiyonun veya her bir yüklemin sonucunu hesaplamak için gerekli işlemleri gerçekleştirir. Bu paradigmalarda, bir değişken atama ile değiştirilmez . Ana özelliklerden biri referans şeffaflığıdır , bu, bir ifadenin programın davranışını değiştirmeden sonucuyla değiştirilebileceği anlamına gelir.
fonksiyonelFonksiyonel paradigma, sonucu diğer hesaplamalarda kullanmak için formüllerin değerlendirilmesine dayanır; özyinelemeye dayanır ve modeli lambda hesabıdır , daha doğrusu normal kafa formundaki azalmadır . Tüm hesaplamalar, ifadeleri veya çağrı işlevlerini değerlendirir. Basitçe söylemek gerekirse, bir hesaplamanın sonucu, programın sonucunu üreten fonksiyon değerlendirilinceye kadar sonucuna ihtiyaç duyan hesaplama veya hesaplamalar için kullanılır. Fonksiyonel paradigma tarafından tanıtıldı Lisp ve ISWIM dilleri yanı sıra tarafından özyinelemeli fonksiyonlar bakımından Algol 60 1960'larda,. Diller gibi Yakut ve Scala ederken, fonksiyonel paradigma dahil desteği birkaç paradigmaların Haskell yalnızca işlevsel bir paradigma destekler ve OCaml , nesne paradigması ve küçük bir zorunluluk dozu ile paylaştığı işlevsel paradigmayı tercih eder.
MantıkMantıksal paradigma, aksiyomları, sorguları ve tümdengelim kurallarını kullanarak bir kümeyi araştırarak bir soruyu yanıtlamayı amaçlar. Bir programın yürütülmesi, tümdengelim kurallarını çağıran, bir dizideki gerçekleri arayan bir dizidir. Elde edilen veriler başka bir kurallar dizisiyle ilişkilendirilebilir ve daha sonra başka bir araştırma bağlamında kullanılabilir. Program değerlendirme ile yürütülür: sistem, tümdengelim yoluyla kümenin en az bir elemanına karşılık gelen tüm ifadeleri arar. Programcı kuralları ifade eder ve sistem süreci yönlendirir. Mantıksal paradigma, 1970 yılında Prolog dili tarafından tanıtıldı .
Nesne yönelimli paradigma, büyük bir programın birbirinden izole edilmiş birkaç modüle bölünmesini kolaylaştırmayı amaçlamaktadır. Nesne ve kalıtım kavramlarını tanıtır. Bir nesne, bir özne ile ilgili değişkenleri ve işlevleri içerir. Değişkenler private olabilir , yani yalnızca onları içeren nesne tarafından işlenebilirler. Bir nesne, dolaylı olarak atalarının değişkenlerini ve işlevlerini içerir ve bu kalıtım , kodun yeniden kullanılmasına yardımcı olur. Nesne yönelimli paradigma, verileri prosedürlerle güçlü bir şekilde ilişkilendirmeyi mümkün kılar. 1960'larda Simula dili tarafından tanıtıldı ve bilgisayarların bilgi işlem gücünün artmasının büyük programları çalıştırmayı mümkün kıldığı 1980'lerde popüler oldu. Nesne yönelimli programlamaya olanak sağlamak için çeşitli programlama dilleri zenginleştirilmiştir; Bunun böyledir C ++ (türetilmiş C dili ), Simula , Smalltalk , Swift ve Java nesne yönelimli paradigma içinde programlama dilleridir.
Eşzamanlı bir paradigmada, bir program aynı anda birkaç görevi gerçekleştirebilir. Bu paradigma, thread , aktif bekleme ve uzak fonksiyon çağrısı kavramlarını tanıtır . Bu kavramlar, 1980'lerde, teknolojik gelişmenin bir sonucu olarak, bir bilgisayarın birkaç işlemciye sahip ve aynı anda birkaç görevi yerine getirebilen bir makine haline gelmesiyle ortaya çıktı. C++ ve Java gibi çağdaş 2013 programlama dilleri , çok çekirdekli mikroişlemciler için uygundur ve iş parçacıklarının oluşturulmasına ve işlenmesine izin verir. Daha yakın zamanlarda, Go dili gibi tamamen eşzamanlılık yönetimine yönelik dillerin ortaya çıktığını gördük .
Programlama dillerinin büyük çoğunluğunda kaynak kod metindir, bu da iki boyutlu nesneleri ifade etmeyi zorlaştırır. Delphi veya C# gibi bir programlama dili , nesneleri sürükleyip bırakarak manipüle etmenize olanak tanır ve elde edilen çizim daha sonra nesne yönelimli ve olay güdümlü bir metin sunumuna çevrilir. Görsel paradigma, 1980'lerin sonunda Alan Kay tarafından Smalltalk dilinde , grafik arayüzlerin programlanmasını kolaylaştırmak amacıyla tanıtıldı .
Etkileşimli bir program bir soru sorar ve cevaba göre eylemler gerçekleştirirken, olay tarzında program hiçbir şey beklemez ve bir şey olduğunda yürütülür. Örneğin, kullanıcı fareyi hareket ettirir veya bir düğmeye basar. Bu paradigmada programlama, olaylara yanıt olarak alınacak eylemleri tanımlamakla ilgilidir. Ve basamaklı bir eylem, başka bir olaya karşılık gelen başka bir eylemi tetikleyebilir. Olay paradigması 1970'lerde Simula dili tarafından tanıtıldı , grafik arayüzlerin ve web uygulamalarının ortaya çıkmasıyla popüler hale geldi.
1990'larda İnternet'in ortaya çıkmasıyla birlikte, bilgisayarlar arasında veri, görüntü ve kod alışverişi yapıldı. Bir bilgisayardan sonuç istenirse gerekli programı çalıştırıp sonucu gönderebilir. Ayrıca sonucu hesaplamak için gerekli kodu istemci bilgisayara gönderebilir. Program nadiren makine diline çevrilir , bunun yerine yorumlanır veya bir ara forma, bir sanal makine tarafından yürütülecek olan bayt koduna çevrilir veya çalışma zamanında ( tam zamanında ) makine diline çevrilir . Java, PHP ve Javascript web tabanlı programlama dilleridir.
Bir dilin kullanımı otomatik bir çevirmen tarafından mümkün kılınır. O dilde yazılmış bir metni onunla bir şeyler yapmak için alan bir program, genellikle:
Metni makine dili , bayt kodu veya montaj dili gibi yürütülmesine izin verecek bir dile çeviren bir program .
İstenen talimatları yürüten bir program. Bu dili tanıyan bir makine ile aynı rolü oynar.
Her bilgi işlem aygıtı, işlemleri gerçekleştirmek için kullanılabilecek bir dizi talimata sahiptir. Talimatlar, aritmetik veya mantıksal hesaplamalar yapmanıza, verileri taşımanıza veya kopyalamanıza veya diğer talimatların yürütülmesine dalmanıza izin verir. Bu komutlar, her bir dizinin gerçekleştirilecek olan işlemin koduna ve işlenenlere, yani ilgili verilere karşılık geldiği bit dizileri biçiminde kaydedilir; makine dilidir.
Çeviri birkaç aşamada gerçekleşir. İlk olarak, çevirmen programda kullanılan dil öğelerini tanımladığı bir sözcük analizi yapar . Bir sonraki adımda, ayrıştırmada , çevirmen yönergeler oluşturmak için programda dil öğelerinin nasıl birleştirildiğini yansıtan bir ağaç diyagramı oluşturur. Ardından semantik analiz sırasında çevirmen, hedef dilde gerekli olacak işlemi ve talimatları gerçekleştirmenin mümkün olup olmadığını belirler.
Montaj programlama dilinde, makine talimatlarına atıfta bulunmak için hile kelimeleri (mnemonic) kullanılır. Talimatlar, yapıcıya bağlı olarak farklılık gösterir ve aynı şey anımsatıcılar için de geçerlidir. Bir montaj programı, her bir anımsatıcıyı karşılık gelen bit dizisine çevirir.
Programlama dilleri genellikle bir çalışma zamanı kullanarak çalışır .
Çalışma zamanı (çeviri: yürütücü ), programlama dilini uygulayan, veri kopyalama gibi basit işlemlerin yanı sıra çok daha karmaşık işlemlerin gerçekleştirilmesine izin veren bir dizi yazılım kitaplığıdır .
Bir programı makine diline çevirirken, basit işlemler ilgili makine dili talimatlarına çevrilirken, karmaşık işlemler çalışma zamanı işlevlerinin kullanımlarına çevrilir . Bazı programlama dillerinde, tüm talimatlar, daha sonra bilgisayar platformunun sunduğu olanaklar ile programlama diline özgü yapılar arasında bir aracı görevi gören çalışma zamanının kullanımlarına çevrilir .
Her programlama dilinin, prosedürlerin veya işlevlerin yürütülmesini çevirmenin, değişkenleri belleğe yerleştirmenin ve parametreleri geçirmenin geleneksel bir yolu vardır . Bu kurallar çalışma zamanı tarafından uygulanır . Çalışma zamanı ayrıca, çöp toplama veya yansıtma gibi programlama dillerinin bazı gelişmiş özelliklerini uygulamak için kullanılır.
Programlama dilleri genellikle kendi kendine uygulanır, yani o programlama dilinin derleyicisi dilin kendisinde uygulanır. Örnek: Pascal dili için bir derleyici Pascal dilinde yazılabilir.
Çöp toplayıcı , istisnaları, olayları veya iş parçacıklarını işleme gibi gelişmiş özellikler ve ayrıca geç bağlama ve yansıtma, çalışma zamanı programlama dilleri tarafından uygulanır .
Kullanılmayan değişkenleri kaldıran ve onlar için ayrılmış bellek alanını boşaltan bir mekanizma.
Beklenmedik, genellikle tesadüfi bir gerçek, programın normal akışının başarısız olmasına neden olur ve bu istisnai gerçek , devam etmeden önce program tarafından halledilmelidir. Bazı programlama dilleri, programın normal akışını kasıtlı olarak durdurmanıza izin verir.
Belirli bir koşul karşılandığında yürütülecek bir prosedür. Olaylar özellikle grafik arayüzleri uygulamak için kullanılır .
Yürütülen bir dizi talimat. Manipüle dilleri Programlama ipler birden fazla görevi aynı anda yapılmasına izin verir. İşletim sistemleri tarafından sunulan bu eşzamanlı yürütme olanağı , programlama dillerinin çalışma zamanı tarafından da hafif biçimde sunulmaktadır .
Bağlama işlemi (İngilizce geç bağlama veya dinamik bağlama ), bir programın her tanımlayıcısını ilgili bellek konumuyla ilişkilendirmekten oluşur. Bu işlem, program ya da hemen önce icrası sırasında, program translasyon sırasında gerçekleştirilebilir, olduğu söylenir geç bağlama işlemi çok geç gerçekleştirildiği zaman, ilgili konum kullanılır hemen önce.
Bir programın kendi özellikleriyle ilgili bilgi edinme olasılığı. Programlama dili talimatları, bir programın kendisi hakkında bilgi edinmesine ve onu veriler gibi işlemesine izin verir.
Saf işlevsel dillerde zorunlu özellikleri manipüle etmeye izin veren bir yapı.
Programın kavramı ikinci yarısında kademeli olarak görünse de XIX E yüzyılın ilk programlama dilleri her biri kendi dilini oluşturmak mümkün olan, dillerin sayısı tespit etmek imkansızdır etrafında 1950'ye kadar görünmez. şu anda mevcut.
Birçok dil belirli bir uygulama veya etki alanında uzmanlaşmış olduğundan programlama dillerini kullanımlarına göre de sınıflandırabiliriz.
Bu dil türü, bir istemci ve bir sunucu arasında daha fazla etkileşim için kullanılır .
Web sunucusu tarafında bu, içeriği her ekranda oluşturulan sayfaların üretilmesini mümkün kılar. Bu diller ayrıca veritabanlarıyla iletişim kurmak için sıklıkla bir dille birleştirilir (örnekler: PHP , LiveCode ).
İstemci tarafında (genellikle web tarayıcısı ) bu diller, kullanıcının belirli eylemlerine sunucuyu sorgulamaya gerek kalmadan tepki verme imkanı sunar. Örneğin, bir web sayfasındaki JavaScript , bir formdaki kullanıcı girişine tepki verebilir (ve verilerin biçimini kontrol edebilir ).
Bazı diller hem istemci hem de sunucu yönlerinin geliştirilmesine izin verir. Ocsigen , Hop , Dart ve hatta Sunucu Tarafı JavaScript'te durum böyledir .
Teorik programlama dili bazen bilgisayarların çalışmasını teorik olarak tanımlamak için kullanılan resmi sistemler olarak adlandırılır . Uygulama geliştirmek için değil, modelleri temsil etmek ve bazı özelliklerini göstermek için kullanılırlar.
Biz alıntı yapabilirsiniz Turing makinesi ve Kilise'nin hem λ-taşı, bir bilgisayarın buluşu öncesine 1930'lardan kalma tarihi ve bu nedenle. λ-hesabı daha sonra işlevsel programlama dilleri ailesi için teorik bir temel olarak kullanıldı . 1980'lerde Robin Milner , rakip sistemleri modellemek için π-hesabı geliştirdi .
Egzotik diller, eksiksiz ve işlevsel gramerler oluşturmayı amaçlar, ancak geleneklerden uzak bir paradigmada. Birçoğu da şaka olarak kabul edilir.
Bu dillerin uygulamaya konması genellikle zordur ve bu nedenle nadiren kullanılır.
Reaktif sistemler için senkron programlama dilleri: Esterel , Lustre .
Eğitim dilleriSözde kod genellikle pedagojik amacı sadece var.
R , SAS ve xLispStat hem bir istatistik dili hem de yazılımdır.
Sayısal Kontrol (NC) programlama dilleriBir otomatik takım tezgahı veya Sayısal Kontrol (NC), gerçekleştirmek için bir programlama dili ihtiyacı torna veya freze operasyonları ...
Endüstriyel programlanabilir mantık denetleyicilerinin (PLC'ler) programlama dilleriNyquist bir sentez ve ses analiz dilidir. Pure Data , prosedürel bir programlama diline dayalı grafik müzik oluşturma yazılımıdır.
Üç Portekiz üniversitesinden altı araştırmacı, “Programlama Dillerinde Enerji Verimliliği” başlıklı 27 programlama dilinin karşılaştırmalı bir çalışmasını gerçekleştirdi. Güç tüketimine, çalışma zamanına ve bellek kullanımına baktılar. Bir dizi karşılaştırılabilir program elde etmek için araştırmacılar, Bilgisayar Dili Kıyaslama Oyununu (CLBG) araştırdı.
Ortaya çıkan tablo, ölçülen ölçüt için en verimli dile göre normalleştirilmiş enerji tüketimi (Enerji), yürütme süresi (Zaman) ve maksimum bellek tüketimi (Mb) için genel sonuçları (ortalama olarak) sunar.
En iyi beş dil şunlardır:
Her dilin popülaritesini ölçmek zordur; ancak, mühendisler için eğitim / kurs sayısı ve bir programlama dilinde uzmanlaşmış bayi / serbest çalışan sayısına dayanan aylık olarak hesaplanan TIOBE endeksi vardır . Bu parça parça bir bilgidir, ancak programcıların tercihleri açısından eğilimler hakkında bir fikir verebilir.