Универсальный алгоритмический язык Си был разработан в 1972 году 30-летним специалистом по системному программированию, сотрудником фирмы BELL LABORATORIES Деннисом Ритчи, получившим степень бакалавра по прикладной математике в Гарвардском университете.
Название Си (С) – это третья буква английского алфавита. Язык Си стал преемником ранее созданного для внутреннего использования фирмой языка Би (В). Отчасти язык Би основывался на созданном в Кембриджском университете языке BCPL (Basic CombinedProgramming Language – базовый комбинированный язык программирования), который в свою очередь стал потомком Алгола-60.
Первоначально Си был задуман как средство для написания операционной системы UNIX, но как только эта система получила широкое признание в компьютерном мире, он обрел популярность как так называемый язык среднего уровня. В нем удобство, краткость и мобильность языков высокого уровня сочетаются с возможностью непосредственного доступа к аппаратуре, что традиционно обеспечивалось Ассемблером. Автор сумел избежать катастрофической сложности языков-предшественников, пытавшихся угодить всем и во всем. Однако такой подход не лишил Си его мощи: из ограниченного набора его элементов можно по немногим простым и логичным правилам составлять очень сложные конструкции.
Сила языка Си заключается в способности его создавать сложные программы из простых элементов. Можно сказать, что девизом языка Си стало «Multum in parvo» - многое изнемногого. Этому способствовали его особенности:
- в нем реализованы некоторые операции низкого уровня (операции над битами), напрямую соответствующие машинным командам,
- его базовые типы данных отражают те же объекты, с которыми приходится иметь дело в программах на Ассемблере – байты, машинные слова, символы, строки,
- он поддерживает механизм указателей на переменные, массивы, структуры и функции,
- несмотря на эффективность и мощность своих конструкций, он относительно мал по объему.
Первое описание языка Си было дано Б.Керниганом и Д.Ритчи в ставшей раритетом книге «Язык программирования Си», появившейся в 1978 году. Второе, переработанное и дополненное, издание этой книги вышло в свет в 1988 году [1] (имеется русский перевод).
Стандарт языка Си, соответствующий данному описанию, был утвержден Американским национальным институтом стандартов ANSI в 1989 году. Этому же стандарту соответствует краткий по объему, но насыщенный по содержанию справочник [2].
Язык, написанный одним человеком, обычно отражает опыт автора. Деннис Ритчи – выдающийся системный программист, разрабатывающий языки программирования, операционные системы и текстовые редакторы. Поэтому Си – это язык, созданный программистом для программистов, чего нельзя сказать о других алгоритмических языках: Кобол создан для менеджеров, Бейсик – для школьников, Паскаль – для студентов, Фортран и Алгол – для научных работников и аспирантов, Ада – для военных, Лого – для детей, Пролог – для интеллектуалов, ПЛ/1 – для любителей сложностей, АПЛ – для марсиан. Один Си – это язык для программистов-профессионалов. Однако этот язык не предназначен для первоначального обучения программированию. Поэтому лучше всего изучать язык Си после освоения одного из базовых современных языков программирования – Паскаля.
Алфавит языка Си – это набор символов языка, используемых при написании программ. Он включает в себя три категории символов: