Снобол - Большая Энциклопедия Нефти и Газа, статья, страница 3
Длина минуты зависит от того, по какую сторону от двери в туалете ты находишься. Законы Мерфи (еще...)

Снобол

Cтраница 3


Хотя параметры в Сноболе 4 передаются строго по значению, можно без труда получить некоторые эффекты передачи по ссылке и по имени.  [31]

Многие средства в Сноболе 4 требуют распределения памяти во время выполнения программы, например такие, как рекурсия, сопоставление с образцом и создание структуры данных. Поскольку подходящие аппаратные средства обычно отсутствуют, сложная система управления памятью должна моделироваться программно.  [32]

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

Например, хотя и Снобол 4, и Фортран позволяют определять массивы чисел и выполнять различные манипуляции с ними, при решении задач с большими числовыми массивами и большим количеством арифметических операций вряд ли стоило бы использовать Снобол, если есть Фортран. Если мы попытаемся найти причину такого превосходства Фортрана, сравнивая средства, обеспечиваемые этими языками, то в конечном счете придем к выводу, что все дело в разном времени связываний: в Сноболе 4 большинство связываний происходит во время выполнения программы, а в Фортране - во время трансляции. Таким образом, программа, написанная на Сноболе 4, большую часть времени выполнения тратила бы на создание и разрушение связываний, в то время как в фортранной версии программы большая часть тех же самых связываний устанавливается раз и навсегда при трансляции программы, и лишь небольшая часть их откладывается до выполнения. В результате фортранная версия программы выполняется гораздо эффективнее. И опять, следует искать ответ во времени связывания. Поскольку большая часть связываний выполняется в Фортране во время трансляции, до того как будут известны входные данные, на Фортране чрезвычайно трудно писать программы, которые во время выполнения могли бы приспосабливаться к большому числу различных ситуаций, порождаемых вариациями входных данных. Например, размер массивов и тип переменных фиксируются на Фортране во время трансляции. В Сноболе 4 связывание можно отложить до выполнения программы, когда будут исследованы входные данные и определятся наиболее подходящие связывания для этих конкретных входных данных.  [34]

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

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

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

Программы, написанные на Сноболе 4, выполняются довольно медленно, но гибкость этого языка может позволить использование более подходящих алгоритмов, чем алгоритмы, реализуемые на Фортране.  [38]

Для создания образцов в Сноболе 4 имеется широкий набор встроенных операций.  [39]

Управление последовательностью действий в Сноболе 4 очень простое. Широко используются выражения, определяющие цепочки, числа и образцы. Инструкции могут быть помечены, при этом каждая инструкция содержит поле перехода, с помощью которого можно явно указать преемника данной инструкции в случае ее успеха или неудачи. Инструкция может завершиться успешно или неудачно по ряду причин; чаще всего это зависит от успеха или неудачи операции сопоставления с образцом. Простой механизм рекурсивных вызовов и возвратов позволяет передавать управление подпрограммам. Операция обработки ссылки основана на правиле последней ассоциации и использует центральную таблицу среды ссылок.  [40]

Метод, применяемый в языке Снобол 4, требует резервирования в каждом блоке трех полей независимо от того, свободный он или нет.  [41]

Появление одного-едпнственного пробела внутри инструкции Снобола 4 может превратить простой вызов подпрограммы в инструкцию сопоставления с образцом, что приведет при выполнении программы к целому каскаду ошибок в других ее частях; потребуется немало труда, чтобы выявить породившую их синтаксическую ошибку. Несоответствие между числом открывающих и числом закрывающих скобок в Лиспе приводит к аналогичным проблемам. Мы вправе требовать, чтобы удобство чтения программы учитывало и то обстоятельство, что на стадии отладки программа, содержащая серьезные ошибки, не должна выглядеть правильной.  [42]

Сопоставление цепочки с образцом в языке Снобол 4 может служить еще одним примером.  [43]

44 Список ( 101, 102, 103, 104, представленный как связанный список. [44]

Типы данных, определяемые программистом в Сноболе 4, и BASED-переменные в ПЛ / I дают нам два примера таких средств; они рассматриваются во второй части. В обоих случаях средства не являются идеальными ( в Сноболе 4 они пол-ностью моделируются программно и поэтому приводят к большим затратам времени, средства ПЛ / I довольно часто приводят к ошибкам программирования), но представляют важный аспект в разработке языка.  [45]



Страницы:      1    2    3    4