Инструментарий программирования — это совокупность программных продуктов, обеспечивающих технологию разработки, отладки и внедрения создаваемых новых программных продуктов. Они делятся на средства для создания приложений и средства для создания информационных систем (Case-технологии).
К средствам для создания приложений можно отнести:
1. Языки, системы программирования (например, C, Pascal, Basic) и инструментальные среды для разработки приложений (например, C++, Delphi, Visual Basic, Java), которые включают средства визуального программирования.
2. Интегрированные среды разработки программ — средства для комплексного применения на всех технологических этапах создания программ. Они позволяют повысить производительность труда как программистов, так и профессиональных пользователей, автоматизировать создание кодов программ, разрабатывать приложения для архитектуры клиент-сервер, запросов и отчетов.
3. Инструментальные среды пользователя — специальные средства, которые встроены в пакеты прикладных программ — библиотеки функций, процедур, объектов и методов обработки, макрокоманды, клавишные макросы, языковые макросы, программные модули-вставки, конструкторы экранных форм и отчетов, генераторы приложений, языки запросов высокого уровня, языки манипулирования данными, конструкторы меню и др.
Средства для создания информационных систем — CASE-технологии — это программные комплексы, автоматизирующий весь технологический процесс анализа, проектирования, разработки и сопровождения сложных программных систем. Средства CASE-технологии делятся на встроенные в систему и независимые от системы реализации. Они нацелены на коллективную работу над проектом за счет возможности работы в локальной сети разработчиков.
Язык программирования — это формализованный язык, предназначенный для записи алгоритмов решения задач на ЭВМ.
Языки программирования можно классифицировать по различным признакам. Например, по синтаксису образования конструкций языка их условно делят на следующие классы:
машинные коды (наборы двоичных данных) — воспринимаются аппаратной частью компьютера;
машинно-ориентированные (ассемблеры) — отражают структуру конкретного типа компьютеров;
алгоритмические языки (Fortran, Basic, Pascal, C и др.) — отражают структуру алгоритма и не зависят от архитектуры компьютера;
процедурно-ориентированные языки — используются для описания программы как совокупности процедур (подпрограмм);
проблемно-ориентированные языка (Lisp, Prolog и др.) — используются для решения задач определенного класса.
Существует и другая классификация: по поколениям или по уровням привязки к машинным кодам. В этом случае, языки первого и второго поколения (машинные коды и языки ассемблера) относят к языкам низкого уровня, а языки третьего — пятого поколения считаются языками высокого уровня, которые, в свою очередь делят на следующие классы:
линейные языки (набор операторов);
процедурные языки (Fortran, Cobol, Algol, Basic, Pascal, C и др.);
логические языки (Prolog и др.);
объектно-ориентированные языки (C++, JAVA, Delphi, Visual Basic и др.);
языки запросов к базам данных (стандарт всех языков — SQL 92);
языки сценариев (скриптов) (Visual Basic Script, JAVA Script и др.);
языки макропрограммирования (Visual Basic for Application).
Система программирования — это совокупность программного обеспечения, включающая: транслятор, интерфейс разработчика, набор библиотек подпрограмм, редактор связей, отладчик, сервисные средства, справочную систему и др.
Транслятор (англ. translator — переводчик) — это средство преобразования исходного текста программы на алгоритмическом языке в машинный код. Трансляторы реализуются в виде компиляторов или интерпретаторов, которые существенно различаются по принципам работы.
Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает объектный модуль на машинном языке (из него потом создается законченный вариант программы).
Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу построчно. Программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном ее запуске.
Откомпилированные программы работают быстрее, но интерпретируемые проще исправлять и изменять.
Редактор связей — осуществляет перевод объектного модуля в загрузочный (исполняемую программу) с подключение всех используемых подпрограмм. Он включает в себя: отладчик; набор библиотек; средства оптимизации кода программ; справочные системы; сервисные средства для работы с библиотеками и др.