- •Основы алгоритмических языков программирования Понятие о языках программирования. Современные языки программирования высокого уровня
- •Лексические единицы языков программирования
- •Интегрированные среды разработки программ
- •История развития технологии vba
- •Интегрированная среда разработки vba
- •Составные части vba-проекта. Добавление пользовательского кода
- •Вывод отладочных сообщений. Пошаговое выполнение и инструменты отладки
- •Концепция памяти. Переменные и их декларация в языках программирования
- •Управляющие структуры выбора
- •Структурные операторы в алгоритмических языках программирования
- •Данная логическая операция имеет следующую таблицу истинности, в которой «0» соответствует значению false, а «1» – true (табл 1).
- •Остальные логические операторы являются двухоперандными. Операция логического умножения and имеет следующую таблицу истинности (табл 2):
- •Наконец операция логического исключающего или представляется следующей таблицей истинности (табл 4):
- •Реализация управляющих структур выбора в vb
- •Циклические управляющие структуры
- •Реализация циклических управляющих структур в vb
- •Цикл с постусловием имеет похожий синтаксис:
- •Основные положения процедурного программирования
- •Реализация процедурного программирования в Visual Basic
- •Фундаментальные структуры данных
- •Массивы в vb
- •Агрегация разнородных типов. Структурные типы данных
- •Тип данных определяемый пользователем в vb
- •Основы объектно-ориентированного программирования
- •Реализация основных идей объектно-ориентированного программирования в языке vb. Поля и методы. Конструирование объекта класса. Адресная природа объекта класса
- •Свойства и события в vb. Связь объекта класса и его клиентов
- •Интерфейс класса в vb и его наследование
Лексические единицы языков программирования
Основой любого естественного или искусственного языка является алфавит – набор допустимых в языке элементарных знаков (букв, цифр и служебных знаков). Знаки могут объединяться в слова или лексемы (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}
