Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 3-4(ЯП)+.doc
Скачиваний:
132
Добавлен:
10.06.2015
Размер:
681 Кб
Скачать

Лексические единицы языков программирования

Основой любого естественного или искусственного языка является алфавит – набор допустимых в языке элементарных знаков (букв, цифр и служебных знаков). Знаки могут объединяться в слова или лексемы (lexeme), рассматриваемые в тексте (программе) как неделимые части, имеющие определенный смысл. Словарный состав языка вместе с описанием способов их представления составляютлексикуязыка. Слова в языке объединяются в более сложные конструкции –предложения(clause). В языках программирования предложения представляются в простейшем случае операторами. Предложения строятся из слов и более простых предложений по правилам синтаксиса.Синтаксис(syntax) языка – представляет собой описание правильных предложений, тогда как описание смысла предложений, т.е. значений слов и их внутренних связей, составляютсемантику(semantics) языка.

Любой язык программирования имеет схожие лексические единицы, т.е. лексемы, к которым принято относить: идентификаторы, ключевые слова, литералы, операторы и разделители.

Идентификатором(identifier) является последовательность латинских символов (в некоторых случаях символов кириллицы), в том числе и цифр, начинающийся с буквы или символа подчеркивания, который именует некоторый объект (сущность) в программе, уникально идентифицируя его в пределах некоторого блока программа. Идентификатор не должен содержать знака пробела и некоторых других служебных символов. Ниже приведены примеры правильных идентификаторов:

AppPath, x, y, _leosoft, matrix1, matrix2

Тогда как следующие идентификаторы являются неверными:

4sale // начинается с цифры

#23 // не начинается с буквы

Str$ // содержит неразрешенный знак

В некоторых языках программирования, таких как, С/С++, Java, С# при именовании объектов программы имеет значение регистр символов. Например, идентификаторы

Object, object, OBJECT, oBject

обозначают различные объекты программы, тогда как в ЯП Object Pascalи Visual Basic такие идентификаторы не различаются и могут именовать только один объект программы.

При именовании объектов в программе как правило придерживаются определенного стиля и соглашения об именовании(naming convention), т.е. правил следуя которым строятся идентификаторы, в рамках одного или нескольких программных проектов. Принято, хотя это и необязательно, идентификаторы начинать с префикса, за которым следует сокращенное англоязычное выражение (не содержащее пробелов), отражающее смысл объекта. Например:

iPay, lngShift,bFlag, objActiveSheet, objWorkBook, hAppHandle

Ключевыми словами(keyword) являются лексические единицы, имеющие вид постоянных идентификаторов. Эти слова зарезервированы в языке программирования для специального использования и не могут применяться в качестве идентификаторов пользовательских объектов программы, таких как переменные, подпрограммы и т.д. С помощью отдельных ключевых слов или их комбинаций представляются основные алгоритмические конструкции (структурные операторы) и простые операторы. Каждый язык программирования имеет уникальный набор собственных ключевых слов. Как правило ключевые слова во всех языках программирования представляется короткими англоязычным словам или их сокращения, отражающим смысл представляемого оператора. К распространенным ключевым словам многих языков программирования можно отнести, например следующие:

for, next, if, then, do, while, begin, end, select, case

Операторы, как уже отмечалось ранее, позволяют выразить операционную модель языка программирования. С помощью операторов выражаются не объекты, а действия над ними. Например:

x := 1; // := оператор приваривания (Pascal)

x := x shl 6; // shl оператор логического сдвига влево(Pascal)

Литералами(literal) являются такие символы, которые в рамках принятой интерпретации определяют все свои особенности, в том числе и собственное значение. Литералы подразделяются на числовые, с плавающей точкой и строки.

Числовые литералы могут быть в виде десятичных, шестнадцатеричных, а в некоторых языках программирования двоичных и восьмеричных чисел. Например:

10, 10, 120, 1234 // десятичные числа

0xA, $0A, &H0A // шестнадцатеричные в C, Pascal и Basic

Литералы с плавающей точкой представляют вещественные числа (real numbers). Они состоят из целой части, точки и дробной части. Например:

0.1345, 23.45, 3.14159265358979, 1.1

Числа с плавающей точкой могут быть представлены также в виде целого числа целой части и показателя имеющего также вид целого числа со знаком, перед которым находится прописная или строчная буква E. Например:

1345E-1 2345E-2, 34159265358979E-15, 1E-1

Наконец, строчные литералы или строки(string) представляют собой последовательность символов, заключенные в кавычки (в языкеPascalв апострофы). Строчный литерал интерпретируется как массив символов. Например:

"Hello world", " Bye world", 'Привет мир'

В языках программирования помимо разнообразных лексических единиц имеются вспомогательные синтаксические элементы, такие как разделители, комментарии и директивы.

Разделители (separator)это особый вид синтаксических элементов, реализующие разделение нескольких операторов («;») или других элементов языковых конструкций («,», «( )», «[ ]»).

// ";" - разделяет операторы в ОР

x := x + 1;

// "()" – разделяют части выражения

if (x > 10) AND (z = 0) then Exit;

// "," – разделяют элементы множества

if x in [10, 12, 13, 16] then x := x * 3;

К специфическим лексическим элементам языков программирования можно отнести также директивы (directives), которые не являются исполняемыми, но позволяют управлять процессом трансляции программы и обеспечивают взаимодействие программы со средой разработки.

Непременным атрибутом всех современных языков программирования является комментарии (comment). Комментарий не является лексической единицей, не интерпретируется языком программирования и служит в качестве средства документирования программы. Комментарии обычно объясняют сложные или нестандартные фрагменты кода, смысл и назначение объектов программы, описывают проблему и подходы к ее решению. Начало комментария в программе отмечается специальными символами, за которыми следует текст комментария. Например:

' комментарий в языке Basic

// комментарий открытого типа в С/С++ и Pascal

/* комментарий закрытого типа в С/С++ */

{комментарий закрытого типа в Pascal}