Структура языка программирования
Состав языка. Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Язык программирования содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания — выражениями, предложения — операторами. Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструкции образуются из последовательности символов, — это последовательность элементарных конструкций и символов, а — последовательность выражений, элементарных конструкций и символов.
Описание языка есть описание четырех названных элементов. Описание символов заключается в перечислении допустимых символов языка. Под описанием элементарных конструкций понимают правила их образования. Описание выражений — это правила образования любых выражений, имеющих смысл в данном языке. Описание операторов состоит из рассмотрения всех типов операторов, допустимых в языке. Описание каждого элемента языка задастся его синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения.
— это основные неделимые знаки, в терминах которых пишутся все тексты на языке.
— это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка.
Выражение в языке программирования состоит из элементарных конструкций и символов, оно задает правило вычисления некоторого значения.
Оператор задает полное описание некоторого действия, которое необходимо выполнить. Для описания сложного действия может потребоваться группа операторов. В этом случае операторы объединяются в составной оператор, или блок.
Действия, заданные операторами, выполняются над данными. Предложения языка программирования, в которых даются сведения о типах данных, называются описаниями или неисполняемыми операторами.
Объединенная единым алгоритмом совокупность описаний и операторов образует программу на языке программирования.
Запись опубликована в рубрике Информатика с метками программирование, структура, язык. Добавьте в закладки постоянную ссылку.
Элементарные конструкции языка
Элементарные конструкции языка Паскаль включают в себя имена, числа и строки.
Идентификаторы и служебные слова
Рассматривая понятия языка, следует отметить и существование служебных слов, которые используются для строго определенных целей:
- для обозначения операторов (Case, Write, Read и т.д.);
- описаний (Var, Const, Label);
- операций (div – целочисленное деление, mod – остаток от деления и т.д.).
- латинский алфавит, цифры , знак подчеркивания;
- не начинается с цифры;
- не совпадает с зарезервированными словами;
- имя является словами произвольной длины (максимум 255 символов), значащими является только первые 63 символа;
- имя должно быть уникальным;
- избегать схожих по имен (AX1 и AXI).
Константы и переменные
Константы — постоянные величины, значения которых не меняются в процессе выполнения программы. Могут быть представлены либо непосредственно своим значением (числом, строкой), либо именем. Например: а=312, Max=1000, MyName=’Иванов Иван Иванович’ Переменные – величины, значения которые могут изменяться в процессе выполнения программы. Например: а:=х+2; в:=2*i-1 Каждая переменная или константа принадлежит к определенному типу данных. Тип констант определяется автоматически, а тип переменной необходимо указать.
Комментарии
Для лучшего понимания программы в ней записывается пояснительный текст – комментарии. Комментарий можно записать в любом месте программы, его текст ограничен символами <> или (**) и может содержать любые комбинации латинских и русских букв, цифр и других символов языка Паскаль. Ограничений на длину комментария нет, он может занимать несколько строк.
Структура программы на языке Turbo Pascal
- Заголовок программы;
- Раздел uses (подключение библиотечных модулей);
- Раздел объявления меток;
- Раздел объявления констант;
- Раздел объявления типов;
- Раздел объявления переменных;
- Раздел объявления процедур и функций;
- Раздел операторов.
- арабские цифры
- латинские буквы и знак подчеркивания
- специальные знаки: “ ‘ <> . , & ? () [] < >и т.д.
- пробельные символы (пробел, табуляция, символ перехода на новую строку)
- идентификаторы;
- ключевые слова (служебные, зарезервированные);
- знаки операций;
- константы;
- разделители (скобки, точка, запятая, пробельные символы).
- аддитивные (+,-);
- мультипликативные(*, /, %);
- поразрядные (&,|, ^);
- операции отношений (, =, ==, !=);
- логические (&&, ||);
- присваивания (=, *=, );
- и др.
- кодов, не имеющих графического изображения;
- символов “ ‘ \ ?
- любого символа, с помощью его шестнадцатеричного (\x) и восьмеричного кода (\) (от 0 до 255). Например, cout <<”\х61 \141”; //выведется два символа a.
Тема 1.1.Лексические основы языка программирования Общие сведения о программах, лексемах и алфавите
В тексте на любом естественном языке можно выделить четыре основные структурные компоненты: символы, слова, словосочетания и предложения. Подобные элементы содержит и любой алгоритмический язык: символы, лексемы, выражения и операторы. Лексемы образуются из символов, выражения из лексем, а операторы из выражений и лексем. Объединенная единым алгоритмом совокупность операторов образует программу на алгоритмическом языке.
Алфавит языка (или его символы) – это основные неделимые знаки, с помощью которых пишутся все тексты на языке.
Лексемы (или элементарные конструкции) – минимальная конструкция языка, имеющая самостоятельный смысл.
Из символов алфавита формируются следующие лексемы языка:
Границы лексем определяются другими лексемами, такими как разделители, знаки операций и комментариями.
Комментарий – это текст программы, который не анализируется компилятором и служит для пояснений текста. В С++ комментарии могут быть заданы двумя способами. Для однострочных комментариев используют символы //, как в нашем примере. Для многострочных комментариев можно использовать символы /* , */, между которыми и должен находится сам текст комментария. В тексте комментария могут содержаться любые символы, а вся последовательность символов эквивалентна символу пропуска (например, символу пробела). Комментарии одного типа не могут быть вложенными, однако можно использовать символы // для того, чтобы закомментировать символы /*… */, а символами /*…*/можно закомментировать //.
Рассмотрим каждый из видов лексем подробно.
Идентификатор – это набор символов, представляющих имя программного объекта. Правила написания идентификаторов в конкретном языке программирования указываются в справочниках по этому языку. Например в С++ идентификатор представляет собой последовательность из букв латинского алфавита, десятичных цифр и символов подчеркивания, начинающуюся не с цифры, причем прописные и строчные буквы различаются. На длину различаемой части идентификатора в С++ различные реализации накладывают свои ограничения (по стандарту длина не ограничена).
Ключевые слова – это идентификаторы, зарезервированные в языке для специального использования. Ключевые слова языка также перечисляются в справочнике по языку, но знакомится с ними имеет смысл по мере изучения конструкций языка программирования.
Пример ключевых слов в языке С++:
int – ключевое слово для описания переменных целого типа
if – ключевое слово для построения условной конструкции
Знаки операций — это один или более символов, определяющих действия над операндами. Знаки операций обеспечивают формирование и последующие вычисление выражений. Выражение задает правило для получения значения. Один и тот же знак операции может употребляться в различных выражениях и по-разному интерпретироваться в зависимости от контекста. (Например, унарный и бинарный минус). Для каждой операции задан тип операндов, над которыми может выполняться данная операция. Операндами могут быть выражения и их частные случаи – константы и переменные. Операции делятся на унарные, бинарные и тернарую по количеству операндов (1,2,3 соотвественно).
a++ или ++a – операция инкремента (увеличения на единицу)
a— или —a – операция декремента (уменьшения на единицу)
Все бинарные операции делятся на следующие основные группы:
Рассмотрим тернарную условную операцию.
выражение1? выражение2: выражение3;
Если истинно выржение1, то выполняется выражение2, иначе выполняется выражение3
Одним из принципиальных отличий С++ от С является возможность расширения действия стандартных операций (перегрузка операций), то есть распространения их действия на нестандартные для них операнды.
Все операции разделены на группы по приоритетам. Если в выражении встречаются операции с разными приоритетами, то сначала выполняются те, у которых приоритет выше. Если все операции имеют одинаковый приоритет, то они выполняются в соответствии с правилом ассоциативности либо слева направо, либо справа налево. Например,
Для изменения порядка выполнения операций используются круглые скобки.
Задание для самостоятельной работы. Изучить операции языка С++ и их приоритеты.
Константа – это лексема, представляющая изображение фиксированного числового (целого или вещественного), строкового или символьного значения.
вещественная 78.8, 5., .09, 0.2E-3
символьная – один или два символа, заключенные в кавычки ‘a’, ‘ab’, ‘\n’, ‘\n\t’;
строковая — последовательность символов, заключенная в кавычки “Hello, World”.
Последовательность символов, начинающаяся с обратной косой черты называется escape-последовательностями (управляющими) и используются для представления
Оператор задает законченное описание некоторого действия. (Существует путаница понятий, например, у Страуструпа оператор и операция – синонимы, а для таких элементов языка, как if, for используются выражение statement – утверждение, предложение, инструкция). Каждый оператор в С++ заканчивается точкой с запятой.
Для описания сложного действия требуется последовательность операторов. Операторы могут быть объединены в составной оператор или блок с помощью инструктивных скобок (например, в С++ инструктивными являются скобки <>). В этом случае они рассматриваются как один оператор.
Операторы бывают исполняемые и не исполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных, поэтому их называют операторами описания или просто описаниями.
Правила построения элементов языка определяет синтаксис языка, а их смысл и правила использования определяет семантика, и, следовательно, нарушение формы записи элементов языка приводит к синтаксическим ошибкам, а правильно написанный, но не отвечающий алгоритму оператор приводит к семантическим ошибкам (логическим, ошибками времени выполнения).