КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Общие сведения о программах, лексемах и алфавите
Тема 2. Лексические основы языка программирования В тексте на любом естественном языке можно выделить четыре основные структурные компоненты: символы, слова, словосочетания и предложения. Подобные элементы содержит и любой алгоритмический язык: символы, лексемы, выражения и операторы. Лексемы образуются из символов, выражения из лексем, а операторы из выражений и лексем. Объединенная единым алгоритмом совокупность операторов образует программу на алгоритмическом языке. Алфавит языка (или его символы) – это основные неделимые знаки, с помощью которых пишутся все тексты на языке. В алфавит языка С++ входят - арабские цифры - латинские буквы и знак подчеркивания - специальные знаки: “ ‘ {}., &? () [] < > и т.д. - пробельные символы (пробел, табуляция, символ перехода на новую строку) Лексемы (или элементарные конструкции) – минимальная конструкция языка, имеющая самостоятельный смысл. Из символов алфавита формируются следующие лексемы языка: - идентификаторы; - ключевые слова (служебные, зарезервированные); - знаки операций; - константы; - разделители (скобки, точка, запятая, пробельные символы). Границы лексем определяются другими лексемами, такими как разделители, знаки операций и комментариями. Рассмотрим каждый из видов лексем подробно. Идентификатор – это набор символов, представляющих имя программного объекта. Правила написания идентификаторов в конкретном языке программирования указываются в справочниках по этому языку. Например в С++ идентификатор представляет собой последовательность из букв латинского алфавита, десятичных цифр и символов подчеркивания, начинающуюся не с цифры, причем прописные и строчные буквы различаются. На длину различаемой части идентификатора в С++ различные реализации накладывают свои ограничения (по стандарту длина не ограничена). Задание для самостоятельной работы: в справочной системе MS Visual Studio найти каковы ограничения на длину идентификатора. Ключевые слова – это идентификаторы, зарезервированные в языке для специального использования. Ключевые слова языка также перечисляются в справочнике по языку, но знакомится с ними имеет смысл по мере изучения конструкций языка программирования. Пример ключевых слов в языке С++: int – ключевое слово для описания переменных целого типа if – ключевое слово для построения условной конструкции Знаки операций - это один или более символов, определяющих действия над операндами. Знаки операций обеспечивают формирование и последующие вычисление выражений. Выражение задает правило для получения значения. Один и тот же знак операции может употребляться в различных выражениях и по-разному интерпретироваться в зависимости от контекста. (Например, унарный и бинарный минус). Для каждой операции задан тип операндов, над которыми может выполняться данная операция. Операндами могут быть выражения и их частные случаи – константы и переменные. Операции делятся на унарные, бинарные и тернарую по количеству операндов (1,2,3 соответственно). Примеры унарных операций -7 унарный минус a++ или ++a – операция инкремента (увеличения на единицу) a-- или --a – операция декремента (уменьшения на единицу) ! a – операция отрицание Все бинарные операции делятся на следующие основные группы: - аддитивные (+,-); - мультипликативные(*, /, %); - поразрядные (&,|, ^); - операции отношений (<, >, <=, >=, ==,!=); - логические (&&, ||); - присваивания (=, *=,); - и др. Рассмотрим тернарную условную операцию. выражение1? выражение2: выражение3; Если истинно выржение1, то выполняется выражение2, иначе выполняется выражение3 Например, a>0?b=1:b=-1
Все операции разделены на группы по приоритетам. Если в выражении встречаются операции с разными приоритетами, то сначала выполняются те, у которых приоритет выше. Если все операции имеют одинаковый приоритет, то они выполняются в соответствии с правилом ассоциативности либо слева направо, либо справа налево. Например, a==++b*c+d (++ * + ==) -!a (-(!a)) Для изменения порядка выполнения операций используются круглые скобки. Задание для самостоятельной работы: Изучить операции языка С (см. пособие) и их приоритеты. Константа – это лексема, представляющая изображение фиксированного числового (целого или вещественного), строкового или символьного значения. Например, целые 10, 012(8), 0хА(16); вещественная 78.8, 5.,.09, 0.2E-3; символьная – один символ, заключенный в кавычки, например ‘a’, ‘\n’; строковая - последовательность символов, заключенная в кавычки “Hello, World”. Последовательность символов, начинающаяся с обратной косой черты называется escape-последовательностями (управляющими) и используются для представления - кодов, не имеющих графического изображения; - символов “ ‘ \? - любого символа, с помощью его шестнадцатеричного и восьмеричного кода \141 \х61 =a (от 0 до 255). Оператор задает законченное описание некоторого действия. (Существует путаница понятий, например, у Страуструпа оператор и операция – синонимы а для таких элементов языка, как if, for используются выражение statement – утверждение, предложение, инструкция). Каждый оператор в С++ заканчивается точкой с запятой. Для описания сложного действия требуется последовательность операторов. Операторы могут быть объединены в составной оператор или блок с помощью инструктивных скобок (например, в С++ инструктивными являются скобки {}). В этом случае они рассматриваются как один оператор. Операторы бывают исполняемые и не исполняемые. Исполняемые операторы задают действия над данными. Неисполняемые операторы служат для описания данных, поэтому их называют операторами описания или просто описаниями. Правила построения элементов языка определяет синтаксис языка, а их смысл и правила использования определяет семантика, и, следовательно, нарушение формы записи элементов языка приводит к синтаксическим ошибкам, а правильно написанный, но не отвечающий алгоритму оператор приводит к семантическим ошибкам (логическим, ошибками времени выполнения).
Дата добавления: 2014-01-06; Просмотров: 1051; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |