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

Выражение - аргумент

Cтраница 2


Чтобы сгенерировать связывающий код для уравнения k, мы должны выделить список связей и использовать его при генерации кода, выбирающего определенные компоненты выражения аргумента.  [16]

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

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

Мы видим, что теперь самый левый лист содержит два номера уравнений; это отражает тот факт, что если оба аргумента f равны nil, то такое выражение аргумента соответствует как второму, так и третьему образцу. Второй лист слева содержит номер третьего уравнения.  [19]

В - исчислении такая замена является чисто текстовой, и мы, таким образом, физически заменяем все вхождения связанной переменной х - в теле применяемой Я-аб-стракции на выражение аргумента, 2, получая в результате измененную форму тела.  [20]

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

22 Матрично-структурная схема. [22]

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

Для того, чтобы фаза тока в местах стыка интервалов дискретности не менялась скачком, необходимо одновременно изменять два параметра ( емкость и сопротивление) схемы фазовращателя, из которых одно является сомножителем - угловым коэффициентом, а другое слагаемым в выражении аргумента.  [24]

Для начала допустим, что образцы не перекрываются. Это означает, что ни одно выражение аргумента не может соответствовать одновременно двум различным образцам. Как увидим, это допущение значительно упрощает процесс трансляции.  [25]

Заметьте, что это не означает, что происходит энергичное вычисление. Хотя и генерируется код создания графа выражения аргумента функции, но этот граф будет редуцирован, только когда его корневая вершина станет редек-сом, что задано макросом EVAL в Е - схеме.  [26]

Процесс называется редукцией в том смысле, что мы упрощаем выражение, убирая из него символ К, связанную переменную и выражение аргумента и получая измененную форму тела Х - абстракции. Терминология представляется несколько неудачной, так как если выражение аргумента очень сложное и имеется много вхождений связанной переменной в теле абстракции, то результирующее выражение может быть намного длиннее первоначального, однако математически оно будет проще.  [27]

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

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

Если мы реализуем нормальный порядок редукций и под - 1ерживаем разделение ( гарантируя, что аргументы вычисляются не более одного раза), тогда механизм редукции соответствует вызову по необходимости. В традиционных языках вызов по имени и вызов по необходимости отличаются, только если выражение аргумента дает побочные эффекты. В функциональном языке не существует побочных эффектов, и, следовательно, два этих механизма вызова дают всегда одинаковый результат. Вызов по необходимости поэтому можем охарактеризовать как нормальный порядок редукций, приводящий выражение к СЗНФ вместе с разделением выражений аргументов. Если соединим вызов по необходимости с ленивыми конструкторами, то получим ленивое вычисление, с которым уже встречались в гл.  [30]



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