Классификация языков программирования. Критерии выбора среды и языка разработки программ.

Также стоит отметить, что в случае арифметических выражений производится учет приоритета операций. Необходимо понимать, что это делает грамматику в общем случае не контекстно-свободной и требуется специальное задание приоритета для того, чтобы в некоторых позициях в строке определить какое действие необходимо делать – сдвиг к следующему символу или построение новой вершины дерева, описывающего процесс вычисления выражения.
Управляющие конструкции в Fortran представляют собой выражения, приведенные ниже. Это безусловный переход (GO TO); условный переход, исходя из значения переменной по строкам; присвоение значения переменной; вычисляемый условный переход, исходя из значения переменной, где значение переменной должно указывать на ветку, по которой осуществляется переход; SENSE LIGHT – зажигает или отключает определенную лампу на консоли 704 (специальная консоль для устройства IBM704); IF (SENSE LIGHT i), IF(SENSE SWITCH) – переход, исходя из того, включена ли лампа Sense Light на консоли IBM704; проверки переполнения и деления на ноль; пауза; остановка машины и цикл DO.
Как можно заметить, что, в отличие от современных языков программирования, в Fortran управляющие конструкции включают в себя не только непосредственно управление порядком работы программы, но и обращение к аппаратным возможностям самого устройства, что по идее может свидетельствовать о недостаточном отделении абстрактных управляющих конструкций от конструкций для работы с вычислительным устройством.
Также в первичной реализации Fortran присутствует широкий набор для ввода и вывода, учтена возможность записи работы с магнитной лентой.
Спецификационные конструкции Fortran могут представлять собой объявление массива. Оно представляет собой такое же выражение, как и обращение к элементу, предваряемое словом DIMENSION. Другая конструкция, EQUIALENCE позволяет программисту контролировать местоположение переменных в сегментах и создавать объединения, когда несколько переменных указывают на один участок памяти.
Отдельно стоит отметить конструкцию FREQUENCY. Она позволяет задать вероятность исполнения той или иной ветки программы. Это могло быть необходимо, так как в случае процессора, это могло бы определить частоту переходов и за счет оптимизации предсказания переходов сократить время, затрачиваемое на переходы.
Можно сказать, что Fortran действительно является первым высокоуровневым языком с собственным интерпретатором. Это предоставило возможность программистам конструировать куда более сложные программы и писать более понятный программный код. Однако реализация не была лишена изъянов, присущих языкам, близким к машинным кодам: управляющие конструкции были смешаны с конструкциями самого устройства, был малый набор функций библиотеки, конструкция FREQUENCY и.т.д. Стоит отметить, что язык Fortran совершенствовался все эти годы и остается популярным до сих пор. В новом стандарте данного языка присутствуют конструкции ООП, а также средства для работы с многопоточностью, столь необходимые современному программисту.
Другим языком, который в дальнейшем очень сильно повлиял на развитие языков программирования и языков для структурного программирования в частности является Алгол, изобретенный в 1958г. Данный разрабатывался комитетом по языку высокого уровня IFIP и позднее был усовершенствован в 1964-1968 годах.
При разработке данного языка впервые использовалась форма записи продукционных правил, в дальнейшем именуемая как БНФ – форма Бэкуса-Наура.
Данная форма описывается следующим образом:
<определяемый символ> ::= <посл.1> <посл.2> . . . <посл.n>, где, посл.1, посл.2, посл. n — последовательности символов::= — разделяет левую и правую часть продукционных правил — позволяет задать несколько последовательностей, соответствующих одному символу.
Также в языке использовалось три различных синтаксиса – референсный и стандартизованный, публикационный, а также синтаксис для реализации, который должен был решить проблемы портирования языка на новое устройство.
Помимо этого, были такие новшества в языке, как условная конструкция if…then, а также for и while, которые потом были использованы с теми или иными изменениями во всех существующих на текущий момент императивных языках.
Кроме этого, Алгол вводит понятие блока исполняемого кода, а также понятие процедуры, которое отсутствовало в изначальном стандарте Fortran.
Это привело к тому, что появились куда более совершенные блоки кода, позволяющие повторное использование.
Также впервые в Алгол появилось объявление типа данных переменной такое, как оно выглядит в современных языках программирования со статической типизацией в виде выражения «<тип переменной> <имя переменной>». Были описаны такие типы, как real, integer,array, boolean и другие.
Стоит отметить, что реализации самого языка довольно сильно отличались от устройства к устройству. Этому отчасти способствовал и сам стандарт, давая возможность в зависимости от реализации определять свои ключевые слова.
Однако определяемых императивных создания кода, типизация переменных и наличие полноценных функций, пользователем дали существенный толчок к развитию языков программирования и возможностей более быстрого в дальнейшем, идеи языков Алгол и Fortran получили развитие в других языках структурного программирования.

Нужна похожая работа?

Оставь заявку на бесплатный расчёт

Смотреть все Еще 421 дипломных работ