Циклическая инструкция - Большая Энциклопедия Нефти и Газа, статья, страница 2
И волки сыты, и овцы целы, и пастуху вечная память. Законы Мерфи (еще...)

Циклическая инструкция

Cтраница 2


Находят применение и многие другие варианты циклических инструкций. Мы не ставим своей целью осветить все их. Иллюстрацию дополнительных возможностей можно найти в части II при описании языков Алгол, ПЛ / I и Кобол. Циклические инструкции образуют еще одну основную альтернативу механизму меток и переходов. Как и в случае условных инструкций, циклические инструкции не требуют использования меток, и структура всей инструкции легко анализируется.  [16]

Вычисляется ли это значение только один раз перед первым выполнением тела или оно вычисляется перед каждым выполнением тела. Результаты будут одинаковыми, если значение / С не изменяется внутри тела. Но если оно все же меняется, то результат может оказаться весьма удивительным; например, повторение может никогда не кончиться если каждый раз при выполнении тела значение К увеличивается. Для этой простой циклической инструкции разумно принять, что К вычисляется всего один раз перед началом выполнения. Второй важный вопрос: что делать, если начальное значение Л отрицательное или нуль. Следует ли просто пропустить выполнение тела, выполнить его один раз или рассматривать это как ошибку и остановить выполнение всей программы.  [17]

Большинство изученных в этой главе механизмов управления последовательностью действий являются механизмами общего назначения в том смысле, что они имеются во многих языках программирования и не зависят от структур данных или операций, используемых в этих языках. Вместе с тем было бы неправильно при изучении механизмов управления последовательностью действий не рассмотреть их тесную взаимосвязь со структурами данных и операциями языка. В то время как разнообразие механизмов управления последовательностью действий может оказывать влияние на общность языка, одним из важнейших факторов, определяющих естественность языка программирования, является возможность выбора механизмов управления последовательностью действий, соответствующих структурам данных и операциям, имеющимся в языке. Например, исключение циклических инструкций из Алгола и Фортрана безнадежно испортило бы эти языки, тогда как АПЛ вполне обходится без циклических инструкций. Аналогично, нельзя представить себе Лисп без рекурсивных подпрограмм, однако в Фортране рекурсия не допускается, а в Алголе рекурсия, хотя и допускается, играет незначительную роль. Чтобы объяснить это, нам нужно учесть то, что циклы удобны для поэлементной обработки массивов, а рекурсия - для обработки списочных структур.  [18]

Последовательная обработка этих структур также составляет важный аспект многих программ на Лиспе. На элементы списочных структур Лиспа нельзя ссылаться с помощью целых индексов, и форма этих структур весьма нерегулярна. Эти факты не позволяют эффективно применять циклические инструкции для последовательной обработки списочных структур.  [19]

Большинство изученных в этой главе механизмов управления последовательностью действий являются механизмами общего назначения в том смысле, что они имеются во многих языках программирования и не зависят от структур данных или операций, используемых в этих языках. Вместе с тем было бы неправильно при изучении механизмов управления последовательностью действий не рассмотреть их тесную взаимосвязь со структурами данных и операциями языка. В то время как разнообразие механизмов управления последовательностью действий может оказывать влияние на общность языка, одним из важнейших факторов, определяющих естественность языка программирования, является возможность выбора механизмов управления последовательностью действий, соответствующих структурам данных и операциям, имеющимся в языке. Например, исключение циклических инструкций из Алгола и Фортрана безнадежно испортило бы эти языки, тогда как АПЛ вполне обходится без циклических инструкций. Аналогично, нельзя представить себе Лисп без рекурсивных подпрограмм, однако в Фортране рекурсия не допускается, а в Алголе рекурсия, хотя и допускается, играет незначительную роль. Чтобы объяснить это, нам нужно учесть то, что циклы удобны для поэлементной обработки массивов, а рекурсия - для обработки списочных структур.  [20]

Находят применение и многие другие варианты циклических инструкций. Мы не ставим своей целью осветить все их. Иллюстрацию дополнительных возможностей можно найти в части II при описании языков Алгол, ПЛ / I и Кобол. Циклические инструкции образуют еще одну основную альтернативу механизму меток и переходов. Как и в случае условных инструкций, циклические инструкции не требуют использования меток, и структура всей инструкции легко анализируется.  [21]

Одним из простейших путей анализа этих механизмов является подход, основанный на сканерах структур данных. Этот термин был введен Вейзенбаумом [1963] в его языке Слип для работы с симметричными списками. Обрабатывая структуру данных с помощью сканера, мы первоначально устанавливаем сканер так, чтобы он указывал на желаемый первый элемент структуры. Затем сканер продвигается по структуре, последовательно указывая на различные ее элементы. В любой момент мы можем выбрать для обработки ( прочитать) элемент, на который указывает сканер, Для простого линейного массива наиболее подходящим сканерам служит целая переменная, увеличение и уменьшение значения этой переменной в точности соответствует продвижению сканера. Циклическая инструкция становится в этом случае мощным и естественным механизмом обработки массивов, поскольку позволяет создать соответствующий сканер массива и к тому же описать его начальную установку и продвижение по структуре.  [22]



Страницы:      1    2