Введение в теорию программирования. Объектно-ориентированный подход



         

Семантика основных конструкций языка программирования C# - часть 3


В соответствии с намеченной схемой рассуждений, перейдем к описанию семантических предложений, которые описывают значение конкретных денотатов (т.е. правильно построенных конструкций) языка C#. Рассмотрим семантические предложения для денотатов констант целочисленного типа языка C#:

E[0]s=(0,s); E[1]s=(1,s);

Как видно из приведенных соотношений, денотатами констант целочисленного типа являются значения этих констант (в форме упорядоченных пар вида "значение"-"состояние"), причем смены состояния программы не происходит. Рассмотрим семантические предложения для денотатов констант логического типа языка C#:

E[true]s=(true,s); E[false]s=(false,s);

Как видно из приведенных соотношений, денотатами констант логического типа являются значения этих констант (в форме упорядоченных пар вида "значение"-"состояние"), причем смены состояния программы не происходит. Рассмотрим семантическое предложение для денотатов идентификаторов языка C#:

E[I]s=(m,I=unbound) error, -> (m,I,s).

Как видно из приведенного соотношения, при возможности связывания денотатами идентификаторов являются идентификаторы, связанные со значениями (в форме упорядоченных троек вида "значение в памяти"-"идентификатор"-"состояние"), причем смены состояния программы не происходит, а при невозможности - выдается сообщение об ошибке.

Рассмотрим семантические предложения для денотатов выражений языка C#:

E[!E]s = (E [E] s=(v, s')) (isBool -> (not v, s'), error), error; E [E1=E2] s = (E [E1]s = (v1, s1)) -> (E [E2] s1 = (v2, s2)) -> (v1 = v2, s2), error), error; E [E1+E2] s = (E [E1] s=(v1, s1)) -> (E [E2] s1 = (v2, s2)) -> (IsNum v1 and IsNum v2 -> v1 + v2, s2), error),error),error.

Проанализируем полученные соотношения.

Денотатом отрицания выражения является отрицание его значения; причем состояние программы изменяется. В случае несоответствия типов или небулевости выражения генерируется сообщение об ошибке.

Денотатом присваивания является присвоенное значение в новом состоянии.


Содержание  Назад  Вперед