Системы программирования - это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ.
В настоящее время разработка любого системного и прикладного программного обеспечения осуществляется с помощью систем программирования, в состав которых входят:
• трансляторы с языков высокого уровня;
• средства редактирования, компоновки и загрузки программ;
• макроассемблеры (машинно-ориентированные языки);
• отладчики машинных программ.
Системы программирования, как правило, включают в себя:
• текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;
• загрузчик программ (Load), позволяющий выбрать из директории нужный текстовый файл программы;
• запускатель программ (Run), осуществляющий процесс выполнения программы;
• компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;
• отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;
• диспетчер файлов (File), предоставляющий возможность выполнять операции с файлами: сохранение, поиск, уничтожение и т.п.
Ядро системы программирования составляет язык. Существующие языки программирования, которые можно разделить на две группы: процедурные и непроцедурные, рис.1.
Процедурные (или алгоритмические) программы представляют собой систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.
Процедурные языки разделяют на языки низкого и высокого уровня.
Языки низкого уровня (машинно-ориентированные) позволяют создавать программы из машинных кодов, обычно в шестнадцатиричной форме. С ними трудно работать, но созданные с их помощью высококвалифицированным программистом программы занимают меньше места в памяти и работают быстрее. С помощью этих языков удобнее разрабатывать системные программы, драйверы (программы для управления устройствами компьютера), некоторые другие виды программ.
Программы на языках высокого уровня близки к естественному (английскому) языку и представляют набор заданных команд.
Перечислим наиболее известные системы программирования.
1. Фортран (FORmula TRANslating system - система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык.
2. Бейсик (Beginner's All-purpose Symbolic Instruction Code - универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий - самый популярный по числу пользователей.
3. Алгол (ALGOrithmic Language - алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.
4. ПЛ/1 (PL/I Programming Language - язык программирования первый). Многоцелевой язык; сейчас почти не используется.
5. Си (С - “си”); широко используется при создании системного программного обеспечения.
6. Паскаль (Pascal - назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. На его базе созданы несколько более мощных языков (Модула, Ада, Дельфи).
7. Кобол (COmmon Business Oriented Language - язык, ориентированный на общий бизнес); в значительной мере вышел из употребления.
8. Дельфи (Delphi) - язык объектно-ориентированного “визуального” программирования; в данный момент чрезвычайно популярен.
9. Джава (Java) - платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц.
Среди непроцедурных языков наиболее известны
1. Лисп (Lisp);
2. Пролог (PROgramming in LOGic);
3. Оккам (назван в честь философа У. Оккама).
Низкоуровневый язык программирования - язык программирования, близкий к программированию непосредственно в машинных кодах. Как правило, использует особенности конкретного семейства процессоров.
Общеизвестный пример низкоуровнего языка — язык ассемблера.
Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом.
Основная черта высокоуровневых языков - это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания.