Метка: Программирование
FORTH
В конечном счете любой список заканчивается словами списка FORTH , который уже не имеет базового. На рис. 2.7 показаны поля параметров списков А , В и FORTH . Список В является базовым для А и, в свою очередь, базируется на списке FORTH. Слова Аь ..., А/ входят в список А ; Bi, ... , В* — в В и Fi, ... , F„ — в FORTH.
Показанный на рисунке порядок поиска слов соответствует исполнению текста В DEFINITIONS А, в результате чего сначала будут просмотрены списки А , В , FORTH , а затем В , FORTH .
Чтобы обеспечить большую гибкость в управлений порядком поиска слов и иметь возможность переопределять...
Интерпретация входного потока
Собственно работа форт-системы заключается в распознавании и исполнении слов-команд, которые программист вводит с терминала. Ввод осуществляется построчно: набрав нужный текст, программист нажимает специальную управляющую клавишу, сообщая тем самым о завершении ввода. Форт-система размещает введенный текст в специальном буфере для ввода с терминала, который располагается в адресном пространстве оперативной памяти. Адрес начала этого буфера дает стандартное слово TIB (сокращение от TEXT INPUT BUFFER — буфер для ввода текста), его длина хранится...
Примеры программных разработок
В этой главе приведены примеры реализации отдельных программных средств — небольших удобных расширений (инфиксная форма записи, локальные переменные, конструкция «переключатель», векторное поле кода) — и целых инструментальных систем на базе языка Форт. Основное внимание уделено методологическим аспектам использования Форта как расширяемого языка. Все приведенные примеры отражают опыт использования Форта в конкретных разработках.
Средства отладки форт-программ
Программы на языке Форт — определения слов — кодируются и вводятся...
Векторное поле кода
В языке Форт с каждым словом-командой связано некоторое действие, определяющее семантику данного слова. В словарной статье, которая является внутренним представлением форт-слова, это действие задано через поле кода. В случае косвенного шитого кода оно содержит адрес машинной программы, исполнение которой и составляет действие данного слова. Эта программа образует исполняющую часть определяющего слова, через которое данное слово было создано, и параметризуется адресом поля параметров его словарной статьи.
Описанный механизм является...
Выбор по целому
Выбор по целому — распространенная конструкция в языках программирования. Она является обобщением условного оператора, который осуществляет выбор между двумя последовательностями операторов— частью «то» и частью «иначе» — по логическому значению (ИСТИНА или ЛОЖЬ) условия. В конструкции выбора по целому в качестве значения условия выступает целое число, и выбор осуществляется между несколькими альтернативными ветвями, каждая из которых соответствует определенному значению условия или некоторому множеству таких значений. Как правило,...
Слова CASE (выбор) и ENDCASE (конец выбора)
Слова CASE (выбор) и ENDCASE (конец выбора) ограничивают конструкцию и обеспечивают правильную компиляцию вложенных операторов. Слово CASE , проверив, что текстовый интерпретатор находится в состоянии компиляции, сменяет глобальную переменную CSP (сокращение от CURRENT STACK POINTER — текущий указатель стека), сохраняя на стеке ее прежнее значение (слово !CSP засылает в переменную CSP адрес текущей вершины стека). Слова OF (из) и ENDOF (конец из) ограничивают отдельную ветвь. Во время работы скомпилированного определения перед началом исполнения каждой ветви на...
Динамическая идентификация
Внутренним представлением форт-слова является словарная статья, которая размещается в словаре. Через поля связи словарные статьи объединяются в цепные списки, каждый из которых также представлен как отдельный объект словарной статьей, создаваемой по слову VOCABULARY . Исполнение слова, обозначающего такой список, делает его текущим значением переменной CONTEXT , определяющей список, в котором начинается поиск каждого вводимого форт-слова.
Если слово отсутствует в этом списке, то следующим просматривается список, в который добавляются создаваемые...
Метод алгоритмизации
Электронные вычислительные машины — это высокопроизводительные средства обработки информации, предназначенные для решения большого круга самых разнообразных задач. Однако ЭВМ — это всего лишь автомат (хотя и достаточно интеллектуальный), который быстро и точно выполняет предписания, составленные человеком. Разработка таких предписаний, т. е. заведомое проектирование всего хода решения задач,— неотъемлемая часть деятельности, связанной с использованием вычислительных машин.
В самом деле, даже при использовании такого вычислительного...
Алгоритмы и их свойства
Понятие алгоритма относится к числу фундаментальных математических понятий и является объектом исследования специального раздела математики — теории алгоритмов. Вместе с тем для ознакомления с методами алгоритмизации в связи с составлением программ для вычислительных машин нет необходимости обращаться к строгому определению этого понятия.
Что же такое алгоритм С уверенностью можно сказать, что, не употребляя самого слова алгоритм, многие интуитивно пользуются этим понятием и правильно представляют его смысл.
В зависимости от характера...
ЦИКЛ-ДО
Этот вариант базовой структуры ЦИКЛ называют ЦИКЛ-ДО. Тот или иной вариант структуры ЦИКЛ используется при составлении алгоритмов в зависимости от особенностей конкретной задачи. Расстановка значений истинности да и нет в изображении структур циклов, вообще говоря, может быть произвольной. Однако способ их расстановки, принятый на рисунке, не случаен, а является выражением определенного стандарта, объясняющего в том числе и сами названия структур (ЦИКЛ-ПОКА и ЦИКЛ -ДО). В первом случае тело цикла исполняется, ПОКА — условие Р истинно;...
Структурная алгоритмическая нотация
Построчная алгоритмическая нотация вместе со всеми ее изобразительными возможностями, рассмотренными выше, бесспорно обладает целым рядом методических достоинств с точки зрения обучения начальным представлениям и навыкам алгоритмизации, поскольку в явной форме раскрывает анатомию описываемых алгоритмов и показывает динамизм алгоритмических структур во всей их полноте. Тем не менее построчная алгоритмическая нотация, наиболее ярким выразителем которой является широко распространенный алгоритмический язык Бейсик, не отражает...
Ключевое слово
Установка точки осуществляется оператором
PSET (X, Y)
Здесь PSET (pont — точка, set — ставить) — ключевое слово, X, Y — произвольные арифметические выражения. Результатом выполнения оператора является установка точки, координатами которой являются целые части значений X и Y соответственно (т. е. NT (X) и NT (Y)). Пользуясь оператором PSET, можно получать точечные изображения фигур. Так, например, программа по аналогии с программой примера 4.6, использующей оператор PLOT, строит точечную окружность радиуса 50 с центром в точке (120, 90). Оператор GOTO в строке 50 зацикливает...
НОД
Тело описанной выше процедуры НОД заключено в специальные скобки НАЧ (начало) и КОН (конец). В теле процедуры обязательно присутствие оператора, выполняющего присваивание результата (или результатов, если их несколько) их носителям, объявленным в заголовке. В данном случае таким оператором является оператор присваивания N:=X. В частном случае процедура может и не иметь параметров.
Вызов процедуры осуществляется с помощью команды, которая составляется из имени процедуры, за которым в круглых скобках указываются фактические параметры, например:
На...
Рекомендуемая литература
1. Основы информатики и вычислительной техники: Проб. учеб. пособие для средних учебных заведений. Ч. , /Под ред. А. Н. Ершова, В. М. Монахова.— М, 1985, 1986.
2. Изучение основ информатики и вычислительной техники: Метод, пособие для учителей и преподавателей сред. учеб. заведений. Ч. , /Под ред. А. Н. Ершова, В. М. Монахова.— М., 1985, 1986.
3. Антипов И. Н. Программирование.— М., 1976.
4. Абрамов С. А. Элементы программирования.— М., 1982.
5. Белый Ю. А. Считающая электроника.— М., 1983.
6. Блох А. Ш., Павловский А. И., Пенкрат Я. В. Микрокалькулятор в школе.— Минск, 1986.
7. Брудно...
Рекурсия
Очень элегантным и универсальным методом, заслуживающим рассмотрения в отдельном подразделе, является рекурсия. Рекурсия была разработана специалистами по фундаментальной математике как средство для определения функций и в дальнейшем применялась в математической логике. Поскольку эти науки тесно связаны с теоретическими основами вычислительной техники, рекурсия является важным для нас понятием. -С этой точки зрения важность рекурсии заключается в том, что она позволяет описывать алгоритмы в элегантной и сжатой форме. Рекурсивные...
Реализация компилятора
На практике он возникает в тех случаях, когда при помощи рекурсии можно четко описать алгоритм, но основным недостатком является неэффективность такого описания с точки зрения выполнения алгоритма на ЭВМ. Можно возразить, что это скорее относится к способу реализации компилятора, а не к свойствам самого метода, однако справедливость этого возражения не заставит программу работать быстрее Эффективность рекурсии относительно времени и памяти рассматривается в разд. 3.3. Что касается разработки алгоритмов, то, если рекурсивный алгоритм...
