Интерпретация блок-схем
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
·мерность массива, если Size == 0,
// то это переменная
unsigned int* SizeN;// массив значений размерностей,
// если это переменная то SizeN == NULL
char* ready;// признак готовности к работе переменной
int* __int;// значение переменной типа int
long int* __long_int;// значение переменной типа long int
char* __char;// значение переменной типа char
float* __float;// значение переменной типа float
double* __double;// значение переменной типа double
struct VARIABLE* next;// указатель на следующий элемент таблицы
// переменной
};
Таблица констант также представлена списком структур следующего вида:
struct CONSTANTA
{
unsigned char type;// тип константы
int __long_int;// константа типа long int
int __int;// константа типа int
char __char;// константа типа char
float __float;// константа типа float
double __double;// константа типа double
char* __string;// константа типа string
struct CONSTANTA* next;// указатель на следующий элемент таблицы
};
Последовательность текста блока, как уже говорилось ранее, при трансляции переводится на внутренний язык транслятора. В данной системе это список сверток, которые имеют следующую структуру:
struct SVERTKA
{
unsigned char type;// тип свертки
unsigned char intype;// подтип свертки (номер операции, функции,
// процедуры в списке функций)
struct VARIABLE* variable;// если это не переменная то variable==NULL
// если переменной не существует в таблице
// переменных то variable == NULL
struct CONSTANTA* constanta;//указатель на таблицу констант
// если это не константа то constanta==NULL
// если такой константы не существует в таблице
// констант то constanta == NULL
struct SVERTKA* next;// указатель на следующий элемент свертки
int result;// счетчик числа операндов операций или функции
};
Заключение
Данная работа представляет собой транслятор с языка блок схем.
Система состоит из оболочки, графического редактора блок-схем, встроенного текстового редактора, интерпретатора, пошагового отладчика и конвертора на язык Си.
Система отлажена и протестирована на серии примеров. Система реализована в двух вариантах:
- Под операционную систему MS-Dos,
- Под операционные системы Windows NT, Windows 95, Windows 98.
Размер исполняемого файла в среде MS-Dos 300 Кбайт, в среде Windows 900 Кбайт.
Результаты данной работы были представлены на 6ой международной научно-практической конференции “Новые информационные технологии в университетском образовании”, которая проходила в городе Новосибирске с 17 по 19 марта 1999 года. На конференции был сделан доклад (тезисы опубликованы).
Система создавалась с целью обучения студентов первого курса ФПМиК основам программирования. Предполагается её активное использование.
Литература
- Лебедев В.Н. Введение в системы программирования. - М: Статистика, 1975.-315с.
- Грис Д. Конструирование компиляторов для цифровых вычислительных машин, - М: Мир, 1975.-544с.
- Касьянов В.Н. , Поттосин И.В. Методы построения трансляторов.- Новосибирск: Наука, 1986. -343с.
- Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции в 2-х томах. - М: Мир, 1978.
- Соловьёв А.С. Интерпретатор языка блок-схем. // Материалы научно-практической конференции “Новые информационные технологии в университетском образовании”. - Новосибирск: Издательство ИДМИ, 1999.-227с.
- Демин А.Ю., Гусев А.В. Визуальное программирование программ на основе блок-схем. // Материалы научно-практической конференции “Новые информационные технологии в университетском образовании” Новосибирск: Издательство ИДМИ, 1999.-227с.
- Паронджанов В.Д. Язык программирования “ДРАКОН” // Программирование. 1995. - №3.
- Паронджанов В.Д. Учись рисовать ясные блок-схемы. - М: “Радио и связь”, 1995.
- Рейсдорф Кент, Хендерсон Кен Освой самостоятельно Borland C++Builder. - Москва: ЗАО “Издательство БИНОМ”, 1998.-704с.
- Lee C.Y. An algorithm for path connetion and its applications. // “IRE Trans.”, V.EC-10 - № 3.
Приложение
Приложение 1: Примеры блок-схем
MS-Dos версия:
Windows версия:
Пример 1. Нахождение максимума из двух чисел.
Пример 2. Сортировка методом пузырька (Windows версия).
Пример3. Вычислительная программа (MS-Dos версия)
Приложение 2: Матрицы переходов анализаторов
Матрица лексического анализатора (сканера)
0()+-/*<>=^|![],;&.0“01222229121415172414182322222222223-9E0461110000000000000000-1-1-10-1-12-12-10000000000-100003-1-10-1-13-13-10000000000-10000-1-1-10-1-145555555555555555555555555-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-17-1666666666666666666666-16687-1-1-100000000000-10-100-1-10-1-18-1-1-10-1-1-1-1-1-1-1-1-1-1-1-100-1-1-1-10-19000-110-1-1-1-1-111-1-1-1-1-1-1-1-10-1-10-110-1-1-10-1-10000-1000-10000-1-1-10-111000-1-10-1-1-1-1-1-1-1-1-1-1-1-1-10-1-10012000-1-113-1-1-1-111-1-1-1-1-1-1-1-10-1-10013-1-1-1-10-10000-1000-10000-1-1-10-114000-1-1-1-1-1-1-111-1-1-1-1-1-1-1-10-1-10015000-1-10-1-116011-1-1-1-1-1-1-1-10-1-10016000-1-1-1-1-1-1-111-1-1-1-1-1-1-1-1-1-1-10-117000-1-10-1-1-11611-1-1-1-1-1-1-1-10-1-10018000-1-10-1-1-1-111-119-1-1-1-1-1-10-1-10019000-1-10-1-1-1-1-1-1-10-1-1-1-1-10-1-10020000-1-1-1-1-1-1-111-1-10-1-1-1-1210-1-10021000-1-10-1-1-1-1-1-1-10-1-1-1-1-10-1-1002200000000000000000000000023000-1-1-1-1-1-1-111-1-10-1-1-1-1-10-1-10024000-1-10-1-1-1-111-1-1-1-1-1-1-1-10-1-100
Матрица синтаксических переходов блока “НАЧАЛО”
состояниеИдентификаторКонстантаIntLongCharFloatDouble,;[]NULL0-30-3121222-32-32-32-32Е-321-30-312-30-30-30-30-32-32-32-32-32-3223-33-33-33-33-33-33-32-32-32-32-32-323-32-32-32-32-32-32-32204-32-32-324-345-34-34-34-34-34-34-34-34-34-34-345-34-34-34-34-34-34-344-34-346-34-346-34-34-34-34-34-34-3420-34-34-34-34
Матрица синтаксических переходов блока “ВВОД”
Состояниеидентификатор[,;NULL01-35-35-35-35-351-351 \ 0 \-3602-35-3521-35-35-35-35Выход
Матрица синтаксических переходов индексации массивов 1
состояниеИдентификаторКонстантаЛюбая конст.[],+-~#*/^ModDiv()NULL01.2.....44.....1\1...1...2