Синтаксическая нотация

Язык С
Строк программы, исключая математическое обеспечение Является учебным введением в центральную часть языка “C” Hачинаем. Единственный способ освоить новый язык Оператор FOR Набор полезных программ Подсчет символов Подсчет слов Функции Аргументы - вызов по значению Область действия: внешние переменные Резюме Константы Описания Преобразование типов До 9 и буквы от а до F Операции и выражения присваивания Старшинство и порядок вычисления Операторы и блоки Переключатель Цикл DO - WHILE Оператор CONTINUE Основные сведения Функции, возвращающие нецелые значения Еще об аргументах функций Правила, определяющие область действия Статические переменные Блочная структура Рекурсия Указатели и адреса Указатели и массивы Адресная арифметика Указатели символов и функции Указатели - не целые До 12, а не от 0 до 11. Так как за экономию памяти у нас пока не награждают, такой способ проще, чем подгонка индек-сов Инициализация массивов указателей Указатели на функции Структуры Структуры и функции Указатели на структуры Мы продемонстрируем, как правильно выполнить эту задачу Поля Определение типа Обращение к стандартной библиотеке Форматный вывод - функция PRINTF Форматный ввод - функция SCANF Форматное преобразование в памяти Обработка ошибок - STDERR и EXIT Обращение к системе Низкоуровневый ввод/вывод - операторы READ и WRITE Произвольный доступ - SEEK и LSEEK Пример - распечатка справочников Пример - распределитель памяти Константы Синтаксическая нотация Преобразования Первичные выражения Унарные операции Аддитивные операции Операция присваивания Спецификаторы типа Описание структур и объединений Инициализация TYPEDEF Оператор SWITCH Внешнее определение функции Область действия внешних идентификаторов Неявные описания Явные преобразования указателей Анахронизмы Операторы
439386
знаков
0
таблиц
0
изображений

11. Синтаксическая нотация

 

В используемой в этом руководстве синтаксической нотации

синтаксические категории выделяются курсивом (прим. перев.:

в настоящее время синтексические категории вместо курсивом

выделяются подчеркиванием), а литерные слова и символы -

жирным шрифтом. Альтернативные категории перечисляются на

отдельных строчках. Необязательный символ, терминальный или

нетерминальный, указывается индексом “необ”, так что

 

\( выражение

--------- необ \)

указывает на необязательное выражение, заключенное в фигур-

ных скобках. Синтаксис суммируется в пункте 18.

 

12. Что в имене тебе моем?

Язык “C” основывает интерпретацию идентификатора на двух

признаках идентификатора: его классе памяти и его типе.

Класс памяти определяет место и время хранения памяти, свя-

занной с идентификатором; тип определяет смысл величин, на-

ходящихся в памяти, определенной под идентификатором.

Имеются четыре класса памяти: автоматическая, статичес-

кая, внешняя и регистровая. Автоматические переменные явля-

ются локальными для каждого вызова блока и исчезают при вы-

ходе из этого блока. Статические переменные являются локаль-

ными, но сохраняют свои значения для следующего входа в блок

даже после того, как управление передается за пределы блока.

Внешние переменные существуют и сохраняют свои значения в

течение выполнения всей программы и могут использоваться для

связи между функциями, в том числе и между независимо ском-

пилированными функциями. Регистровые переменные хранятся

(ели это возможно) в быстрых регистрах машины; подобно авто-

матическим переменным они являются локальными для каждого

блока и исчезают при выходе из этого блока.


·     189 -

В языке “C” предусмотрено несколько основных типов

объектов:

объекты, написанные как символы (CHAR), достаточно вели-

ки, чтобы хранить любой член из соответствующего данной реа-

лизации внутреннего набора символов, и если действительный

символ из этого набора символов хранится в символьной пере-

менной, то ее значение эквивалентно целому коду этого симво-

ла. В символьных переменных можно хранить и другие величины,

но реализация будет машинно-зависимой.

Можно использовать до трех размеров целых, описываемых

как SHORT INT, INT и LONG INT. Длинные целые занимают не

меньше памяти, чем короткие, но в конкретной реализации мо-

жет оказаться, что либо короткие целые, либо длинные целые,

либо те и другие будут эквивалентны простым целым. “Простые”

целые имеют естественный размер, предусматриваемый архиитек-

турой используемой машины; другие размеры вводятся для удво-

летворения специальных потребностей.

Целые без знака, описываемые как UNSIGNED, подчиняются

законам арифметики по модулю 2**N, где N - число битов в их

представлении. (На PDP-11 длинные величины без знака не пре-

дусмотрены).

Плавающие одинарной точности (FLOAT) и плавающие двойной

точности (DOUBLE) в некоторых реализациях могут быть синони-

мами.

Поскольку объекты упомянутых выше типов могут быть ра-

зумно интерпретированы как числа, эти типы будут называться

арифметическими. типы CHAR и INT всех размеров совместно бу-

дут называться целочисленными. Типы FLOAT и DOUBLE совместно

будут называться плавающими типами.

Кроме основных арифметических типов существует концепту-

ально бесконечный класс производных типов, которые образуют-

ся из основных типов следующим образом:

массивы объектов большинства типов;

функции, которые возвращают объекты заданного типа;

указатели на объекты данного типа;

структуры, содержащие последовательность объектов

различных типов;

объединения, способные содержать один из нескольких

объектов различных типов.

Вообще говоря, эти методы построения объектов могут при-

меняться рекурсивно.

13. Объекты и L-значения

Объект является доступным обработке участком памяти;

L-значение - это выражение, ссылающееся на объект. Очевидным

примером выражения L-значения является идентификатор. Сущес-

твуют операции, результатом которых являются L-значения; ес-

ли, например, E - выражение указанного типа, то *E является

выражением L-значения, ссылающимся на объект E. Название

“L-значение” происходит от выражения присваивания E1=E2, в

котором левая часть должна быть выражением L-значения. При

последующем обсуждении каждой операции будет указываться,

ожидает ли она операндов L-значения и выдает ли она L-значе-

ние.

·     190 -

 


Информация о работе «Язык С»
Раздел: Информатика, программирование
Количество знаков с пробелами: 439386
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
48443
0
0

... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...

Скачать
43709
0
0

... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...

Скачать
39778
0
1

... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...

Скачать
64931
0
0

... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...

0 комментариев


Наверх