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

Комбинаторная логика и лямбда-исчисление — это такие формальные системы, в которых центральной разрабатываемой сущностью является представление об объекте.

  1. Эволюция развития формализации с типами и рекурсивных вычислений

  2. Эволюция развития модели абстрактной машины и концепций ООП

  3. Современные подходы к программированию

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

  • Модульный (имеет чётко опр-ю структуру)

  • Функциональный (функции вып-т нек-е действия)

  • Логический

  • Объектно-ориентированный подход

  • Смешанный

  • Компонентно-ориентированный

  • Объектный подход

Декларативный язык

(программирование представляет собой описание действий которые необходимо осуществить ):

  • простота верификации и тестирования (+)

  • строгость мат формализации (+)

  • высокая степень абстракции (+)

  • сложность реализации (-)

  • необходимость мат знаний (-)

Примеры: LISP, SML, Haskell, Prolog

Процедурный язык

(программа представляет собой набор операторов, которые сгруппированы в отдельные блоки операторов - процедуры):

  • более высокий уровень абстракции (+)

  • меньшая машинная зависимость (+)

  • более широкая совместимость (+)

  • содержательная значимость текстов (+)

  • унификация программного кода (+)

  • увелич. производительности труда программистов(+)

  • большие трудозатраты на обучение (-)

  • меньшая эффективность программного кода (-)

Примеры: Fortran, ALGOL, PL/1, APL, BPL, Pascal, C, Basic, COBOL

Функциональный язык

(программа – функция, аргументы которой также возможно функции):

  • автоматическое управление памятью (сборка мусора) (+)

  • простота повторного использования кода (+)

  • использование функций с параметрическими аргументами (+)

  • абстрагирование от машинного представления данных (+)

  • использование рекурсий (вызов самих себя) (+)

  • удобство символьной обработки (+)

  • нелинейная структура программы (-)

  • низкая эффективность (-)

Примеры: LISP, SML, Haskell, CaML, Miranda, Hope

Объектно-ориентированный язык

(программа представляет описание объектов, совокупность отношений и взаимодействие между ними):

  • описание любой предметной области (+)

  • моделирование сложных предметных областей (+)

  • событийная ориентированность (+)

  • высокий уровень абстракции (+)

  • повторное использование объектов (+)

  • параметризация методов обработки объектов (+)

  • сложность тестирования и верификации (-)

Примеры: С++, VB, C#, Eiffel, Oberon

  1. Основные понятия и принципы ооп

Объектно-ориентированный язык

(программа представляет описание объектов, совокупность отношений и взаимодействие между ними):

  • описание любой предметной области (+)

  • моделирование сложных предметных областей (+)

  • событийная ориентированность (+)

  • высокий уровень абстракции (+)

  • повторное использование объектов (+)

  • параметризация методов обработки объектов (+)

  • сложность тестирования и верификации (-)

Примеры: С++, VB, C#, Eiffel, Oberon

Принципы ООП:

  1. Абстракция:

это выражение языка программирования, отличное от идентификаторов.

Переменная является значением абстракции.

Поведение абстракции это приложение функции к аргументу.

Моделируется при помощи лямбда- счисления

  1. Наследование:

означает свойства произвольного объекта сохранять поведение базового объекта.

Моделируется наследование 2 подходами:

  • Фреймовая нотация Руссополоса

  • диаграмма Hasse

  1. Инкапсуляция:

доступность объекта исключительно при помощи свойств и методов.

Свойства: совместное хранение данных и методов; скрытие внутренней информации об пользователе; изоляция пользователя от особенности реализации

  1. Полиморфизм:

оперирование объектами не обладая точными значением их типов

  1. Аспекты платформы .Net Framework

Платформа.net означает:

  • Совокупность технологий, которые позволяют работать с инф. в любое время на любом устройстве

  • Программы становятся услугами

  • Платформа поддерживает различные языки

  • Стандартная инфраструктура по разработке, использованию, хостингу и интеграции XML Web услуг

  • Маркетинговая стратегия

Составляющие концепции:

  • Новая идеология проектирования

  • Модель поддержки жизненного цикла

  • Современная, интегрированная платформа

  • Современный инструментарий

  1. Идеология:

  • Легкость развертывания приложений в среде Интернет

  • Эконом. разраб. путем испол. готовых компонентов

  • Интеграция как с программными прод-ми, так и с аппаратными средствами

  • Использование сервисов, кот предлагаются пользователям или приложениям

  • Безопасность и удобство использования

  1. Модель:

  • компонентный подход

  • универ. сист. типизации (любой тип является объектом)

  • иерархия (упорядочивание классов)

  • универсальный интерфейс

  • вариативность экземпляров прогр-го об-я

  1. Платформа:

  • многоязыковая поддержка

  • интерапирабельность (повт-е исп-е кода) и масштабируемость

  • унификация доступа к библиотекам

  • соответствие современным стандартам

  1. Инструментарий:

  • многоязыковая среда

  • создание компонентов на наиболее подходящем языке

  • доступность средств данной платформы для широкого использования

  • одинаковость сервисных возможностей

самостоятельность в разработке трансляторов

  1. Архитектура .NET Framework

  2. Компонентное программирование .NET Framework

Работы:

    • 1924 – Шейнфинкель – простая теория функций

    • 1934 – Черч – Лямбда- счисление, исследование теории множеств

    • 1971 – Скотт - Полные и непрерывные решетки

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

    • 90е – Вольфангаген – схема двухуровневой концентрализации

Компоненты это:

  • независимые повторно используемые и типизируемые модули

  • в целом более крупные, чем объект

  • могут содержать множественные классы

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

Сравнение ООП и КОП:

1)Основные понятия Ооп

  • класс

  • интерфейс

2)основные понятия КОП

  • свойства (property)

  • события (event)

  • сборка (assembly)

Модели КОП:

  1. Component object model (com) – для конкретизации и использования компонента внутри процесса, между процессами и между компьютерами. Основа для Actuve X, OLE

  2. Java beans- стандарт SunMicrosystem для компонентов (не является независимым от языка)

  3. Corba- громоздкий IDL – интерфейс, сложность отображения одного языка в реализации другого.

Web- сервисы в .NET:

заменяют компонентный подход в среде Internet

  1. программируемые компоненты приложений, доступные посредством стандартных Интернет-протоколов

  2. центральная часть архитектуры .NET

  3. распределяют функциональность по глобальной сети

  4. строятся на существующих развивающихся стандартах

Преимущества КОП:

  1. снижение стоимости ПО

  2. возможность повторного использования

  3. унификация обработки объектов различной природы

  4. менее человекозависимый процесс создания ПО

  5. строгое математическое основание (лямбда-счисление)

концепция универсальна и одинакова