Стандартизация языка программирования С и системы UNIX - Язык программирования С

Андрей Волков

Андрей Волков

Системное, сетевое администрирование +DBA. И немного программист!))  Профиль автора.

« Prev
Next »

Язык программирования С

К началу 1980-х годов язык С существовал уже в течение 10 лет и был реализован во множе­стве разнообразных UNIX-систем, а также в других операционных системах. В некоторых реализациях отмечались незначительные различия. В частности, это произошло из-за того, что определенные аспекты требуемого функционионала языка не были подробно описаны в существующем де-факто стандарте С. Этот стандарт приводился в вышедшей в 1978 году книге Кернигана (Kernighan) и Ритчи (Ritchie) «Язык программирования Си». (Синтаксис языка С, иногда называют традиционным С, или K&R С.) Кроме того, с появлением в 1985 году языка C++ проявились конкретные улучшения и дополне­ния, которые могли быть привнесены в С без нарушения совместимости с существующими программами. В частности, сюда можно отнести прототипы функций, присваивание струк­тур, спецификаторы типов (const и volatile), перечисляемые типы и ключевое слово void.

Эти факторы побудили к стандартизации С. Ее кульминацией в 1989 году стало утвер­ждение Американским институтом национальных стандартов (ANSI) стандарта языка С (ХЗ.159-1989), который в 1990 году был принят в качестве стандарта (ISO/IEC 9899:1990) Международной организацией по стандартизации (ISO). Наряду с определением синтак­сиса и семантики языка С в этом стандарте давалось описание стандартной библиотеки С, включающей возможности stdio, функции обработки строк, математические функции, различные файлы заголовков и т. д. Эту версию С обычно называют С89 или (значительно реже) ISO С90, и она полностью рассмотрена во втором издании (1988 года) книги Керни­гана и Ритчи «Язык программирования Си».

Пересмотренное издание стандарта языка С было принято ISO в 1999 году (ISO/IEC 9899:1999; см. здесь). Его обычно называют С99, и он включает несколько изменений языка и его стандартной библиотеки. В частности, там описаны добавление типов данных long long и логического (булева), присущий C++ стиль комментариев (//), ограниченные указатели и массивы переменной длины. Новый стандарт для языка Си (ISO/IEC 9899:2011) опубликован 8 декабря 2011. В нем описаны поддержка многопоточности, обобщенные макросы, анонимные структуры и объедине­ния, статичные утверждения, функция quick_exit, новый режим эксклюзивного открытия файла и др.

Стандарты языка С не зависят от особенностей операционной системы, то есть они не привязаны к UNIX-системе. Это означает, что программы на языке С, для написания которых использовалась только стандартная библиотека С, должны быть портированы на любой компьютер и операционную систему, предоставляющую реализацию языка С.

Исторически С89 часто называли ANSI С, и это название до сих пор иногда употребляется в таком значении. Например, оно используется в дсс, где спецификатор -ansi означает «под­держивать все программы ISO С90». Но мы будем избегать этого названия, поскольку теперь оно звучит несколько двусмысленно. После того как комитет ANSI принял пересмотренную версию С99, будет правильным считать, что стандартом ANSI С следует называть С99.

 

« Prev
Next »
Войдите чтобы комментировать