Система включает собственно ЯП и ряд программных обрабатывающих инструментов, которые необходимы на стадиях создания, проверки, корректировки и использования новой программы. Хотя эти компоненты системы программирования являются внешними по отношению к самому языку (а некоторые из них могут обслуживать разные языки), для успешной работы на ЯП необходимо понимать их функции. Нужно еще учитывать, что, подобно языкам, появляются новые версии также и у систем программирования; проблемы пользователей при этом примерно такие же.
Кратко опишем основные компоненты системы программирования.
1. Текстовый редактор
Этот инструмент служит для формирования в памяти ЭВМ и корректировки текста исходной программы (иначе называемой исходным модулем) на ЯП. Редактор может быть частью системы программирования (встроенный редактор) или независимым программным средством, работающим под управлением операционной системы (внешний редактор).
2. Транслятор. Компиляция и интерпретация
Транслятором называют подсистему, которая переводит текст с ЯП на другой язык, близкий к внутреннему языку команд ЭВМ. Трансляторы основываются на принципах компиляции (они наиболее распространены) или интерпретации.
Компиляция предполагает последовательное выполнение двух или более стадий преобразования исходного модуля в готовый исполняемый модуль на машинном языке. Собственно стадия компиляции состоит в построении объектного модуля, представляющего собой особую промежуточную форму программы. Используемые в объектном модуле адреса указываются относительно условного начала.
Объектный модуль является входным для программы-загрузчика, а продукция загрузчика — входной для исполнительной подсистемы (см. далее). Мощные трансляторы проводят многопроходную компиляцию и оптимизируют программу по быстродействию или использованию памяти.
Во всех случаях при компиляции запуск программы на выполнение возможен только после успешного проведения необходимых трансформаций ее исходного модуля. При повторных запусках перекомпиляция не требуется.