- Алфавит, идентификаторы, ключевые слова и константы C++
- Алфавит C++
- Идентификаторы
- Ключевые слова
- Знаки операций
- Константы
- Комментарии
- Раздел 1. Полный курс программирования на стандартном языке Си Глава 1. Базовые понятия языка
- 1.1. Алфавит, идентификаторы, служебные слова Алфавит
- Презентация «Программирование как формальный способ записи алгоритмов. Алфавит и синтаксис языка программирования»
Алфавит, идентификаторы, ключевые слова и константы C++
В тексте на любом естественном языке можно выделить четыре основных элемента: символы, слова, словосочетания и предложения. Подобные элементы содержит и алгоритмический язык, только слова называют лексемами (элементарными конструкциями), словосочетания — выражениями, а предложения — операторами. Лексемы образуются из символов, выражения — из лексем и символов, а операторы — из символов, выражений и лексем. В этой записи рассмотрен алфавит языка программирования C++ и его лексемы.
Алфавит C++
- прописные и строчные латинские буквы и знак подчеркивания;
- арабские цифры от 0 до 9;
- специальные знаки: ? < >, ¦ [ ] ( ) + — / % * . ‘ : ? < = >! & # ~ — ; ^
- пробельные символы: пробел, символы табуляции, символы перехода на новую строку.
Из символов алфавита формируются лексемы языка:
- идентификаторы;
- ключевые (зарезервированные) слова;
- знаки операций;
- константы;
- разделители (скобки, точка, запятая, пробельные символы).
Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.
Идентификаторы
Идентификатор — это имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP — три различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Пробелы внутри имен не допускаются.
СоветДля улучшения читаемости программы следует давать объектам осмысленные имена. Существует соглашение о правилах создания имен, называемое венгерской нотацией (поскольку предложил ее сотрудник компании Microsoft венгр по национальности), по которому каждое слово, составляющее идентификатор, начинается с прописной буквы, а вначале ставится префикс, соответствующий типу величины, например, iMaxLength, IpfnSetFirstDialog.
Другая традиция — разделять слова, составляющие имя, знаками подчеркивания: maxjength, number_of_galosh.
Длина идентификатора по стандарту не ограничена, но некоторые компиляторы и компоновщики налагают на нее ограничения. Идентификатор создается на этапе объявления переменной, функции, типа и т. п., после этого его можно использовать в последующих операторах программы. При выборе идентификатора необходимо иметь в виду следующее:
- идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка;
- не рекомендуется начинать идентификаторы с символа подчеркивания, поскольку они могут совпасть с именами системных функций или переменных, и, кроме того, это снижает мобильность программы;
- на идентификаторы, используемые для определения внешних переменных, налагаются ограничения компоновщика (использование различных компоновщиков или версий компоновщика накладывает разные требования на имена внешних переменных).
Ключевые слова
Ключевые слова — это зарезервированные идентификаторы, которые имеют специальное значение для компилятора. Их можно использовать только в том смысле, в котором они определены. Список ключевых слов C++ приведен в таблице ниже.
Список ключевых слов C++ | |||
asm | else | new | this |
auto | enum | operator | throw |
bool | explicit | private | true |
break | export | protected | try |
case | extern | public | typedef |
catch | false | register | typeid |
char | float | reinterpret_cast | typename |
class | for | return | union |
const | friend | short | unsigned |
const_cast | goto | signed | using |
continue | if | sizeof | virtual |
default | inline | static | void |
delete | int | static__cast | volatile |
do | long | struct | wchar_t |
double | mutable | switch | while |
dynamic_cast | namespace | template |
Знаки операций
Знак операции — это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Знаки операций приведены в отдельной заметке – Операции языка C++
Один и тот же знак может интерпретироваться по-разному в зависимости от контекста. Все знаки операций за исключением [ ], ( ) и ? : представляют собой отдельные лексемы.
Большинство стандартных операций может быть переопределено (перегружено).
Константы
Константами называют неизменяемые величины. Различаются целые, вещественные, символьные и строковые константы. Компилятор, выделив константу в качестве лексемы, относит ее к одному из типов по ее внешнему виду (формат константы можно указать самостоятельно).
Форматы констант, соответствующие каждому типу, приведены в таблице ниже.
Восьмеричный: нуль, за которым
следуют восьмеричные цифры
Шестнадцатеричный: 0х или 0Х,
за которым следуют шестнадцатеричные
Не следует забывать, что у каждого типа данных есть диапазон допустимых значений.
Если требуется сформировать отрицательную целую или вещественную константу, то перед константой ставится знак унарной операции изменения знака (-), например: -218, -022, -0х3C, -4.8, -0.1e4.
Вещественная константа в экспоненциальном формате представляется в виде мантиссы и порядка. Мантисса записывается слева от знака экспоненты (Е или е), порядок — справа от знака. Значение константы определяется как произведение мантиссы и возведенного в указанную в порядке степень числа 10. Обратите внимание, что пробелы внутри числа не допускаются, а для отделения целой части от дробной используется не запятая, а точка.
Символьные константы, состоящие из одного символа, занимают в памяти один байт и имеют стандартный тип char. Двухсимвольные константы занимают два байта и имеют тип int, при этом первый символ размещается в байте с меньшим адресом.
Все строковые литералы рассматриваются компилятором как различные объекты.
Строковые константы, отделенные в программе только пробельными символами, при компиляции объединяются в одну. Длинную строковую константу можно разместить на нескольких строках, используя в качестве знака переноса обратную косую черту, за которой следует перевод строки. Эти символы игнорируются компилятором, при этом следующая строка воспринимается как продолжение предыдущей. Например, строка
“Никто не доволен своей
внешностью, но все довольны
своим умом”
полностью эквивалентна строке
“Никто не доволен своей внешностью, но все довольны своим умом”
В конец каждого строкового литерала компилятором добавляется нулевой символ, представляемый управляющей последовательностью .
Поэтому длина строки всегда на единицу больше количества символов в ее записи. Таким образом, пустая строка ?? имеет длину 1 байт.
Обратите внимание на разницу между строкой из одного символа, например, «А», и символьной константой ?А?.
Пустая символьная константа недопустима.
Комментарии
Комментарий либо начинается с двух символов «прямая косая черта» (//) и заканчивается символом перехода на новую строку, либо заключается между символами-скобками /* и */. Внутри комментария можно использовать любые допустимые на данном компьютере символы, а не только символы из алфавита языка C++, поскольку компилятор комментарии игнорирует. Вложенные комментарии-скобки стандартом не допускаются, хотя в некоторых компиляторах разрешены.
По материалам книги «Программирование на языке высокого уровня CC++», Павловская Т.А.
Раздел 1. Полный курс программирования на стандартном языке Си Глава 1. Базовые понятия языка
Начиная изучать новый для вас алгоритмический язык программирования, необходимо выяснить следующие вопросы:
1. Каков алфавит языка и как правильно записывать его лексемы*?
2. Какие типы данных приняты в языке и как они определяются (описываются)?
3. Какие операции над данными допустимы в языке, как строятся с их помощью выражения и как они выполняются?
4. Какова структура программы, в какой последовательности размещаются операторы, описание и определения?
5. Как выводить (представлять пользователю) результаты работы программы?
6. Как реализованы оператор присваивания, условные операторы и операторы перехода?
7. Как вводить исходные данные для программы?
8. Какие специальные конструкции для организации циклов есть в языке?
9. Каков аппарат подпрограмм (процедур) и (или) подпрограмм-функций?
* Лексема — единица текста программы, которая при компиляции воспринимается как единое целое и по смыслу не может быть разделена на более мелкие элементы.
Затем следует приступать к составлению программ, углубляя в ходе программирования знание языка. Изложение материала в данном пособии почти соответствует описанной схеме изучения алгоритмических языков. Введя основные средства языка Си, будем рассматривать конкретные программы, а затем, переходя к новым классам задач, введем все конструкции языка и те средства, которые не упоминаются в перечисленных выше вопросах.
В начале первой главы рассмотрим алфавит, идентификаторы, константы, типы данных и операции языка. Этот базовый материал необходим для всех следующих глав. Не освоив перечисленных понятий, невозможно начинать программирование.
Традиционно перед изложением синтаксиса языка программирования авторы пособий дают неформальное введение, где на примерах иллюстрируют основные принципы построения программ на предлагаемом языке. Однако язык Си невелик, и его лексические основы можно рассмотреть весьма подробно уже в самом начале изучения. Поэтому начнем с алфавита и лексем.
1.1. Алфавит, идентификаторы, служебные слова Алфавит
Алфавит. В алфавит языка Си входят:
• прописные и строчные буквы латинского алфавита (A,B. Z, a, b. z)
• специальные знаки: “ , <> | [] ( ) + — / % \ ; ‘ . : ? < = >_ & * # ~ ^
• неизображаемые символы («обобщенные пробельные символы»), используемые для отделения лексем друг от друга (например, пробел, табуляция, переход на новую строку).
В комментариях, строках и символьных константах могут использоваться и другие литеры (например, русские буквы).
Комментарий формируется как последовательность знаков (символов), ограниченная слева знаками /*, а справа — знаками */. Например:
В стандартном языке Си комментарии запрещено вкладывать друг в друга, т.е. запись
ошибочна — » текст-3″ не считается комментарием.
В языке Си шесть классов лексем: свободно выбираемые и используемые идентификаторы, служебные (ключевые) слова, константы, строки (строковые константы), операции (знаки операций), разделители (знаки пунктуации).
Презентация «Программирование как формальный способ записи алгоритмов. Алфавит и синтаксис языка программирования»
После того как вы поделитесь материалом внизу появится ссылка для скачивания.
Подписи к слайдам:
- словесная (запись на естественном языке);
- графическая (изображения из графических символов – блок-схем);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
- программная (тексты на языках программирования).
Языки программирования — это формальные языки, предназначенные для записи алгоритмов, исполнителем которых будет компьютер.
Записи алгоритмов на языках программирования называются программами.
Язык Паскаль – универсальный язык программирования.
Никлаус Вирт (род. в 1934 г.) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор информатики (компьютерных наук). Разработчик языка Паскаль и ряда других языков программирования.
Среда программирования – специальная программа, которая позволяет
вводить, редактировать и выполнять программы на языке программирования.
Работа с учебником: «Это интересно»
Система программирования Языка Паскаль Система программирования Языка Паскаль является интегрированной средой программирования, т.к. она включает в себя редактор, компилятор, отладчик и имеет много сервисных возможностей. Компиляция – это процесс перевода программы с языка программирования в двоичный код.
Алфавит языка программирования Паскаль – это набор допустимых символов, которые можно использовать для записи программы.