В тексте на любом естественном языке можно выделить четыре основных элемента: символы, слова, словосочетания и предложения. Подобные элементы содержит и алгоритмический язык, только слова называют лексемами (элементарными конструкциями), словосочетания — выражениями, а предложения — операторами. Лексемы образуются из символов, выражения — из лексем и символов, а операторы — из символов, выражений и лексем. В этой записи рассмотрен алфавит языка программирования C++ и его лексемы.
Алфавит
- прописные и строчные латинские буквы: А, В, С, Z, а, b, с, z
- цифры: 0, 1,2, 3,4, 5, 6,7,8,9
- специальные символы: + -/ % . ? ! » > | ‘ _ > , ; : . * = #
- пробельные символы: пробел, символ табуляции, символ перевода строки
- прочие символы — только в комментариях к тексту программы
Лексемы — единицы текста программы, которые при компиляции воспринимаются как единое целое и по смыслу не могут быть разделены на более мелкие элементы
Пространства имен. Ссылки. Конструктор. Деструктор. Друзья класса. Перегрузка операций и функций.
- идентификаторы,
- ключевые слова,
- знаки (символы) операций,
- литералы,
- разделители.
Источник: cpp-cpp.blogspot.com
Лексемы.
Основная задача лексического анализа – разбить входной текст, состоящий из последовательности одиночных символов, на последовательность слов, или лексем, т.е. выделить эти слова из непрерывной последовательности символов. Все символы входной последовательности с этой точки зрения разделяются на:
- символы, принадлежащие каким-либо лексемам,
- и символы, разделяющие лексемы (разделители).
- прописные и строчные буквы латинского алфавита (A..Z,a..z);
- цифры: 0,1,2,3,4,5,6,7,8,9;
- специальные знаки: » < >| ( ] ( ) + — / ; ‘ . : ? < = >!
- double — вещественный двойной точности с плавающей
- точкой;
- enum — перечисляемый тип (перечисление) — определение
- целочисленных констант, для каждой из которых вводятся
- имя и значение;
- float — вещественный с плавающей точкой;
- int — целый;
- long — целый увеличенной длины (длинное целое);
- short — целый уменьшенной длины (короткое целое);
- struct — структура (структурный тип);
- signed — знаковый, т.е. целое со знаком (старший бит считается знаковым);
- union — объединение (объединяющий тип);
- unsigned — беззнаковый, т.е. целое без знака (старший бит не считается знаковым);
- void — отсутствие значения;
- typedef — вводит синоним обозначения типа (определяет сокращенное наименование для обозначения типа).
- const — квалификатор объекта, имеющего постоянное значение, т.е. доступного только для чтения;
- volatile — квалификатор объекта, значение которого может измениться без явных указаний программиста.
- auto — автоматический;
- extern — внешний;
- register — регистровый;
- static — статический.
- break — выйти из цикла или переключателя;
- continue — завершить текущую итерацию цикла (продолжить цикл, перейдя к следующей итерации);
- do — выполнять (заголовок оператора цикла с постусловием);
- for — для (заголовок оператора параметрического цикла);
- goto — перейти (безусловный переход);
- if — если — обозначение условного оператора;
- return — возврат (из функции);
- switch — переключатель;
- while — пока (заголовок цикла с предусловием или завершение цикла do).
- default — определяет действия при отсутствии нужного варианта в операторе switch;
- case — определяет вариант в операторе switch;
- else — входит в оператор if, определяя альтернативную ветвь;
- sizeof — операция определения размера операнда (в байтах),
Ограничение
Шаг 4. Препроцессор и раздельная компиляция
Для продолжения скачивания необходимо пройти капчу:
Источник: studfile.net
Начала программирования на языке Си , страница 2
Здесь главная функция main описана как функция возвращающая целочисленное значение, на что указывает идентификатор типа int. Значение 0 в инструкции return будет воспринято как успешное завершение программы.
Контрольные вопросы и задания
1. Приведите примеры функций из раздела библиотеки math.h.
2. Приведите примеры функций из других разделов библиотеки.
3. Рассмотрите структуру программы следующего примера и укажите в ней разделы программы:
/* Эта программа будет использовать функции работы с терминалом и математические функции*/
printf(“Математические функции хранятся в разделе math.h «);
3. БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ
В ходе изучения любого языка программирования, необходимо выяснить для себя следующие вопросы:
1. Каков алфавит языка и как правильно записываются его лексемы? (Лексема – единица текста программы, которая при компиляции воспринимается как единое целое).
2. Какие типы данных приняты в языке и как они определяются (описываются)?
3. Какие операции над данными допустимы в языке, как строятся с их помощью выражения и как они выполняются?
4. Какова структура программы, в какой последовательности размещаются операторы, описания и определения?
5. Как выводить (представлять пользователю) результаты работы программы?
6. Как реализовать оператор присваивания, условные операторы и операторы перехода?
7. Как вводить исходные данные для программы?
8. Какие специальные конструкции для организации циклов есть в языке?
9. Каков аппарат подпрограмм процедур и (или) подпрограмм функций?
3.1. Алфавит, идентификаторы, служебные слова
3.1.1. Алфавит
Как и обычный человеческий язык, язык программирования высокого уровня Cи имеет свой алфавит, который позволяет строить допустимые конструкции, т.е. составлять “слова” и ”предложения”.
В алфавит Cи входят:
· прописные и строчные буквы латинского алфавита: A, B, …, Z, a, b, …, z;
· специальные знаки: «» , < >| [ ] ( ) + — / % ; ‘ . : ? < = >_ !
· неизображаемые символы: пробелы, переход на другую строку, табуляция.
В комментариях, строках и символьных константах могут использоваться и буквы русского алфавита.
Комментарии это последовательность символов ограниченная знаками /* слева и */ справа. Например:
3.1.2. Лексемы языка Cи
В языке Cи шесть классов или видов лексем: служебные (ключевые) слова, константы, строки (строковые константы), операции (знаки операций), разделители (знаки пунктуации), свободно выбираемые и используемые идентификаторы.
3.1.3. Идентификаторы
Все переменные и константы, используемые программистом в программе должны иметь собственное имя – идентификатор, которое присваивает им программист, то есть они должны быть идентифицированы.
Идентификаторами называются имена, присваиваемые переменным, констатнам, типам данных и функциям, используемым в программе.
Идентификаторами являются последовательности символов, которые могут содержать буквы, цифры, символы подчеркивания “_”, и начинающиеся с буквы или символа подчеркивания.
Идентификаторами языка Си могут быть: _16SEPT2001, size82, Æcolor, min, MIN (так как прописные и строчные буквы различаются, то min и MIN различные идентификаторы).
Идентификаторами языка Си не могут быть: DVUH, #YOU#.
Длина идентификатора может быть любой, но компиляторы различают только от 8 до 31 символов.
Источник: vunivere.ru