Рассмотрим классические примеры не программистских языков COBOL и Бейсик. COBOL предназначен для того, чтобы не программисты могли читать и понимать программу. Бейсик был создан, чтобы не программисты могли заставить компьютер решать относительно простые проблемы.
В противоположность им, С был создан для настоящих программистов. Конечным результатом является то, что С предоставляет все, необходимое программисту: некоторые ограничения, блоки структур, самостоятельные функции и небольшой набор ключевых слов. Просто изумительно, что, используя С, программист может достичь эффективности ассемблерного кода, вместе со структурами Алгола и Модулы-2. Нет ничего удивительного, что С — это один из наиболее популярных языков среди профессиональных программистов.
С может часто использоваться вместо ассемблера, что благоприятно воздействует на его популярность среди программистов. Ассемблер использует символическое представление двоичного кода» выполняемого компьютером. Каждая ассемблерная операция преобразуется в отдельную команду для компьютера. Хотя ассемблер предоставляет программисту возможность выполнения задач с максимальной гибкостью и эффективностью, существуют некоторые трудности при разработке и отладке программ. Более того, поскольку ассемблер является неструктурированным языком, конечная программа постепенно превращается в мешанину переходов, вызовов и индексов. Из-за данного недостатка программы, написанные на ассемблере, трудно читать, улучшать и поддерживать. Возможно, более важным является то, что подпрограммы ассемблера не переносимы между компьютерами с различными процессорами.
Первоначально С использовался для системного программирования. Системные программы являются частью большого класса программ, среди которых находятся операционная система компьютера и утилиты поддержки. Например, нижеприведенные программы обычно называются системными:
- Операционные системы
- Интерпретаторы
- Редакторы
- Ассемблерные программы
- Компиляторы
- Процессоры баз данных
По мере того как С набирал известность, многие программисты начали применять его при программировании любых задач, благодаря переносимости и эффективности языка. Так как существуют компиляторы С практически для всех компьютеров, можно брать исходный код, написанный для одного компьютера, скомпилировать и запустить его на другом с внесением небольших изменений или вообще без них. Данная переносимость сохраняет как деньги, так и время. Кроме этого, компилятор С создает более быстрый объектный код по сравнению с другими типами компиляторов.
Возможно, наиболее существенной причиной того, что С используется для программирования различных задач, — это то, что программистам он нравится! Он обладает скоростью ассемблера и гибкостью Форта, но и некоторыми ограничениями Паскаля и Модулы-2. Каждый С-программист может создавать и поддерживать уникальную библиотеку функций, которая может быть использована в различных программах. С позволяет программистам легко управлять проектами. И, конечно, это язык прародитель, на основе которого создан С++.