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 -
... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...
... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...
... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...
... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...
0 комментариев