- •Основные понятия и принципы ооп
- •Абстракция:
- •Инкапсуляция:
- •Аспекты платформы .Net Framework
- •Эволюция и основные возможности c#
- •Структура программы и синтаксис конструкций c#
- •Понятие семантики в математике и программировании
- •Теория вычислений д.Скотта. Семантика c#
- •Понятие класса и объекта. Концептуальная модель
- •Классы, поля, методы в c#
- •Определение типов. Классификация систем типизации
- •Система типов cts. Базисные типы
- •Пространство имен. Преобразование типов
- •Наследование в ооп
- •Базовые и производные классы в c#
- •Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в c#
- •Виды области видимости. Рекомендации
- •Понятие полиморфизма
- •Интерфейсы, их связь с абстрактными классами. Реализация
- •Понятие события в математике и программировании. Моделирование событий
- •Делегаты. События как особый вид делегатов
- •Исключения и их обработка в c#
- •Графический интерфейс Windows Forms. Программные компоненты и модель
- •Основные классы. Иерархия классов. Основные контролы
- •Создание пользовательских компонентов
Эволюция и основные возможности c#
Эволюция:
Начало развития в 1963г. Томпсон-язык B
1972г. Томпсон-язык С.
1984г. Язык С++
2000г. Язык С#.
Что такое С#:
смесь С++, java, Delphi
концепция разделения типов на ссылочные и значимые
поддержка xml документации
Особенности программ на C#:
Совокупность описаний (набор классов и интерфейсов)
Классы содержат как один, так и много точек входа программы
Программы состоят из нескольких файлов
Пространство имен может быть разнесено на несколько файлов
Структура программы и синтаксис конструкций c#
Конструкции:
элементарные
составные
прогр-е конст. упр-я switch и case
усл-е
повт. и циклов
перехода break, continue, return, goto
+ конст. управления исключениями (throw, try-catch, finally)
спец. констр. (lock – блок. объектов, cheked/uncheked, fixed)
Понятие семантики в математике и программировании
Важнейшие работы:
1960-е – Барендретт – альфа-счисление
1969 – Д. Скотт предложил испытать домены
1979 – М. Гордон исследовал денотационную семантику ЯП
1964 – П. Лендин разработал семантику модели яп в форме абстр. машины на состояниях
1969 – Ч. Хоар создал аксиоматический метод, моделирующий операторы яп
1960-е – Р. Флойд создал метод индуктивных утверждений для формализации семантики протекания информации в прогр.
Общие сведения:
Семантика-интерпретация абстрактного синтаксиса, выраженного в терминах той или иной математической модели.
Основные подходы:
Ориентированы на компиляцию (множество преобразований)
Ориентированы на интерпретацию (множество описаний)
Виды семантики:
Операционные – смысл конструкций языка в терминах переходов абстр. машины из одного состояния в другое
Препозиционные - смысл конструкций языка в терминах множества формул описывающих состояние объектов программы
Денотационные - … в терминах абстракции функций на состояниях программы
Теория вычислений д.Скотта. Семантика 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е – схема двухуровневого моделирования объектов
Концептуализация как модель объекта:
модель основывается на типизированном альфа- счислении, семантика которого моделируется при помощи полных и непрерывных решёток Скотта.
Вводятся аппликативные структуры с приписыванием типов
Для формализации определений используются определённые дескрипции Скотта-Фурмана вида: I x Ф, что означает «тот единственный x для которого Ф истинно»
произвольный объект моделируется тройкой
<концепт, индивид, состояние>