Программирование на C и C++

Онлайн справочник программиста на C и C++

Язык среднего уровня

С часто называют языком среднего уровня. Это не означает, что С менее мощный, более труден в изучении или менее разработан, чем языки высокого уровня типа Бейсик или Паскаль. Также это не означает, что у него имеются проблемы, присущие ассемблеру. Определение С как языка среднего уровня означает, что он объединяет элементы языков высокого уровня с функциональностью ассемблера. В таблице показанно место С среди других языков.

Таблица. Место С в мире языков
Высокий уровень Средний уровень Нижний уровень
Ада  С Ассемблер
Модула-2 С++  
Паскаль FORTH  
COBOL Макро Ассемблер  
Фортран    
Бейсик    

 

Как язык среднего уровня, С позволяет манипулировать битами, байтами и адресами — основными элементами, с которыми работает компьютер. И это все несмотря на то, что код С имеет высокую степень переносимости. (Под переносимостью подразумевается возможность переноса программного обеспечения, написанного для одного типа компьютеров, на другой.) Например, если программа, написанная для Apple Macintosh, может быть легко перенесена на IBM PC, то программа является переносимой.

Языки высокого уровня поддерживают концепцию типов данных. Тип данных определяет набор значений, которые переменная может хранить, и набор операций, которые могут выполняться над переменной. Стандартными типами данных является целочисленный, символьный и вещественный. Хотя С имеет 5 основных встроенных типов данных, он не так сильно типизирован, как языки типа Паскаль или Ада. Фактически С позволяет осуществлять большинство преобразований типов. Например, символьный и целочисленный типы могут быть свободно смешаны в большинстве выражений. В противоположность языкам высокого уровня С в основном не выполняет проверку ошибок времени выполнения типа проверки выхода за границы массива. Данные проверки возлагаются на программиста.

Как было упомянуто выше, С позволяет напрямую манипулировать битами, байтами, словами и указателями. Это необходимо для Программирования на системном уровне, где такие операции наиболее типичны. Другим важным аспектом С является то, что в нем имеется только 32 ключевых слова (27 — из стандарта Кернигана и Ричи и 5 добавлено комитетом по стандартизации ANSI), являющихся командами, образующими язык С. Высокоуровневые языки, как правило, имеют несколько больше ключевых слов.