Инструментарий технологии программирования – совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения создаваемых программ.
Выделяют следующие группы инструментальных средств программирования:
Локальные средства разработки приложений включают языки и системы программирования, а также инструментальную среду пользователя.
Язык программирования – искусственный язык со строго определенным синтаксисом и семантикой, служащий для описания алгоритма решения задачи на компьютере.
Синтаксис языка – совокупность правил, определяющих допустимые конструкции (слова, предложения) языка
Семантика языка – совокупность правил, определяющих значения (смысл) конструкций языка, составленных в соответствии с синтаксическими правилами этого языка.
Языки программирования подразделяются:
- на машинные, воспринимаемые аппаратной частью компьютера (машинные коды)
- машинно-ориентированные, структура операторов которых определяется форматами команд конкретной ЭВМ (мнемокоды, автокоды, язык ассемблера)
- процедурно-ориентированные, имеющие возможность описания программы как совокупности процедур (подпрограмм) (фортран, бейсик, паскаль и т.д.)
- объектно-ориентированные, базирующиеся на объектной декомпозиции предметной области программы (Delphi, Visual Basic, Visual Си++)
- проблемно – ориентированные, предназначенные для решения задач определенного класса, например, задач искусственного интеллекта (Пролог, Лисп и т.д.)
В представленной классификации машинные и машинно-ориентированные языки относятся к языкам низкого уровня (например, ассемблер), остальные считаются языками высокого уровня (Фортран, Бейсик, Паскаль, Си). Языки низкого уровня тесно связаны с конкретным микропроцессором, его системой команд. Использование языков высокого уровня позволяет значительно упростить написание программы, ускорить их отладку. При этом любая программа должна быть преобразована в машинную программу, воспринимаемую аппаратной частью компьютера. Для этих целей служат специальные программы трансляторы. Трансляторы делятся на компиляторы и интерпретаторы.
|
Компилятор – формирует полный текст программы в машинных кодах, лишь после этого она может быть выполнена.
Интерпретатор последовательно преобразует каждый отдельный оператор входной программы в машинный код и сразу его выполняет.
После того как программа откомпилирована, ни сама исходная программа, ни компилятор больше не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом запуске программы.
Развитием процедурных языков является объектно-ориентированный подход, основанный на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию с наследованием свойств. Данный подход базируется на объектной декомпозиции предметной области программы и позволяет безболезненно вносить изменения в уже отлаженный программный продукт.
Дальнейшим развитием технологий программирования, основанных на объектном подходе, стало визуальное программирование, реализованное в языках для разработки Windows-приложений: Visual Basic, Си++, Delphi. Данные языки позволяют создавать программы с применением визуальных средств добавления и настройки специальных библиотечных компонентов.
|
Другим примером объектно-ориентированного языка может служить созданный в 1990 году на основе Си++ язык программирования Java. Разработанные с его помощью приложения не зависят от типа используемой ЭВМ и ОС, поскольку результаты компиляции программ представляются не в машинных кодах, а в независимых байт-кодах, при этом каждая команда занимает один байт. Эти байт-коды могут выполняться с помощью интерпретатора – виртуальной Java-машины, версии которой созданы сегодня практически для всех архитектурных платформ. Язык Java широко используется в web-технологиях.
Примерами проблемно-ориентированных языков могут служить Пролог и Лисп. Эти языки являются декларативными языками, у которых отсутствует понятие «оператор» или «команда», а программа строится на основе указания исходных информационных структур, взаимосвязей между ними и того, какими свойствами должен обладать результат. Пролог – это язык логического программирования, предназначенный для решения логических задач, моделирования процесса логического умозаключения человека. Лисп – язык функционального программирования, изначально разработанный для обработки символьной информации и исследований по проблематике искусственного интеллекта.
Современные системы программирования обычно представляют пользователям мощные и удобные средства разработки программ, включающие компилятор и интерпретатор, обширные библиотеки стандартных программ и функций, отладочные программы, мощные графические библиотеки, утилиты для работы с библиотеками и т.д.
|
Инструментальная среда пользователя включает специальные средства, встроенные в пакеты прикладных программ: библиотеки функций, процедур, объектов и методов обработки; макрокоманды; языковые и клавишные макросы; конструкторы экранных форм и отчетов, генераторы приложений; языки запросов высокого уровня; языки манипулирования данными и т.д.
Дальнейшим развитием локальных средств разработки программ являются интегрированные программные среды разработчиков. Основное их назначение – повышение производительности труда программистов, автоматизация создания кодов программ, разработка приложений для архитектуры клиент-сервер и др. Например, визуальная среда Visual InterDev, предназначенная для коллективной работы над web-проектами.
CASE –технологии – автоматизированные технологии разработки и сопровождения программного обеспечения. Позволяют использовать специальный комплекс средств автоматизации для проектирования, анализа ПО и его сопровождения, которые существенно повышают производительность труда программистов и улучшают качество создаваемого программного обеспечения. При этом Case-средства обеспечивают:
- автоматизированный контроль совместимости спецификаций проекта;
- сокращение времени создания прототипа системы, позволяющего на ранних стадиях оценить ожидаемый результат
- ускорение процесса проектирования и разработки;
- автоматизацию формирования проектной документации для всех этапов жизненного цикла в соответствии с современными стандартами и т.д.