ЯЗЫК ПРОГРАММИРОВАНИЯ СИ. ИСТОРИЯ СОЗДАНИЯ. ОБЩАЯ ХАРАКТЕРИСТИКА.

Язык программирования C (Си) был разработан Деннисом Ритчи (Dennis Ritchie) в 1972 году как инструмент написания операционной системы (ОС) UNIX для электронной вычислительной машины (ЭВМ) PDP-11 фирмы DEC. ОС UNIX была задумана как мастерская для инженеров программистов. Главный инструмент мастерской – язык Си. В настоящее время язык Си используется на различных ЭВМ, на которых установлены разные операционные системы (UNIX, DOS, OS/2, WINDOWS и др.).

Ближайшими родственниками и предками языка программирования Си являются языки программирования:

· Алгол 60 (ALGOL – ALGOrithmic Language - -алгоритмический язык), разработанный Джоном Бэкусом (Backus) и Питером Науром (Naur) и принятый Международным комитетом из представителей семи стран (США, ФРГ, Англии, Франции, Дании, Нидерландов и Швйцарии) в Париже в 1960 году;

· CPL (Combined Programming Language), разработанный Кембриджским и Лондонским университетами в 1963 году;

· BCPL (Basic Combined Programming Language), разработанный Мартином Ричардсом (Martin Richards) в Кембриджском университете в 1967 году;

· B (базовый язык Би), разработанный Кеном Томпсоном (Ken Thompson) в Bell Laboratories в 1970 году.

Язык Си является одновременно языком высокого и низкого уровней (ассемблер высокого уровня). Это означает, что он одновременно относится к двум классам формальных алгоритмических языков:

· универсальных машинно-независимых языков (высокий уровень),

· машинно-ориентированных языков (низкий уровень).

Язык Си имеет хорошо развитые структуры, модули, определяемые типы данных. В этом проявляется его высокий уровень, свойственный таким языкам как, например, Паскаль.

Язык Си открывает доступ к номерам ячеек памяти, битам, байтам, регистрам, управляющим работой центрального процессора и внешних устройств. В этом проявляется его низкий уровень, свойственный ассемблерам.

Язык Си соответствует возможностям многих ЭВМ, но не зависит от их архитектуры. Программы-драйверы не являются составной частью языка Си, а находятся в специальных файлах-библиотеках. Поэтому, программы, написанные на языке Си, являются машинно-независимыми.

Стандарта языка Си до 1989 года не существовало. В качестве описания языка Си первоначально использовалось (в частности разработчиками компиляторов) первое издание книги Керниган Б., Ритчи Д. «Язык программирования Си», вышедшее в США в 1978 году. Этот неформальный, существовавший де-факто стандарт, обозначается специальным сокращением K&R (Kernighan & Ritchie).

В 1989 году Американский институт национальных стандартов (American National Standarts Institute - ANSI) принял стандарт языка Си C89. Этот же стандарт был принят Международной организацией по стандартизации (International Standards Organizaton - ISO). Стандарт ANSI/ISO C89 используется всеми компиляторами языка Си.

Стандарт ANSI/ISO C89 является также основой объектно-ориентированного языка программирования C++, созданного Бьерном Строуструпом (Bjarne Stroustrup) в 80-х годах в Bell Laboratories. Язык Си – это подмножество языка C++. Язык C++ - это надмножество языка Си.

В 1999 году был принят стандарт ANSI/ISO C99, в который был включен ряд изменений и дополнений [18]: массивы переменной длины, новые библиотеки, однострочные комментарии, добавления к препроцессору, новые встроенные типы данных и др.