Интерпретация блок-схем

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

·мерность массива, если 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 года. На конференции был сделан доклад (тезисы опубликованы).

Система создавалась с целью обучения студентов первого курса ФПМиК основам программирования. Предполагается её активное использование.

Литература

 

  1. Лебедев В.Н. Введение в системы программирования. - М: Статистика, 1975.-315с.
  2. Грис Д. Конструирование компиляторов для цифровых вычислительных машин, - М: Мир, 1975.-544с.
  3. Касьянов В.Н. , Поттосин И.В. Методы построения трансляторов.- Новосибирск: Наука, 1986. -343с.
  4. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции в 2-х томах. - М: Мир, 1978.
  5. Соловьёв А.С. Интерпретатор языка блок-схем. // Материалы научно-практической конференции “Новые информационные технологии в университетском образовании”. - Новосибирск: Издательство ИДМИ, 1999.-227с.
  6. Демин А.Ю., Гусев А.В. Визуальное программирование программ на основе блок-схем. // Материалы научно-практической конференции “Новые информационные технологии в университетском образовании” Новосибирск: Издательство ИДМИ, 1999.-227с.
  7. Паронджанов В.Д. Язык программирования “ДРАКОН” // Программирование. 1995. - №3.
  8. Паронджанов В.Д. Учись рисовать ясные блок-схемы. - М: “Радио и связь”, 1995.
  9. Рейсдорф Кент, Хендерсон Кен Освой самостоятельно Borland C++Builder. - Москва: ЗАО “Издательство БИНОМ”, 1998.-704с.
  10. 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