Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал по ооп.docx
Скачиваний:
3
Добавлен:
04.08.2019
Размер:
63.16 Кб
Скачать
  1. Эволюция и основные возможности c#

Эволюция:

Начало развития в 1963г. Томпсон-язык B

1972г. Томпсон-язык С.

1984г. Язык С++

2000г. Язык С#.

Что такое С#:

  • смесь С++, java, Delphi

  • концепция разделения типов на ссылочные и значимые

  • поддержка xml документации

Особенности программ на C#:

  • Совокупность описаний (набор классов и интерфейсов)

  • Классы содержат как один, так и много точек входа программы

  • Программы состоят из нескольких файлов

Пространство имен может быть разнесено на несколько файлов

  1. Структура программы и синтаксис конструкций c#

Конструкции:

  • элементарные

  • составные

  • прогр-е конст. упр-я switch и case

  • усл-е

  • повт. и циклов

  • перехода break, continue, return, goto

  • + конст. управления исключениями (throw, try-catch, finally)

спец. констр. (lock – блок. объектов, cheked/uncheked, fixed)

  1. Понятие семантики в математике и программировании

Важнейшие работы:

  • 1960-е – Барендретт – альфа-счисление

  • 1969 – Д. Скотт предложил испытать домены

  • 1979 – М. Гордон исследовал денотационную семантику ЯП

  • 1964 – П. Лендин разработал семантику модели яп в форме абстр. машины на состояниях

  • 1969 – Ч. Хоар создал аксиоматический метод, моделирующий операторы яп

  • 1960-е – Р. Флойд создал метод индуктивных утверждений для формализации семантики протекания информации в прогр.

Общие сведения:

Семантика-интерпретация абстрактного синтаксиса, выраженного в терминах той или иной математической модели.

Основные подходы:

  • Ориентированы на компиляцию (множество преобразований)

  • Ориентированы на интерпретацию (множество описаний)

Виды семантики:

  • Операционные – смысл конструкций языка в терминах переходов абстр. машины из одного состояния в другое

  • Препозиционные - смысл конструкций языка в терминах множества формул описывающих состояние объектов программы

Денотационные - … в терминах абстракции функций на состояниях программы

  1. Теория вычислений д.Скотта. Семантика 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)

  • Определение вычислительной модели

  • Определение семантических функций

Определение семантических предложений

  1. Понятие класса и объекта. Концептуальная модель

класс - общая сущность, которая определяет как совокупность объектов

объект – представляет сущность мира

свойство – пропозициональная функция определённая на произвольном типе данных

метод – операция определённая над объектами некоторого класса

Основные работы в сфере моделирования ооп:

  • 1924 – теория простых функций

  • 1934 – лямбда – исчисление

  • 80е Скотт и Фурман – аппарат определённых дискрепций

  • 90е – схема двухуровневого моделирования объектов

Концептуализация как модель объекта:

  1. модель основывается на типизированном альфа- счислении, семантика которого моделируется при помощи полных и непрерывных решёток Скотта.

  2. Вводятся аппликативные структуры с приписыванием типов

  3. Для формализации определений используются определённые дескрипции Скотта-Фурмана вида: I x Ф, что означает «тот единственный x для которого Ф истинно»

  4. произвольный объект моделируется тройкой

<концепт, индивид, состояние>