Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции С раздача.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
423.42 Кб
Скачать

19

Краткая история развития языка с

Язык С был изобретен и реализован Деннисом Ритчи. Этот язык был разработан на основе "более старого" языка BCPL, созданного в свое время Мартином Ричардсом (Martin Richards). BCPL оказал определенное влияние на язык В, разработанный Кеном Томпсоном (Ken Thompson). В свою очередь развитие языка В привело к созданию в 1970 году языка С.

На протяжении многих лет стандартом С была фактически версия, поставляемая вместе с операционной системой Unix. Эта версия впервые была описана Брайаном Керниганом (Brian Kernighan) и Деннисом Ритчи в книге The С Programming Language в 1978г . Летом 1983 года был образован комитет по созданию для языка С стандарта ANSI {American National Standards Institute — Нацио­нальный институт стандартизации США). Стандарт ANSI был окончательно принят в декабре 1989 года и впервые опублико­ван в начале 1990 года. Этот стандарт был также принят организацией ISO (International Standards Organization Международная организация по стандартизации), поэтому он называется стандартом ANSI/ISO языка С. Версию С, определенную стандартом 1989 года, обычно называют С89.

Разработка С продолжалась, приведя в 1999 году к появлению стандарта С, который принято называть С99.

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

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

Программа, написанная на С, обладает высокой переносимостью. Пере­носимость — это свойство программного обеспечения, созданного для одного типа компьютера или операционной системы, позволяющее легко переделать его для дру­гого типа, т.е. перенести в другую вычислительную среду. Например, если программу, работающую под управлением DOS, легко переделать так, чтобы она работала под управлением Windows 2000, то такая программа называется переносимой1.

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

В отличие от большинства языков высокого уровня, в С почти отсутствует кон­троль ошибок в процессе выполнения программы. Например, не проверяется нару­шение границ массивов. Ответственность за подобные ошибки полностью возлагается на программиста.

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

Отличительной особенностью языка С является возможность манипулирования непосредственно битами, байтами, словами и указателями. Поэтому С хорошо при­способлен для системного программирования.

Другая важная особенность С — это малое количество ключевых слов, составляю­щих команды языка. В С89 определено 32 ключевых слова, причем в С99 добавлено только 5 слов. Языки высокого уровня обычно имеют значительно больше ключевых слов, например, в большинстве версий языка Basic их количество превышает сотню.