Cтраница 2
Тип оператора зависит от двух условия: ( 1) его расположения относительно своих аргументов, ( 2) приоритета его аргументов по сравнению с его собственным. В спецификаторах, таких, как xfy, x обозначает аргумент, чей номер приоритета строго меньше номера приоритета оператора; у - аргумент с номером приоритета, меньшим или равным номеру приоритета оператора. [16]
Тип оператора зависит от двух условия: ( 1) его расположения относительно своих аргументов, ( 2) приоритета его аргументов по сравнению с его собственным. В спецификаторах, таких, как xfy, x обозначает аргумент, чей номер приоритета строго меньше номера приоритета оператора; у - аргумент с номером приоритета, меньшим или равным номеру приоритета оператора. [17]
![]() |
Оператор Действие. [18] |
Приоритет операторов влияет на порядок их выполнения. При вычислении значения выражения в первую очередь выполняются операторы с более высоким приоритетом. Если приоритет операторов в выражении одинаковый, то сначала выполняется тот оператор, который находится левее. [19]
На рис. 5.2 представлено некоторое множество различных операторов. Следует иметь в виду, что указанные утверждения согласуются при входе в Пролог-систему. И хотя в различных реализациях языка существуют различия в значениях приоритетов операторов, их относительная иерархия сохраняется единой для всех реализаций. [20]
Описание ассоциативности осуществляется путем отделения символов х и у, обозначающих операнды. Так, выражения / х или х /, содержащие переменную х, означают, что оператор имеет более низкий приоритет, чем его операнд. А выражения / у и у /, содержащие переменную у означают, что приоритет оператора не менее высок, чем у его операнда. [21]
Операторы с большим приоритетом применяются первыми. Таким образом, интерпретация выражения 20 - 5 2 3, при которой умножение выполняется не в первую очередь, исключается. Дальнейшие рассуждения приводят нас к двум возможным интерпретациям, показанным на рис. 5.1. Ввиду того что первый операнд оператора - имеет тип х, а приоритет оператора не строго больше, а равен приоритету оператора - , вторая интерпретация должна быть забракована. [22]
Операторы с большим приоритетом применяются первыми. Таким образом, интерпретация выражения 20 - 5 2 3, при которой умножение выполняется не в первую очередь, исключается. Дальнейшие рассуждения приводят нас к двум возможным интерпретациям, показанным на рис. 5.1. Ввиду того что первый операнд оператора - имеет тип х, а приоритет оператора не строго больше, а равен приоритету оператора - , вторая интерпретация должна быть забракована. [23]