Курсовая работа: Особенности языка Форт

Исполнитель:

Пахоменко А.К.

Гомель 2007


Содержание

Введение

1 Краткое описание языка

2 Работа со стёком данных

3 Константы, переменные и работа с памятью

4 Логические операции

5 Примеры программ

6 Организация диалога в Форте

7 Определяющие слова

Заключение

Введение

Любой язык программирования начинается с идеи определяющей его функциональную структуру, набор команд и отличительные особенности от других языков. Главная идея языка Форт - это стёковая организация памяти. Для Форта стёк, не дополнительный вид памяти, как например, для языка Паскаль, а основной. Вспомним, что стёк это что-то вроде трубы, в которую можно бросать мячики. Мячик, который брошен последним, будет вынут первым. Чтобы вынуть десятый мячик, нужно вынуть девять первых. Это может показаться несколько сложным и неэкономичным, но давайте вспомним, что существует большой класс задач, которые легко решаются с помощью рекурсивных механизмов. А рекурсия как раз и предполагает наличие стековой памяти. Конечно, организация рекурсии не достаточно веский аргумент для создания специального языка. Существуют и достаточно обычные задачи, решение которых удобно с применением стёка. Например, попробуем упорядочить массив чисел в порядке возрастания. Для этого определим каким-либо образом процедуру ротации значений стека. При выполнении этой процедуры все значения, лежащие в стеке поднимаются на одну позицию вверх, а верхний элемент занимает место нижнего (такая операция имеется в языке Форт).

Тогда, для решения задачи необходимо описать два вложенных цикл, в котором на каждом шаге будут выполнятся следующие действия:

1. Ротация стека.

2. Взять с вершины два значения А, В

3. Если А>В то положить на вершину А, В Иначе положить В, А.

Примечание. Процедура ротации заключается в смещении всех элементов стёка, таким образом, что каждый элемент становится на место соседа. Например, каждый элемент занимает место предыдущего элемент, а первый становится на место последнего. Конечно, это не проще чем работа с массивами, но и не сложнее.


1. Краткое описание языка

Вычислительная модель, лежащая в основе языка Форт, состоит из адресного пространства, языка, оперативной памяти до 64 Кб, терминала и поля внешней памяти на магнитных дисках объёмом до 32 Кб блоков по 1 Кб. каждый. В пределах имеющегося адресного пространства располагаются стёк данных, словарь, буфер для ввода с терминала и буфер для обмена с внешней памятью. Примечание. Описанные выше ограничения по памяти не принципиальны. Просто в то время были такие машины. По меркам истории вычтехники ФОРТ достаточно старинный язык.

Стёк данных обычно располагается в старших адресах оперативной памяти и используется для передачи параметров и результатов между исполняемыми словами. Его элементами являются двухбайтные значения, которые в зависимости от ситуации могут рассматриваться различным образом: как целые числа со знаком в диапазоне от -32768 до +32767, как адреса оперативной памяти в диапазоне от 0 до 65535, как коды литер для обмена с терминалом, как номера блоков внешней памяти в диапазоне от 0 до 32767 или просто как 16-ти разрядные двоичные значения. В процессе исполнения слов значения перемещаются на стёк и снимаются с него. Переполнение и исчерпание стёка, как правило, не проверяется; его максимальный объём устанавливается реализацией. Стандарт предусматривает, что стёк растёт в сторону убывания адресов.

Примечание. Обратите внимание, что стёк имеет свое расположение в ОЗУ. Это означает, что не все ОЗУ есть стёк. Часть ОЗУ выделяется под различные системные потребности, и часть ОЗУ представляет собой обычную статическую память, в которой можно хранить обычные переменные. Для стековых данных понятие переменной отсутствует. Есть только понятие слова, которое может оказаться как командой, так и словом данных. Начальную часть адресного пространства обычно занимает словарь - хранилище слов и данных. По мере расширения исходного набора слов словарь растёт в сторону увеличения адресов. Специальные слова из обязательного набора позволяют управлять вершиной словаря - поднимать и опускать её.

Примечание. Поясню термин "словарь". Любой язык имеет возможности создавать подпрограммы, процедуры, функции, модули, переменные, константы и т.д. Любой из этих объектов характеризуется значением и именем. То есть, любой язык предполагает, что в процессе работы программист может создать новый объект языка имени для которого нет в языке. Вот СЛОВАРЬ Форта и занимается хранением таких новых имён.

2 Работа со стёком данных

Команды обработки стёка

- DUP - дублирует верхнее значение стёка и добавляет его копию на вершину.

- DROP - убирает верхнее значение стёка

- OVER - дублирует значение, лежащее на стёке непосредственно под верхним.

- ROT - переставляет по часовой стрелке три верхних значения стёка.

- SWAP - меняет местами два верхних значения стёка.

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 261
Бесплатно скачать Курсовая работа: Особенности языка Форт