Cтраница 2
В разветвленной электрической сети промышленного предприятия определение напряжения обратной последовательности выполняется по методу симметричных составляющих с представлением выражений несимметричных нагрузок фаз в комплексной форме. [16]
К сожалению, ленивая реализация обычно менее эффективна по сравнению со строгим вариантом вследствие необходимости поддерживать задержки для представления невычисленных выражений. Кроме того, строгая реализация может использовать любой возможный параллелизм для одновременного вычисления аргументов при применении функции. Однако для многих параметров энергичная и ленивая семантики применения функции совпадают, приводя к одному результату или зацикливанию. Таким образом, для достижения лучшего результата нам бы хотелось идентифицировать во время компиляции, какие применения должны вычисляться лениво ( для сохранения семантической корректности), а какие могут вычисляться строго ( для повышения эффективности), анализируя способ, которым осуществляется доступ к параметрам функций в определяющих их выражениях. [17]
![]() |
Простое выражение ( А В ( С - А в виде дерева. [18] |
Постфиксная запись обычно не используется в синтаксисе выражений в языках программирования, но она весьма важна как основа исключительно ценного представления выражений во время выполнения программы. [19]
Опять мы имеем дело с очень простой рекурсивной подпрограммой; эта простота является, разумеется, следствием рекурсивной структуры, выбранной нами для представления выражений. [20]
Например, если в рассмотренном выше фрагменте программы переменные D и Е - очень малые числа, а С - очень большое число, то при выбранном способе 2) представления выражения D cC / E в триадной форме может возникнуть ситуация переполнения. [21]
![]() |
Метки и переходы в FBD. [22] |
Такой прием расширяет стандартный FBD и часто оказывается достаточно удобным. Компактная форма представления выражений облегчает запись и чтение функциональных диаграмм. [23]
При реализации автоматического формирования суждений, как правило, стремятся к максимально возможному единообразию и стандартизации в представлении формул, но в то же время в литературе часто приходится сталкиваться с самыми разнообразными системами обозначений, относящихся к логике. Основными синтаксическими схемами представления выражений являются конъюнктивная нормальная форма ( conjunctive normal form - CNF), полная фразовая форма ( full clausal form) и фраза Хорна ( Horn clause), последняя является подмножеством полной фразовой формы. Далее мы увидим, что эти формы представления значительно упрощают процедуру логического вывода, но сначала рассмотрим некоторые вопросы исчисления высказываний и предикатов. [24]
Это дерево создается программой 5.20 для префиксного выражения a bc def. Оно представляет собой естественный метод представления выражения: каждый операнд размещается в листе ( который отображен в качестве внешнего узла), а каждая операция, которая должна применяться к выражению, представлена левым и правым поддеревьями узла, содержащего операцию. [25]
Здесь может возникнуть следующий естественный вопрос. Как при преобразовании исходной программы в триадную форму учитывается то обстоятельство, что различные способы представления выражения (4.1) могут дать различные результаты вычисления в случаях, когда операнды существенно отличаются друг от друга по значению. [26]
В предыдущей главе была рассмотрена основанная на использовании стеков абстрактная машина для вычисления функциональных выражений, написанных в соответствии с нотацией А-исчисления. Как мы видели, эта машина наиболее удобна для реализации вычислений аппликативного порядка, соответствующих вызовам по значению Расширение области применения машины с целью поддерживать вызовы по необходимости требует введения дополнительных структур для явного представления задержек В этой главе будет рассмотрен совсем другой подход к вычислению лямбда-выражений, при котором мы допускаем представление выражений в виде графов, а не в виде линейных текстовых строк. Результирующая модель вычислений по очевидным причинам называется редукцией графов. Одно очевидное преимущество заключается в том, что в графовом представлении легко выразить разделение; нам не нужна дополнительная структура, такая, как контекст, для запоминания связей ( разделяемых) переменных, поскольку на ( разделяемый) подграф можно ссылаться любое число раз с помощью указателей. Второе преимущество данного представления в том, чю вычисление нормального порядка в этом случае легко представляется и относительно эффективно реализуется. Все это делает редукцию графов особенно естественным инструментом Для поддержки вызовов по необходимости и, следовательно, ленивого вычисления в функциональных языках. [27]
При первом чтении часто очень тяжело увидеть, что в действительности происходит в процессе абстрагирования и позднее, когда результирующие комбинаторные выражения применяются к аргументам. Существует однако интуитивная интерпретация правил редукции при применении фиксированных комбинаторов, которая служит не только объяснению того, что достигается с помощью комбинаторов, но также естественным образом предлагает альтернативное и более эффективное представление комбинаторных выражений. [28]