Применение - примитивная функция - Большая Энциклопедия Нефти и Газа, статья, страница 2
Если ты подберешь голодную собаку и сделаешь ее жизнь сытой, она никогда не укусит тебя. В этом принципиальная разница между собакой и человеком. (Марк Твен) Законы Мерфи (еще...)

Применение - примитивная функция

Cтраница 2


Применения таких функций записываются в префиксной форме, а не в инфиксной, как в языках Норе и Miranda. Это делает синтаксис применения примитивной функции идентичным синтаксису применения функции пользователя.  [16]

Символ обозначает присоединение, так что в третьем снизу уравнении кодовые последовательности С и С1 соединяются вместе. Последнее уравнение дает правило для применения примитивной функции плюс; ясно, что при введении каждой новой примитивной функции должно добавляться по крайней мере одно новое уравнение. Работа КАМ иллюстрируется редукцией в рамках слабой ККЛ выражения М, рассмотренного выше, которое применяется к пустому контексту.  [17]

Заметим, что указатель AFT не изменяется, указывая на - вершину, к которой нужно вернуться после вычисления аргумента. Подобным образом левый указатель этой вершины по-прежнему направлен вверх по гребню в сторону вершины редекса применения примитивной функции. Однако правый указатель теперь направлен вниз по гребню. Аргумент, который необходимо вычислить следующим ( если он есть), будет определен б-правилами применяемой примитивной функции и текущим состоянием при выполнении этих правил.  [18]

19 Обработка вершин-синонимов при сборке мусора. [19]

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

Подъем, в сущности, противоположен спуску; FORE и AFT в алгоритме подъема обмениваются своими ролями. Цикл прекращается после заданного числа шагов в случае нахождения вершины-редекса аргумента или, когда AFT примет значение NULL при достижении редекса применения примитивной функции после завершения ее вычисления.  [21]

Преобразования графа показаны на рис. 11.5. Мусор не показан, а корневая вершина очередного редекса помечена символом в каждом графе. Подстановка приводит к графу ( б), где разделение выражения аргумента очевидно. Последние три шага редукции определяются правилами применения примитивных функций и могут быть рассмотрены после прочтения следующего параграфа. Однако преобразования графа являются очень простыми и вполне очевидными: редекс графа ( г) является первым аргументом строгой примитивной функции -) -, а следующие две редукции являются просто применениями примитивной функции () к постоянным аргументам.  [22]

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

Преобразования графа показаны на рис. 11.5. Мусор не показан, а корневая вершина очередного редекса помечена символом в каждом графе. Подстановка приводит к графу ( б), где разделение выражения аргумента очевидно. Последние три шага редукции определяются правилами применения примитивных функций и могут быть рассмотрены после прочтения следующего параграфа. Однако преобразования графа являются очень простыми и вполне очевидными: редекс графа ( г) является первым аргументом строгой примитивной функции -) -, а следующие две редукции являются просто применениями примитивной функции () к постоянным аргументам.  [24]

Редукция графов происходит с помощью именно этих макросов. Макрос EVAL инициализирует вычисление выражения, которое в ленивой системе является требуемым результатом, если его вычисление не будет специальным образом форсировано. EVAL служит для вычисления выражений верхнего уровня ( см. разд. Выполнение UNWIND и RET всегда отчасти аналогично применению EVAL. Применение примитивных функций происходит по В-схеме ( см. разд.  [25]



Страницы:      1    2