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

Невычисляемое выражение

Cтраница 1


Невычисляемые выражения могут служить параметрами примитивных функций со значениями типа образец. Образец строится, но параметр не вычисляется до момента сопоставления.  [1]

Невычисляемые выражения позволяют определять образцы рекурсивно.  [2]

В ДЛИНОБР невычисляемые выражения употребляются двояким образом. ОБР позволяет построить ДЛИНОБР при неизвестном значении ОБР, которое определяется во время сопоставления. Предикат ОТ ( 512Е ( ПРОБА), 512Е ( ДЛ)) вычисляется всякий раз, когда ОБР сопоставится с подцепочкой. Сравниваются длины цепочек ПРОБА и ДЛ. Если новая подцепочка короче, вычисление предиката заканчивается неудачей. Неудача при вычислении предиката или функции в процессе сопоставления заставляет сканер вернуться назад в поисках альтернатив.  [3]

Если параметром является невычисляемое выражение, оно вычисляется и его значение становится значением функции. Если параметр - цепочка, значением EVAL служит значение выражения, представленного цепочкой. Целый и вещественный параметры просто возвращаются без всяких изменений.  [4]

В этой главе невычисляемые выражения, часто называемые просто выражениями, рассматриваются лишь в контексте сопоставления с образцом.  [5]

Стиль работы с невычисляемыми выражениями иллюстрируется следующим примером. Вводятся две цепочки исходных данных, и строится список слов, входящих в обе цепочки.  [6]

Функция EVAL может вычислить любую цепочку или невычисляемое выражение, представляющие собой синтаксически правильное выражение языка Снобол-4. Если в параметре есть синтаксическая ошибка, функция EVAL завершается неудачей.  [7]

Образцы, подобные ДЛИНОБР, описанному в разделе о невычисляемых выражениях, в режиме быстрого просмотра могут дать неожиданные результаты.  [8]

Применение в этом режиме образцов, содержащих немедленное присваивание значения или невычисляемые выражения, может привести к неожиданным результатам. Здесь мы опишем эвристики, используемые сканером для ускорения процесса сопоставления. Особо отметим случаи, когда могут появиться неожиданные результаты и укажем, как с ними бороться. Начальное значение ключевого слова & FULLSCAN равно нулю, что определяет обычный, или быстрый, режим просмотра при сопоставлении.  [9]

В следующем примере значением ЦЕП является цепочка, а значением НВ - невычисляемое выражение.  [10]

Создание образца нельзя вынести из цикла еще и потому, что меняется значение С. Использование невычисляемого выражения вместо переменной С все же позволяет построить структурный образец вне цикла. Как показано ниже, структурный образец НАЙТИС вместо С содержит С. Значение С, используемое при этом, есть текущее значение, в данном случае - значение, присвоенное при сопоставлении с образцом СЛОВО.  [11]

Все компоненты инструкции могут быть сколь угодно сложными, и их обработка может быть весьма разнообразной. Например, обращения к определяемым программистом функциям могут встречаться в любой компоненте инструкции ( кроме метки); они могут иметь место даже в процессе сопоставления с образцом при вычислении невычисляемых выражений.  [12]

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

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

Образец - это объект данных, который может быть очень большим, если образец сложный. Невычисляемые выражения позволяют избежать конструирования образцов в инструкциях сопоставления, даже если меняются компоненты образца. Невычисляемое выражение эквивалентно указателю на другой образец, который используется во время сопоставления, когда встречается невычисляемое выражение.  [15]



Страницы:      1    2