Cтраница 2
На рис. 2.1 дан пример блочной структуры программы, написанной на языке Паскаль. Операторы определяют действия, выполняемые в программе. В Паскале используются как простые, так и структурные операторы. [16]
Динамическое распределение памяти связано с блочной структурой программы. Блоки определяют область действия описанных в них объектов и предназначены прежде всего для экономии памяти в процессе исполнения программы. Экономия достигается размещением величин, описанных в независимых блоках, в Одних и тех же ячейках памяти. Однако сами по себе блоки не предопределяют необходимости динамического распределения памяти. Например, в программах на языке АЛМО, имеющих блочную структуру, память распределяется статически. [17]
Важным достоинством языка является возможность использования блочной структуры программы и динамического распределения памяти. [18]
Важным достоинством языка является возможность использования блочной структуры программы и динамического распределения памяти. Первое состоит в том, что программа может быть разделена на отдельные части и составляться независимо различными программистами с введением необходимых ( собственных) обозначений переменных. Второе заключается в том, что объем обрабатываемой информации может меняться для одной и той же задачи, причем при выполнении программы память выделяется в пределах затребованного объема без резервирования по максимуму данных. [19]
Важным достоинством языка является возможность использования блочной структуры программы и динамического распределения памяти. [20]
Наконец, еще одним характерным свойством языка Алгол-60 является блочная структура программы. Блок определяет область действия описаний переменных, массивов, процедур и меток. Это позволяет экономно использовать память при выполнении программы. Но для реализации этой возможности нужно предусмотреть динамическое перераспределение памяти в процессе исполнения программы при входе в каждый новый блок. Транслятор должен обеспечить программирование соответствующих действий в объектной программе. [21]
Основной выигрыш, получаемый в языке программирования от введения блочной структуры программы, - экономия памяти. Так, в ФОРТРАНе, где блочная структура синтаксисом языка не предусмотрена, каждая объявленная ( явно или неявно) переменная или массив получает необходимую область памяти в процессе трансляции программы. В АЛГОЛе же транслятор строит программу так, что на этапе трансляции память выделяется только тем объектам, которые объявляются в самом старшем блоке. Для остальных объектов память выделяется не транслятором, а самой программой в момент передачи управления тому блоку, в котором эти объекты объявлены. Это, естественно, несколько усложняет программу, но позволяет значительно экономить память. Эти два вида выделения участков памяти получили наименование статического и автоматического. [22]
![]() |
Организация таблицы имен. [23] |
Таблица имен организована в виде блочного стека, отражающего блочную структуру программы. [24]
Паскаль является структурным языком благодаря следующим трем ключевым элементам: описаниям, блочной структуре программ и процедурному аппарату. В описаниях ( объявлениях) программист должен давать определенную информацию для компилятора относительно структуры программы. В них указываются имена и типы всех переменных, которые будут использованы в программе, а также имена всех меток, на которые будут во время выполнения программы осуществляться переходы с помощью оператора GOTO. Кроме того, описания позволяют хорошему программисту предоставлять компилятору дополнительную информацию и улучшать удобочитаемость программы следующими способами: посредством использования идентификаторов, которые отображают константы программы; путем ограничения области значений переменных, что позволяет автоматически обнаруживать некоторые ошибки; благодаря явному определению структур данных, которое является понятным и естественным для программиста и воспринимается компилятором. [25]
Если переменные описаны в процедуре, то они, как это следует из блочной структуры программы, локализованы внутри. Следовательно, при выходе из процедуры их значения не сохраняются. [26]
Данные, обеспечивающие возобновление нормального выполнения операторов программы после вычисления значения процедуры-функции с учетом блочной структуры программы. [27]
Две из основных характеристик ПЛ / 1, которые перенесены в подмножество, - относительная машинная независимость и блочная структура программы. Они позволяют уменьшить затраты на внесение изменений в программу при любых изменениях используемого программой оборудования. [28]
В реализациях языка Алгол ( в компиляторах) часто етэк используется в процессе счета, позволяя организовать локализацию переменных и блочную структуру программ: при входе в 5лок по - являются локальные объекты, требующие распределения памяти, а по завершении srj работы эти объекты ликвидируются. [29]
Сюда относятся средства поддержки метода структурного программирования конструкциями if-then - else, while-do, repeat-until, switch ( case), а также блочная структура программ с ограничением областей действия данных. Эти черты свойственны языкам Паскаль, Модула, Ада, Си, Алгол, ПЛ / 1, Литтл. [30]