Создание языка Си
Си был создан в период с 1970 г. по 1972 г. сотрудниками фирмы Bell Labs Денисом Ритчи и Кеном Томпсоном во время написания ОС Unix. Языку Си предшествовали два языка BCPL и B. Автором языка B был Кен Томпсон. В 1973г. Денис Ритчи и Кен Томпсон переписали ядро системы Unix на языке Си и отошли от принятого стандарта использовать язык Ассемблер для написания операционных систем.
Сначала фактическим стандартом языка Си была версия для операционной системы UNIX, которая была впервые описана в 1978г. С 1983 года велась работа по стандартизации языка Си. В 1989г. Американский институт национальных стандартов (American National Standards Institute – ANSI) одобрил стандарт языка Си. Эту версию языка Си обычно называют стандартом С89. В 1999 году появился новый стандарт языка Си – С99.
Алфавит языка Си
В основе языка Си лежат неделимые элементарные частицы — символы алфавита языка программирования, которые составляют таблицу кодов ASCII.
Из символов строятся элементарные смысловые понятия (слова).
|
|
Алфавит Си включает:
1. Строчные и прописные буквы латинского алфавита.
2. Цифры от 0 до 9.
3. Символ ”_” (подчеркивания).
4. Набор специальных символов
“ {}, | [] + - % / \; ‘:? < > =! & # ~ ^. *
5. Прочие символы.
Типы слов:
- Ключевые слова.
- Идентификаторы (имена переменных).
- Символы (знаки) операций.
- Разделители.
- Литералы (константы) — фиксированные значения, которые программа не может изменять. Способ представления литерала зависит от его типа (например 'a' – символьная константа).
Из слов строятся выражения (предложения), команды.
В Си признаком конца команды является “;”.
Из команд строятся программные модули.
В Си нет подпрограмм, есть только функции. Язык Си не является блочно-стуктурированным, так как не позволяет объявлять одну функцию внутри других, но считается структурированным.
Для образования ключевых слов и идентификаторов используются латинские символы, знак подчеркивания и цифры.
Идентификаторы могут начинаться с символа и _ (знак подчеркивания).
Одинаковые прописные и строчные буквы считаются разными символами.
Типы данных:
- Простые.
- Составные.
1. Простые данные:
1.1. Числа: целые, вещественные.
1.2. Символы — символ=1 байт=8 бит. Набор символов <=256.
1.3. Адреса (ссылка, указатель) — целое число без знака.
2. Составные данные:
2.1. Массивы данных. Одномерный массив — последовательность чисел. Двумерный массив — таблица чисел. Существует понятие массив массивов.
2.2. Файлы:
Файл — логическая совокупность данных + физическое место хранения. Файл состоит из символов, чисел, массивов,….
2.3. Структуры, объединения, перечисления:
|
|
Структура — совокупность логически связанных данных разных типов. Существуют массивы структур. Все простые типы могут быть использованы для организации составных данных.
Целочисленный литерал — служит для записи целочисленных значений и является соответствующей последовательностью цифр (возможно со знаком “-“).
Ц.л., начинающийся с 0, воспринимается как восьмеричное целое.
Ц.л., начинающийся с 0x или 0X, воспринимается как шестнадцатиричное целое. Непосредственно за литералом может располагаться один из (или два) специальных суффикса: U (u) и L (l).
Вещественный литерал — служит для отображения вещественных значений в обычной десятичной или научной нотациях. Непосредственно за литералом могут располагаться один из двух специальных суффиксов: F (f) и L(l).
Символьный литерал — служит для вывода соответствующего значения ASCII кода и представляет собой последовательность из одной или нескольких литер, заключенных в кавычки. Например, литера Z может быть представлена литералом 'Z', '\132', '\x5A'.
Рассмотрим список литер, которые используются в качестве служебных символов или не имеют графического представления.
\0 | \x00 | Нулевая литера |
\a | \x07 | Сигнал |
\b | \x08 | Возврат на шаг |
\f | \x0C | Перевод страницы |
\n | \x0A | Перевод строки |
\r | \x0D | Возврат каретки |
\t | \x09 | Горизонтальная табуляция |
\v | \x0B | Вертикальная табуляция |
\\ | \x5C | Обратная косая черта |
\’ | \x27 | ‘ |
\” | \x22 | “ |
\? | \x3F | ? |
Строковый литерал — является последовательностью литер, заключенных в двойные кавычки.
'x' — символ x, “x” — два символа (x и \0), где \0 — терминатор (конец строки).