Построение блок схем алгоритмов. Алгоритмические языки высокого уровня
Рефераты >> Программирование и компьютеры >> Построение блок схем алгоритмов. Алгоритмические языки высокого уровня

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 байтов


Страница: