Поскольку это часто классифицируется на уровне школы / колледжа, популярные языки программирования (C #, Java, C ++) - это все языки 3-го поколения (с более высоким уровнем абстракции от физических частей машины). Кроме того, языки ассемблера классифицируются как 2-е, а машинные языки - как языки 1-го поколения.
Изначально я думал, что SQL следует рассматривать как язык 4-го поколения, потому что он более абстрактен и далек от подробностей циклического анализа и более нагляден.
Только сейчас я обнаружил, что существуют языки 4-го и 5-го поколений, но на чем основывается любой язык программирования или технология, относящиеся к языкам 4-го или 5-го поколения?
Кроме того, есть ли языки 6-го или 7-го поколения?
Ответы:
Обзор простых поколений: язык n-го поколения, когда
Следовательно, даже такие новые языки, как Google Go или Apple Swift, все еще остаются третьим поколением. Regex - это язык сопоставления текста, что делает его языком раннего 4-го поколения. По этому определению 4-е поколение тесно связано с DSL. Однако обратите внимание, что языки, такие как C ++, могут иметь реальные типы, такие как
Length
иWeight
в дополнение кfloat
иdouble
, что делает их гибридными 3-го / 4-го поколения.Языки 5-го поколения практически не существуют, так как они обычно требуют уровня искусственного интеллекта, который никогда не материализовался. Тот факт, что мы, программисты, все еще нужны, заключается именно в том, что непрограммисты не могут с достаточной точностью сказать компьютеру, чего именно они хотят.
источник
DONALD problem
в этом блоге подчеркивает, насколько далеко мы все еще далеки от этогоsudo make me a sandwich
, и, что нас беспокоит, какой прогресс мы достигли за последние 50 лет.«Язык n-го поколения» - модное слово. Это маркетинговый термин. Не существует общепринятого определения того, что именно определяет «n-е поколение» для n> 2. Некоторые люди классифицируют «скриптовые» языки, такие как Perl или Python, как 4GL, потому что они намного более высокого уровня, чем C, в то время как другие считают, что определение Характеристики 4GL заключаются в том, что они зависят от домена, например, SQL. Некоторые дураки даже думают, что Java (язык середины 90-х, полный объектной ориентации, сбора и отражения мусора) относится к той же категории «3GL», что и Fortran (из 50-х) и C (из 70-х).
Такая запутанная классификация, как «язык 4-го поколения», бесполезна. Вы можете увидеть это в старых учебниках или услышать от людей, которые начали программировать в 80-х годах, но такой тег, как «4GL», ничего не стоит без сопроводительного объяснения того, что именно автор подразумевает под этим.
Поскольку никто не сразу понимает, что вы подразумеваете под «4GL», вам не следует использовать такие классификации. Вместо этого используйте конкретные термины, чтобы точно сказать, что вы имеете в виду. Например, все NASM, LLVM IR и Jasmin являются языками ассемблера, но последние две целевые виртуальные машины и последняя также являются объектно-ориентированным языком программирования. Все эти 2GLs? SQL является частично декларативным, специфичным для домена языком запросов к базе данных 80-х годов. А TeX - это предметно-ориентированный язык для набора текста с 70-х годов. Они оба 4GL, так как они более или менее специфичны для домена?
источник
(I + 7) * 3
. Тем не менее, нет единого мнения о том, где заканчивается категория 3GL и что конкретно означают 4GL и 5GL.