Системы программирования

Система программирования – совокупность языка программирования и виртуальной машины, обеспечивающая обеспечивающей выполнение на реальной машине программ на этом языке.

Язык программирования – система обозначений для точного описания алгоритмов ЭВМ. Эти языки являются искусственными, со строго определенным синтаксисом и семантикой.

Виртуальная машина – программный комплекс, эмулирующий работу реальной машины с определенным входным языком. Содержит транслятор и может включать отладчик, компоновщик и другие сервисные средства.

Транслятор – программа, переводящая с одного языка на другой. Его разновидность – ассемблер – переводчик с языка нижнего уровня на машинный язык. Программа на входе транслятора – исходная, а в результате – объект.

Языки программирования: процедурные, функциональные, логические, объектно-ориентированные, ситуационные.

Стилю программирования соответствует уникальная модель вычисления. Создается среда программирования, поддерживающая пользовательский интерфейс и объединяющая все средства разработки и выполнения программ.

Существует 2 подхода конструирования систем программирования:

1. Цель – создание комплекса автономных средств, в совокупности выполняющих роль системы программирования.

2. При котором создается интегрированная среда программирования, поддерживающая развитый пользовательский интерфейс и объединяющая в единое целое все средства разработки и выполнения программ.

Автономные средства позволяют разрабатывать программы большого размера, т.к. различные этапы разработки программ разнесены во времени и можно использовать внешнюю память.

Интегрированная среда представляет лучший сервис в работе, но предъявляет более жесткие требования к памяти/величине разрабатываемых программ.

Виртуальные разработчики – Microsoft и Borland (Turbo Pascal, Delfy,...).

§1 Процедурное программирование

Основа – оператор присваивания для изменения содержимого областей памяти. Выполнение программ сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти в заключительное.

Характерные черты процедурного программирования: значительная сложность, отсутствие строгой математической основы, необходимость явного управления памятью (все время назначать/описывать переменные явно), ограниченная пригодность для символьных вычислений, высокая эффективность реализации на традиционных ЭВМ.

Недостатки: сложность, большой объем, много описаний – сложность проверки и отладки.

Символьные вычисления состоят в преобразовании динамических структур данных – структурных объектов, конфигурация которых меняется во времени. К символьным задачам относятся задачи искусственного интеллекта, сортировки, трансляции, управления БД.

Особенности символических вычислений: последовательность инструкций существенно зависит от данных; не требуется векторных и матричных операций; наиболее частые операции – агрегирование и декомпозиция структур данных (объединение и наоборот); поиск по дереву; основной управляющей конструкцией служит рекурсия на структуры данных (деревья, списки, множества).

§2 Функциональное программирование

Это – способ программирования, действием которого является вызов функций. Роль основной конструкции выполняют выражения – скалярные константы, структурные объекты, функции, тела функций, вызовы функций.

§3 Логическое программирование

Имеет древние корни. Разработчики – Тьюринг (любая функция может быть вычислена с помощью дедукции).

Используется правило логического вывода (PROLOG)

Центральное понятие – отношение.

Программа представляет собой совокупность определений отношений между объектами и целями.

Процесс выполнения программы при этом стиле трактуется как процесс установления общей значимости логической формы, построенной из программы по правилам семантики того или иного языка. Другими словами, это – реляционное (относительное) программирование.

Характерны: сверхвысокий уровень, ориентация на символьные вычисления, сложность числовых вычислений и некоторых логических конструкций.

§4 Объектно-ориентированное программирование

В качестве истока был язык SIMULA. Сейчас его наиболее полно используют C++ или Visual Basic 7.

Особенности: инкапсуляция (объединение процедур в объекте), полиморфизм (возможность использования методов с одинаковыми именами для работы с различными типами), множественное наследование.

Вводится понятие объект – данные и действия с этими данными.

§5 Ситуационное программирование

Этот стиль появился для компенсации недостатков объектно-ориентированного программирования. Но для него характерны длительность процесса освоения вследствие большого числа классов и объектов, трудности при компоновке множества программ на разных языках в единую программную среду (C++ Builder).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: