Понятие семантики в математике и программировании
Важнейшие работы:
§ 1960-е – Барендретт – альфа-счисление
§ 1969 – Д. Скотт предложил испытать домены
§ 1979 – М. Гордон исследовал денотационную семантику ЯП
§ 1964 – П. Лендин разработал семантику модели яп в форме абстр. машины на состояниях
§ 1969 – Ч. Хоар создал аксиоматический метод, моделирующий операторы яп
§ 1960-е – Р. Флойд создал метод индуктивных утверждений для формализации семантики протекания информации в прогр.
Общие сведения:
Семантика-интерпретация абстрактного синтаксиса, выраженного в терминах той или иной математической модели.
Основные подходы:
§ Ориентированы на компиляцию (множество преобразований)
§ Ориентированы на интерпретацию (множество описаний)
Виды семантики:
§ Операционные – смысл конструкций языка в терминах переходов абстр. машины из одного состояния в другое
§ Препозиционные - смысл конструкций языка в терминах множества формул описывающих состояние объектов программы
Денотационные - … в терминах абстракции функций на состояниях программы
12. Теория вычислений Д.Скотта. Семантика C#
1969 – Д. Скотт создал для формализации на основе доменов Домен - аналог множества, моделирующий самоприменимые функции и множества.
Последовательность построения теории:
· Перечисление стандартных доменов
· Определение конечных доменов с явно перечисляемыми элементами
· Определение конструкторов
|
|
Конструкторы доменов:
§ функциональное пространство
§ Декартово произведение
§ Последовательность
§ Дизьюктивная сумма
Синтаксис подмножества языка С#:
§ формализируем синтаксис
E : : = true | false | 0 | 1 | I | !E | E1==E2 | E1+E2 (выр-е)
C : : = I = E | if (E)C1 else C2 | while (E) C | C1;C2 (команда)
Порядок построения семантики вычислений:
· Определение синтаксиса доменов (ide, Exp, com)
· Определение вычислительной модели
· Определение семантических функций
Определение семантических предложений
Понятие класса и объекта. Концептуальная модель
класс - общая сущность, которая определяет как совокупность объектов
объект – представляет сущность мира
свойство – пропозициональная функция определённая на произвольном типе данных
метод– операция определённая над объектами некоторого класса
Основные работы в сфере моделирования ооп:
§ 1924 – теория простых функций
§ 1934 – лямбда – исчисление
§ 80е Скотт и Фурман – аппарат определённых дискрепций
§ 90е – схема двухуровневого моделирования объектов
Концептуализация как модель объекта:
1. модель основывается на типизированном альфа- счислении, семантика которого моделируется при помощи полных и непрерывных решёток Скотта.
2. Вводятся аппликативные структуры с приписыванием типов
|
|
3. Для формализации определений используются определённые дескрипции Скотта-Фурмана вида: I x Ф, что означает «тот единственный x для которого Ф истинно»
4. произвольный объект моделируется тройкой
<концепт, индивид, состояние>
14. Классы, поля, методы в C#
Класс в С# - это пользовательский тип данных, который состоит из данных (часто называемых атрибутами или свойствами) и функциями для выполнения с этими данными различных действий (эти функции обычно называются методами). Классы позволяют группировать в единое целое данные и функциональность, моделируя объекты реального мира. Именно это свойство классов и обеспечивает одно из наиболее важных преимуществ объектно-ориентированных языков программирования.
Статическое поле класса— это такое поле, которое существует в оперативной памяти компьютера в единственном экземпляре, сколько бы объектов класса ни создавалось. Наиболее очевидное применение таких полей — подсчет общего количества созданных объектов класса.
Метод представляет собой блок кода, содержащий инструкцию для совершения некий действий над объектом. Статическим называется метод, который существует в классе как таковом, а не в отдельных его экземплярах. Они расположены вне конкретных экземпляров класса и не засоряют глобальное пространство приложения.
|
|
Наследование классов – это способность одного класса использовать свойства и методы, объявленные в другом классе. Класс, предоставляющий свои свойства и методы, называется базовым (или родительским), а класс, наследующий их – дочерним.
Преимущества ООП: 1)Сокращение количества межмодульных вызовов. 2)Уменьшение объема информации, передаваемой между модулями. 3)Возможность вести независимую разработку объектов программы.
Недостатки: Некоторое снижение быстродействия за счет более сложной организации программной системы
Дата добавления: 2018-04-15; просмотров: 605; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!