Построение блок схем алгоритмов. Алгоритмические языки высокого уровняРефераты >> Программирование и компьютеры >> Построение блок схем алгоритмов. Алгоритмические языки высокого уровня
fox i := 1 to n do Writeln ( i ) ;
2. СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР.
Синтаксический анализатор на основе синтаксических правил грамматики языка проверяет корректность записи предложений программы и переводит последовательность лексем в последовательность внутренних кодов компилятора. Эта последовательность уже отражает порядок действий, которые должен выполнить компьютер, но еще не является окончательным машинным кодом. В теории компиляции разработано несколько разновидностей внутренних кодов компилятора (триады, тетрады, ПОЛИЗ, деревья, атрибутированные деревья, р-код), однако их рассмотрение выходит за рамки упрощенной модели.
3. ГЕНЕРАТОР КОДА.
Генератор кода осуществляет перевод внутреннего кода компилятора в окончательный машинный код компьютера.
4. ТАБЛИЦЫ.
В процессе работы все рассмотренные выше блоки компилятора обращаются к общему набору таблиц, куда помещается как постоянная для трансляции всех программ информация (например, таблица зарезервированных слов), так и информация, индивидуальная для каждой программы (например, таблицы идентификаторов, литералов и др.).
Языки высокого уровня.
Язык высокого уровня состоит из алфавита и ключевых слова, правил написания идентификаторов, а также особенности построения программ.
Алфавит языка.
Рассматриваемые нами языки программирования, имеют сходный алфавит — набор символов, разрешенных к использованию и воспринимаемых компилятором. В алфавит языка входят:
1. Латинские строчные и прописные буквы:
A,B,…,Z и a,b,…,z
2. Цифры от 0 до 9.
3. Символ подчеркивания «_» (код ASCII номер 95).
Из этих символов (и только из них!) конструируются идентификаторы — имена типов, переменных, констант, процедур, функций и модулей, а также меток переходов. Имя может состоять из любого числа перечисленных выше символов, но должно начинаться с буквы, или символа «_» например:
IX Char Var My_Int_Var C_Dd16_32m int _L
4. Прописные и строчные буквы не различаются на языках Pascal и Delphi: идентификаторы FILENAME и filename — это одно и тоже. Но на языке С, С++ прописные и строчные буквы различаются, поэтому приведенные идентификаторы – это два различных идентификатора. Длина имен формально не ограничена, но различаются в них – «лишь» первые 32–63 символа (остальные игнорируются [зависит от установок в компиляторе]).
5. Символ «пробел» (код 32). Пробел является разделителем в языках. Если между двумя буквами имени или ключевого слова стоит пробел, то две буквы будут считаться принадлежащими разным именам (словам). Пробелы отделяют ключевые слова от имен. Количество пробелов не является значащим. Там, где можно поставить один пробел, можно поставить их сколько угодно. Например, выражения
С=2+2; и С = 2 + 2 ; С:=2+2; С := 2+2;
для компиляторов эквивалентны.
6. Символы с кодами ASCII от 0 до 31 (управляющие коды). Они могут участвовать в написании значений символьных и строчных констант. Некоторые из них (7,10,13,8,26) имеют специальный смысл при проведении ряда операций с ними. Символы, замыкающие строку (коды 13 и 10), и символ табуляции (код 9) также могут быть разделителями:
С:=2+2;
эквивалентно построению
С := 2
+
2;
7. Специальные символы, участвующие в построении конструкций языка:
+-*/=<>[ ] .,():;-@ { } $ # '
8. Составные символы, воспринимаемые как один символ:
<= >= := (* *) (. .) && != <> \\
Разделители (пробелы) между элементами составных символов недопустимы.
Каждый из языков программирования имеет большое количество зарезервированных (или ключевых) слов. Эти слова не могут быть использованы в качестве имен (идентификаторов) в программе. Попытка нарушить этот запрет вызовет ошибку при обработке программы компилятором языка.
Программирование в среде компиляции Borland Pascal (BP).
Перейдем к рассмотрению программирования в среде Borland Pascal.
Написанная по правилам стандарта языка программа будет иметь в своем полном варианте структуру, показанную на рис. 2.
Регистр написания заголовков блоков неважен. Название программы в Borland Pascal имеет чисто декоративное назначение, как комментарий. Обязательная для многих других версий Паскаля конструкция
PROGRAM Имя ( input, output, … )
здесь не является необходимой.
PROGRAM Имя_программы; USES Список используемых библиотек (модулей); LABEL Список меток в основном блоке программы; CONST Определение констант программ; TYPE Описание типов; ОПРЕДЕЛЕНИЕ ПРОЦЕДУР (возможно заголовки); BEGIN тела процедур; END; ОПРЕДЕЛЕНИЕ ФУНКЦИЙ (возможно заголовки); BEGIN тела функций; END; BEGIN Основной блок программы; END. |
Рис. 2.
Группа целых типов.
В Borland Pascal включены пять типов для описания переменных и констант, представляющих целые числа. Их характеристики приведены в таблице 1.
Таблица № 1.
Название типа |
Идентификатор |
Диапазон представления чисел |
Размер памяти |
Короткое целое со знаком |
Shortint |
-128 127 |
1 байт |
Целое со знаком |
Integer |
-32768 32767 |
2 байта |
Длинное целое со знаком |
Longint |
-2147483648 2147483647 |
4 байта |
Короткое целое без знака |
Byte |
0 255 |
1байт |
Целое без знака |
Word |
0 65535 |
2 байта |
Группа вещественных типов.
В группу вещественных типов входят пять типов, показанных в таблице 2.
Таблица №2.
Название типа |
Иденти-фикатор |
Диапазон представления чисел |
Значащие цифры мантиссы |
Размер памяти |
Вещественное одинарной точности |
Single |
от 1.5* 10–45 до 3.4* 1038 |
7 8 |
4 байта |
Вещественное |
Real |
от 2.9* 10–39 до 1.7* 1038 |
11 12 |
6 байтов |
Вещественное двойной точности |
Double |
от 5.0* 10–324 до 1.7* 10308 |
15 16 |
8 байтов |
Вещественное повышенной точности |
Extended |
от 3.4*10–4932 до 1.1*104932 |
19 20 |
10 байтов |
Целое в формате вещественного |
Comp |
от – 263 + 1 до 263 – 1 или приблизительно от -9.2* 1018 до 9.2* 1018 |
19 20 |
8 байтов |