Читайте также:
|
|
История развития языка.
Язык С был разработан в 1972 г. Дэнисом Ритчи и Кеном Томпсоном из AT&T Laboratories в рамках разработки ОС UNIX. В 60е годы Томпсон разрабатывал ОС UNIX. Основной идеей являлась то, что ядро операционной системы и она сама, писались на языке высокого уровня. В начале для этой цели был использован BCPL. Но он не имел динамической поддержки и на его основе был разработан язык B. В этом языке было разработано минимальное подмножество языка BCPL для системного уровня. Это было сделано для возможности работы на компьютере PDP-7 с 8 килобайтами памяти. В 1970 году для проекта UNIX был приобретен компьютер PDP-11 с памятью в 24 Кб. В язык В были добавлены понятие структуры и некоторые дополнительные операторы. Новый язык и стал известен как язык С.
В настоящее время С - универсальный язык, обладающий чертами как прикладного, так и системного языка. Язык С первоначально приобрел наибольшую популярность в университетах, использующих ОС UNIX. Затем он начал распространяться и на другие операционные системы, становясь коммерческим продуктом. В 1989 году был издан первый стандарт языка ANSI C (C89), а в 1990 он был принят в качестве международного стандарта ISO/IES 9899. В дальнейшем стандарт пересматривался в 1999 году (стандарт С99).
Язык С оказал значительное влияние на развитие таких языков программирования как С++, Java, С#.
При изучении языка С основной упор делается на изучение его среды, а не только на его грамматику. Сам по себе язык С - это относительно небольшой язык с ограниченным набором структур управления и возможностей. Он состоит из следующих частей:
· Язык С.
· Препроцессор С.
· Допущения интерфейса С.
· Библиотека С.
Элементы Языка СИ
Используемые символы
Множество символов используемых в языке СИ можно разделить на пять групп.
1. Символы, используемые для образования ключевых слов и идентификаторов (табл.1). В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что одинаковые прописные и строчные буквы считаются различными символами, так как имеют различные коды.
Таблица 1
Прописные буквы латинского алфавита | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
Строчные буквы латинского алфавита | a b c d e f g h i j k l m n o p q r s t u v w x y z |
Символ подчеркивания | _ |
2. Группа прописных и строчных букв русского алфавита и арабские цифры (табл.2).
Таблица 2
Прописные буквы русского алфавита | А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я |
Строчные буквы русского алфавита | а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я |
Арабские цифры | 0 1 2 3 4 5 6 7 8 9 |
3. Знаки нумерации и специальные символы (табл. 3). Эти символы используются с одной стороны для организации процесса вычислений, а с другой - для передачи компилятору определенного набора инструкций.
Таблица 3
Символ | Наименование | Символ | Наименование |
, | запятая | ) | круглая скобка правая |
. | точка | ( | круглая скобка левая |
; | точка с запятой | } | фигурная скобка правая |
: | двоеточие | { | фигурная скобка левая |
? | вопросительный знак | < | меньше |
' | апостроф | > | больше |
! | восклицательный знак | [ | квадратная скобка |
| | вертикальная черта | ] | квадратная скобка |
/ | дробная черта | # | номер |
\ | обратная черта | % | процент |
~ | тильда | & | амперсанд |
* | звездочка | ^ | логическое не |
+ | плюс | = | равно |
- | минус | " | кавычки |
4. Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов).
5. Кроме выделенных групп символов в языке СИ широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр (табл.4).
Таблица 4
Управляющая последовательность | Наименование | Шеснадцатеричная замена |
\a | Звонок | |
\b | Возврат на шаг | |
\t | Горизонтальная табуляция | |
\n | Переход на новую строку | 00A |
\v | Вертикальная табуляция | 00B |
\r | Возврат каретки | 00C |
\f | Перевод формата | 00D |
\" | Кавычки | |
\' | Апостроф | |
\0 | Ноль-символ | |
\\ | Обратная дробная черта | 05C |
\ddd | Символ набора кодов ПЭВМ в восьмеричном представлении | |
\xddd | Символ набора кодов ПЭВМ в шестнадцатеричном представлении |
Последовательности вида \ddd и \xddd (здесь d обозначает цифру) позволяет представить символ из набора кодов ПЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например символ возврата каретки может быть представлен различными способами:
· \r - общая управляющая последовательность,
· \015 - восьмеричная управляющая последовательность,
· \x00D - шестнадцатеричная управляющая последовательность.
Следует отметить, что в строковых константах всегда обязательно задавать все три цифры в управляющей последовательности. Например отдельную управляющую последовательность \n (переход на новую строку) можно представить как \010 или \xA, но в строковых константах необходимо задавать все три цифры, в противном случае символ или символы следующие за управляющей последовательностью будут рассматриваться как ее недостающая часть. Например: "ABCDE\x009FGH" данная строковая команда будет напечатана с использованием определенных функций языка СИ, как два слова ABCDE FGH, разделенные 8-ю пробелами, в этом случае если указать неполную управляющую строку"ABCDE\x09FGH",то на печати появится ABCDE=|=GH, так как компилятор воспримет последовательность \x09F как символ "=+=".
Отметим тот факт, что, если обратная дробная черта предшествует символу не являющемуся управляющей последовательностью (т.е. не включенному в табл.4) и не являющемуся цифрой, то эта черта игнорируется, а сам символ представляется как литеральный. Например: символ \h представляется символом h в строковой или символьной константе.
Кроме определения управляющей последовательности, символ обратной дробной черты (\) используется также как символ продолжения. Если за (\) следует (\n), то оба символа игнорируются, а следующая строка является продолжением предыдущей. Это свойство может быть использовано для записи длинных строк.
Дата добавления: 2015-04-11; просмотров: 98 | Поможем написать вашу работу | Нарушение авторских прав |