Язык программирования Форт


Глава 12. Редакторы Форта - часть 2


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

Основы редактирования для Форта

Как было показано в гл.10, ввод-вывод для диска осуществляется через резервные зоны памяти, называемые блочными буферами. Как вы знаете, ключевым словом для ввода с диска служит BLOCK, которое загружает содержимое блока с диска в свободный блочный буфер и заносит в стек адрес первого байта этого буфера. Напомним также, что ключевыми словами для спасения блоков информации на диске являются UPDATE, которое помечает буфер блока, чтобы он был спасен, и FLUSH (или SAVE-BUFFERS), которое записывает на диск содержимое буферов, помеченных UPDATE.

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

Строчное редактирование

Строчный редактор Форта состоит из набора слов, которые используются для изменения содержимого блоков Форта строчка за строчкой.


- Начало -  - Назад -  - Вперед -