Поколения языков программирования

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Языки программирования принято делить на пять поколений.

Первое поколение

[править | править код]

К первому поколению (англ. first-generation programming language, 1GL) относят машинные языки — языки программирования на уровне команд процессора конкретной машины. Для программирования не использовался транслятор, команды программы вводились непосредственно в машинном коде переключателями на передней панели машины. Такие языки были хороши для детального понимания функционирования конкретной машины, но сложны для изучения и решения прикладных задач.

Второе поколение

[править | править код]

Языки второго поколения (2GL) создавались для того, чтобы облегчить тяжёлую работу по программированию, перейдя от машинного кода ближе к более удобным мнемоническим обозначениям команд. Под языками второго поколения понимались ассемблеры (автокоды). Они, тем не менее, остались языками низкого уровня, т.е. языками, зависящими напрямую от системы команд и способов адресации ячеек памяти конкретной модели ЭВМ.

Третье поколение

[править | править код]

Под третьим поколением (3GL) понимают языки высокого уровня (ЯВУ), дающие более высокий уровень абстракции, чем ассемблер. Эти языки появились в 1950-е годы, в частности, такие языки как Фортран и Лисп. Некоторой проблемой, с которыми столкнулись разработчики языков второго поколения, стала задача убедить клиентов в том, что созданный компилятором код достаточно хорош, чтобы оправдать отказ от программирования на ассемблере. Скептицизм по поводу возможности создания эффективных программ с помощью компиляторов ЯВУ был довольно распространён, поэтому разработчикам таких систем должны были продемонстрировать, что они действительно могут генерировать почти такой же эффективный код, как и при ручном кодировании, причём практически для любой исходной задачи.

Одной из важнейших отличительных черт языков третьего поколения стала независимость от аппаратного обеспечения, то есть выражение алгоритма в форме, не зависящей от конкретных особенностей машины, на которой он будет исполняться, что позволило переносить программы с одной ЭВМ на другую. При этом производительность труда программистов значительно возросла, а число ошибок сократилось за счет того, что например, в Фортране (ФОРмул ТРАНслятор) стало возможно писать, подобно алгебраической записи, например, "A = X + B" вместо использования мнемонического обозначения машинной команды, такого как "ADD".Исходный текст программы, написанный на языке третьего поколения, перед исполнением транслируется либо непосредственно в машинные команды, либо в текст на ассемблере, и затем уже ассемблируется. При компиляции, в отличие от предыдущих поколений, уже нет соответствия один-к-одному между инструкциями программы и генерируемым кодом.

Стала широко использоваться интерпретация программ — при этом инструкции программы не преобразуются в машинный код, а исполняются непосредственно одна за другой. Независимость от «железа» достигается за счёт использования интерпретатора - виртуальной машины времени исполнения, скомпилированного под конкретную аппаратную платформу.

Четвёртое поколение

[править | править код]

Термин языки программирования четвёртого поколения (4GL) лучше представлять как среды разработки четвёртого поколения. Они относятся к временному периоду с 1970-х по начало 1990-х.

Языки этого поколения предназначены для реализации крупных проектов, повышают их надежность и скорость создания, ориентированы на специализированные области применения, и используют не универсальные, а проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области, например, бухгалтерского учета в системе 1С. В эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой на языках предыдущих поколений потребовались бы многие строки исходного текста[1].

Пятое поколение

[править | править код]

Рождение языков пятого поколения произошло в середине 90-х годов. К ним относятся средства автоматизированного создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Одна из базовых идей состояла в возможности автоматического формирования результирующего текста на универсальных языках программирования (который необходимо откомпилировать). Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием[1]. На данный момент стоит отметить также такие понятия, как lowcode и даже zerocode программирование, а также генерацию программ с помощью искусственного интеллекта, например, ChatGPT.

Примечания

[править | править код]
  1. 1 2 Пятое поколение - языки программирования или прикладные системы? www.pcweek.ru. Дата обращения: 10 декабря 2016. Архивировано 20 декабря 2016 года.