4. ve 5. programlama dili neslleri nelerdir? Dahası var mı? [kapalı]


36

Genellikle okul / kolej düzeyinde sınıflandırıldığından, popüler programlama dilleri (C #, Java, C ++) tüm 3. nesil dillerdir (makinenin fiziksel bölümlerinden daha yüksek düzeyde soyutlama ile). Ayrıca, montaj dilleri 2. ve makine dilleri 1. nesil diller olarak sınıflandırılır.

Başlangıçta, SQL'in 4. nesil dil olarak kabul edilmesi gerektiğini düşünüyordum, çünkü bu daha soyut ve döngü detaylarından ve daha açıklayıcı olmaktan uzaktı.

Şimdi, 4. nesil ve 5. nesil dillerin olduğunu öğrendim, fakat herhangi bir programlama dili veya teknolojisinin 4. veya 5. nesil dili olarak kategorize edilmesinin temeli nedir?

Ayrıca 6. veya 7. nesil diller var mı?



12
Ah, eğer bir ns Gen dilini neyin neye benzediğine karar verebilseydim ... İnsanın gerçekten bağlayabileceği bir kriter yok (daha yüksek gen dillerinin çıplak metalden daha düşük seviyeden ziyade çıkarıldığını belirtmek dışında). üzerinde anlaşmaya varılmadı).
Oded

5
Hangi "nesil" C'dir? 4. ve 5. nesil dillerden bazı örnekler verebilir ve bize her nesli neyin neyin yaptığını söyleyebilir misiniz? Yani hangi kriterleri bir dili 'n' kuşağı olarak tanımlar?
Mawg

3
Tbh. X. jenerasyon dili kavramının gerçekten alakalı olduğunu sanmıyorum.
Pieter B

5
14. nesil bir dil yapıyorum ve saf büyücülük olacak, çünkü yedinci oğlunun yedinci oğlu ...
David Conrad

Yanıtlar:


36

Basit kuşaklara genel bakış: dil yapı taşları olduğu zaman n'ci nesildir

  1. bit
  2. Talimatlar
  3. Soyut işlemler
  4. Etki alanı nesneleri
  5. Program Hedefleri

Dolayısıyla Google Go veya Apple Swift kadar yeni diller bile hala 3. nesil. Regex bir metin eşleştirme dilidir, bu onu 4. nesilden erken bir dil yapar. Bu tanım gereğince 4. nesil DSL'ler ile yakından aynı hizadadır. Ancak, C ++ gibi diller gibi gerçek dünya türlerini sahip olabileceği not Lengthve Weightek olarak floatve doubleonlara melez 3 / 4. nesil yapar.

5. nesil diller pratikte mevcut değildir, çünkü genellikle hiçbir zaman gerçekleşmeyen bir AI seviyesi gerektirir. Programcıların hala ihtiyaç duydukları gerçeği, programcı olmayanların bir bilgisayara tam olarak istediklerini tam olarak söyleyememeleridir.


1
Son paragraf hakkında NB: J.Pitrat'ın blogunda AI ve programcılarla ilgili ilginç şeyler var
Basile Starynkevitch

5
Bu DONALD problemblog problemi ne kadar uzak olduğumuzu sudo make me a sandwichve endişe verici bir şekilde son 50 yılda ne kadar ilerleme kaydettiğimizi vurgulamaktadır .
MS’e göre

1
@AndrewHoffmann Bunda yanlış olan ne? Bir köprü inşa ediyorsanız, yapınız için doğru malzemeye sahip olmanız daha iyi olur ve perçinler doğru boyutta olsa daha iyi olur (ve kaç tane boyut vardır?).
didierc

1
@AndrewHoffman: AI, yazılım mühendisliği konusu değil, akademi'de çoğunlukla bir CS konusu olmuştur. Gerçek mühendisliğin bir faydası olduğu söylenebilir. İlk kendi kendine sürüş arabasının Google’ın görünmesinin iyi bir nedeni olabilir.
MSalters

