Смекни!
smekni.com

Интерпретация блок-схем (стр. 1 из 18)

Томский государственный университет

Факультет прикладной математики и кибернетики

Кафедра программирования

ДОПУСТИТЬ К ЗАЩИТЕ В ГАК

зав. кафедрой программирования профессор, д.т.н.

_______________ А.Ю.Матросова

“____ ” ________________ 1999 г.

Соловьёв Александр Станиславович

Система визуального программирования

“Блок-схема” на основе языка блок-схем

(дипломная работа)

Научный руководитель доцент, к.т.н.

_________ Н.А.Белоусова

Автор работы

_________ А.С. Соловьев

Томск 1999


Реферат

Дипломная работа представляет собой систему программирования, которая облегчает обучение программированию и началам алгоритмизации. Основная идея, положенная в основу работы, - это создание системы трансляции с языка блок - схем.

Созданная система “Блок-схема” обладает удобным интерфейсом, графическим редактором блок-схем, встроенным текстовым редактором, интерпретатором и конвертором на язык программирования Си. В системе предусмотрена возможность получения информации (справок) как о самой системе, так и о языке блок - схем. Система снабжена демонстрационными примерами.

Система создана в двух вариантах:

· Под операционную систему MS-DOS 3.x и выше;

· Под операционные системы Windiows 95, Windows 98 и Windows NT.

В первом случае, разработка велась с помощью языка Borland C++ 3.1 (совместима с языком Turbo C 2.0). Во втором, с помощью пакета Borland C++Builder 3.0.


Оглавление

Введение................................................................................................................................... 4

1. Языки программирования................................................................................................ 6

1.1. Классификация............................................................................................................. 6

1.2. Сравнительная характеристика языков................................................................... 8

2. Трансляторы........................................................................................................................ 9

2.1. Классификация............................................................................................................. 9

2.2. Компиляторы и интерпретаторы.............................................................................. 9

3. Язык блок-схем................................................................................................................. 11

3.1. Правила построения блок-схем.............................................................................. 11

3.2. Блоки............................................................................................................................ 12

3.3. Связки........................................................................................................................... 14

3.4. Язык наполнения блок – схем................................................................................. 14

4. Система программирования.......................................................................................... 18

4.1. Графический редактор.............................................................................................. 18

4.2. Встроенный текстовый редактор............................................................................ 21

4.3. Интерпретатор........................................................................................................... 22

4.3.1. Этапы трансляции............................................................................................... 22

4.3.2. Лексический анализ............................................................................................ 24

4.3.2.1. Задачи лексического анализа.................................................................... 24

4.3.2.2. Сканер............................................................................................................. 25

4.3.3. Синтаксический и семантический анализ...................................................... 27

4.3.4. Польская инверсная запись (ПолИЗ)............................................................... 27

4.3.4.1. Алгоритм Дейкстры формирования ПолИЗа.......................................... 28

4.3.4.2. ПолИЗ выражений, содержащих переменные синтаксиса.................. 29

4.3.4.3. Алгоритм перевода ПолИЗа в машинные команды............................. 31

4.3.5. Общая схема работы интерпретатора............................................................ 34

4.4. Оболочка системы..................................................................................................... 35

4.4.1. Работа с файлами............................................................................................... 35

4.4.2. Знакомство с системой...................................................................................... 36

4.4.2.1. MS-Dos версия системы............................................................................... 36

4.4.2.2. Windows версия системы............................................................................ 40

4.5. Внутреннее представление данных....................................................................... 46

Заключение............................................................................................................................ 48

Литература............................................................................................................................. 49

Приложение.......................................................................................................................... 50

Приложение 1: Примеры блок-схем............................................................................. 50

Приложение 2: Матрицы переходов анализаторов.................................................. 52

Приложение 3: Текст основных классов программы................................................. 58


Введение

Основная проблема, которая встает перед обучаемыми на занятиях по информатике, это неосязаемость изучаемого предмета. Живя в материальном мире человеку довольно трудно и не очень интересно разбираться с неосязаемыми операторами.

Наиболее естественной формой представления (восприятия) информации является графический образ – рисунок, чертеж, схема и т.д. К этой форме человек прибегает всякий раз (возможно неявно для себя), когда необходимо решать (описывать, формулировать) действительно сложные задачи. Эффективное оперирование наглядными образами, быстрое установление смысловой связи между ними – является сильной стороной человеческого мышления.

Еще во времена становления программирования, когда программы писались на внутреннем языке ЭВМ – машинном коде (ассемблере), неотъемлемой частью разработки программ было использование блок-схем. Как мы все хорошо знаем: “ Схемой алгоритма называется такое графическое представление алгоритма, в котором этапы процесса обработки информации и носители информации представлены в виде геометрических символов из заданного ограниченного набора, а последовательность процесса отражена направлением линий ” [1]. Их применение значительно облегчало восприятие и анализ программы. Двумерное представление программы более ясно отражало ее структуру. Применение блок-схем позволяло быстрее и качественнее разрабатывать и отлаживать программы, а также облегчалось их сопровождение. Данное свойство блок-схем было “узаконено” и они стали обязательной частью документации.

Сохранение двух различных форм представления программ – самого текста и блок-схемы всегда чревато ошибками, поскольку трудно постоянно поддерживать их соответствие. Более того, многие программисты никогда не любили вычерчивать блок-схемы и создавали их после того, как программа была закончена, и лишь потому, что блок-схемы требовались в качестве документации. Таким образом, польза, которую могли бы принести блок-схемы, отсутствовала и именно тогда, когда она была наиболее нужна – при разработке программы.

Естественным развитием данной ситуации является объединение двух подходов в описании программ: в виде текста и блок-схемы. Результатом такого объединения является понятие визуального программирования. Под ним понимается способ описания алгоритма решения задачи в графическом виде, соединяющий достоинства текста и блок-схем программ. Что в сочетании с современными графическими возможностями ЭВМ и их способностью взять на себя рутинные операции и максимально упростить весь процесс программирования, делает это направление очень перспективным.

Вследствие всего выше сказанного, представляет интерес реализация системы визуального программирования, в рамках которой, будет представлена возможность определения алгоритма в графическом виде, подобно блок-схеме, но с элементами потокового программирования и использованием в полной мере графических и интерактивных возможностей компьютера, что в конечном итоге не только облегчает понимание написанного, но и сильно облегчает процесс создания программ.

Обучаемый намного быстрее и легче разберется в каком либо языке, если ему дать возможность самому составить блок-схему алгоритма, посмотреть как он (алгоритм) будет выполняться, проследить изменения значений переменных, а затем посмотреть, как выглядит исходный текст непосредственно на изучаемом языке.

В 70ых годах были довольно успешные попытки создания систем, с помощью которых ЭВМ понимала язык блок-схем (например, ОДА). Но все-таки это были языки блок-схем не в чистом виде. В них присутствовали описатели, с помощью которых ЭВМ строила из алгоритма блок-схему.

В идеальном случае программист должен создавать блок-схему, непосредственно работая с планшетом, на котором изображается блок-схема.

Если ориентировать разрабатываемую систему на начинающего программиста, который учится не только программированию, сколько началам алгоритмизации, то система должна быть интерпретирующего типа с удобным интерфейсом. Это значит, что процесс интерпретации должен отображаться на экране в форме, позволяющей пользователю следить за этим процессом, прерывать его, наблюдать, как изменяются значения переменных.

1. Языки программирования

1.1. Классификация

В системном программировании языком называется определенный набор символов и правил (соглашений), устанавливающих способы комбинаций этих символов для записи осмысленных сообщений (текстов).