6
@AndrewHoffman - kendin için konuş. Ben bir yazılım mühendisiyim ve her gün oldukça standart mühendislik uygulamaları kullanıyorum. Ayrıca, sertifikalı bir mühendisim. Bence, yorumunuzun tamamı kişisel deneyimlerinize dayanarak aslında saçma sapan bir saçmalık.
Mühendis Dollery,

88

“Nth-nesil dil” bir terimdir. Bu bir pazarlama terimidir. N> 2 için “nth neslini” neyin tam olarak tanımladığının evrensel olarak kabul edilmiş bir tanımı yoktur. Bazı insanlar Perl veya Python gibi “scripting” dillerini 4GL olarak sınıflandırır, çünkü bazıları C’den çok daha yüksek seviyedeler, 4GL'lerin özellikleri, etki alanına özgü olmalarıdır, örneğin SQL. Hatta bazı nitratlar, Java'nın (90'ların ortası bir nesne yönelimi ve çöp toplama ve yansıma dolu bir dil) Fortran (50'lerden) ve C (70'lerden) ile aynı “3GL” kategorisinde olduğunu düşünüyor.

“4. Nesil Dil” gibi şaşkın bir kategorizasyonun bir faydası yok. Eski ders kitaplarında görebilir veya 80'lerde programlamaya başlayan insanlardan duyabilirsiniz, ancak “4GL” gibi bir etiket, yazarın tam olarak ne anlama geldiğine dair bir açıklama yapmadan değersizdir.

Hiç kimse “4GL” ile ne demek istediğinizi hemen anlamadığından, bu kategorileri kullanmamalısınız. Bunun yerine, ne demek istediğinizi tam olarak iletmek için özel terimler kullanın. Örneğin tüm NASM, LLVM IR ve Jasmin, montaj dilleridir, ancak son iki VM'yi hedefler ve sonuncusu da nesne yönelimli bir programlama dilidir. Bunların hepsi 2GL mi? SQL, 80'lerden gelen veritabanı sorguları için kısmen bildirmeli, etki alanına özgü bir dildir. Ve TeX, 70'lerden gelen dizgi için alana özgü bir dildir. Her ikisi de 4GL'dir, çünkü ikisi de daha az veya daha fazla alana özgüdür?


22
8G dili geliştiriyorum. Akıllara durgunluk verecek. ... julienne kızartması bile olacak. Ben üç kolay ödeme lisansı satacağım ...;)
BrianH

10
Bence programlama dili kuşakları bir şekilde jet avcı kuşaklarına karşılık gelmelidir . Bu uygunsuzluk, konuyla ilgili bir RFC'yi haklı çıkarmak için yeterli görünüyor.
toniedzwiedz

11
Ah, bu, beşinci nesil dillerinin yakında birçok programcının işsiz kalması için kullanımı o kadar kolay olacağı zamanları hatırlıyor.
Robotu

5
@ Izkata Bir 1GL ikili makine kodudur (örn. Amd64 komut seti). 2GL, makine kodu için anımsatıcı (örneğin, GAS) sağlayan bir metin derleme dilidir. Bir 3GL, makine talimatları üzerinden soyutlayan bir şeydir. Bunu yapan ilk kişi Fortran, programcıların gibi ifadeleri ve değişkenleri kullanmalarını sağlayarak oldu (I + 7) * 3. Bununla birlikte, 3GL kategorisinin nerede bittiği ve 4GL ve 5GL'nin ne anlama geldiği konusunda bir fikir birliği yoktur.
05:

5
“Bazı nitratlar, Java'nın ... Fortran'la aynı“ 3GL ”kategorisine girdiğini bile düşünüyorlar ...” - diğer nitwitler, iki şey onlar için çok farklı görünüyorsa, onları gruplandıran bir sınıflandırma düzeninin olamayacağına inanıyor. birlikte hangi kriterlere göre bu plana uygun? ;-p
Steve Jessop
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.