KRIEGSSPIELE!

GUDLEIFR СОЛДАТИКИ FORTH gudleifr.h1.ru
 
ФорумФорум  КалендарьКалендарь  ЧаВоЧаВо  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ВходВход  

Поделиться | 
 

 Блоковая память

Перейти вниз 
АвторСообщение
Gudleifr
Admin
avatar

Сообщения : 707
Дата регистрации : 2017-03-29

СообщениеТема: Блоковая память   Вт Окт 03, 2017 4:45 pm

Концепция блоков - один из тех механизмов FORTH, которые а) реализованы по принципу наибольшей простоты реализации в любой вычислительной системе; б) полностью заключают в себе какую-то полезную компьютерную абстракцию. Абстракцией в данном случае является понятие "дисковой памяти". В смысле, НЕ-оперативной памяти, большой и медленной, а совсем не диска, файла или чего-то еще.

СЛОВАРЬ БЛОКОВ ПО МУРУ
Изначально Мур предложил организовывать блоковую память, как расширение словаря. Если лексему не удавалось распознать, ни как имя словарной статьи, ни как литерал, оно считалось именем числовой константы, определенной в дисковой памяти. Его следовало искать в в индексных таблицах диска. Результат успешного поиска давал число: маленькое или большое.
Большое число интерпретировалось как номер блока дисковой памяти, подлежащего немедленной интерпретации (т.е. блоки должны быть написаны на FORTH-языке). Маленькое число определяло значение переменной "контекста" - смещение применяемое для "уточнения" последующих больших чисел. Т.е. к значению прочитанного большого числа прибавлялось последнее из прочитанных маленьких, умноженное на некий масштабный множитель (размер страницы, сегмента).
Это давало возможность установки "контекста" блоковых слов. Например, можно обеспечить использование разных блоков с одинаковыми "именами" для разных пользователей.
***

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

В отличие от более поздних концепций блоков, такой подход наводит на мысль о блоках, как о средстве реализации отложенных вычислений. Или об отличном от более поздних (общепринятых) способе организации процессов, контекстов, замыканий - при помощи "стека блоков".
Вернуться к началу Перейти вниз
Посмотреть профиль Online
Gudleifr
Admin
avatar

Сообщения : 707
Дата регистрации : 2017-03-29

СообщениеТема: Re: Блоковая память   Вт Окт 03, 2017 4:47 pm

НУМЕРОВАННЫЕ БЛОКИ

Недостатком предложенный выше схемы было то, что единственной операцией было "чтение-загрузка". При необходимости производить с блоками более чем одну операцию (не только читать, но и редактировать, копировать и т.д.) требуется более универсальный синтаксис:

номер-блока операция

Для этого не нужно никакого отдельного поиска (индексные таблицы, если надо, пользователь может создать и в своем словаре). Т.к. для того, чтобы считать блок, нужно, что бы его кто-то записал, т.е. одной операцией никак не обойдешься, то идея Мура становится только забавным экспериментом, не получившим развития.
Идея же же нумерованных блоков прожила достаточно долго: пока более простым не стало гарантируемое всеми операционными системами переключение потоков ввода-вывода на файл.
Последней уступкой минимализму FORTH по Муру, долго оставалось автоматическое переключение текущего словаря на словарь редактора при выдаче блока на консоль.
Вернуться к началу Перейти вниз
Посмотреть профиль Online
Gudleifr
Admin
avatar

Сообщения : 707
Дата регистрации : 2017-03-29

СообщениеТема: Re: Блоковая память   Вт Окт 03, 2017 4:48 pm

БЛОКИ ПО БРОУДИ

Блоковая организация дисковой памяти позволяла реализовать множество трюков: от хранения Баз Данных до иерархического построения программ.

Броуди, например, выделял следующие программные "единицы":
- Блоки - минимальные кирпичики программы;
- Лексиконы - от одного до трех блоков. Слова, сгруппированные по назначению;
- Главы - наборы лексиконов, решающие определенную задачу;
- Блоки Загрузки - блоки, управляющие загрузкой нужных глав.

Появилось две стратегии связывания блоков в лексиконы: применением блоков загрузки - внешняя; и путем связующего слова --> ("считать следующий блок") - внутренняя.
Для комментирования появились специальные слова: "обратная-косая" - комментарий до конца строки; и "обратная-косая-S" - комментарий до конца блока. Первую строку блока стало принято отводить под краткий комментарий и указание версии. Появились теневые блоки комментариев - параллельно загружаемым блокам создавали такую же последовательность блоков целиком из комментариев, поясняющих определяемые в загружаемых блоках слова.
***

Как крайний случай появилась идея битовых (не текстовых) блоков для сохранения дампов части словаря.
Вернуться к началу Перейти вниз
Посмотреть профиль Online
Gudleifr
Admin
avatar

Сообщения : 707
Дата регистрации : 2017-03-29

СообщениеТема: Re: Блоковая память   Вт Окт 03, 2017 4:51 pm

ПОЧЕМУ БЛОКИ НЕ ФАЙЛЫ?

В основном потому, что само понятие файла гораздо шире, чем то, к какому мы привыкли в MS-DOS и, затем, в MS Windows. В ориентированных на процессы Операционных Системах файлы, это не "просто место на диске". Там файлы - каналы связи между процессами. Большинство из них существовало только в памяти компьютера. И, изначально, все они работали исключительно последовательно. Один процесс писал туда символ за символом, другой - читал оттуда также символ за символом, обеспечивая синхронизацию обмена. Файл на диске - только частный случай "замороженного до востребования" потока.
И только техническая потребность привела к появлению блоковых файлов - которые можно читать/писать не посимвольно, а некоторыми блоками из произвольного места файла. В первую очередь - дисков в целом и каталогов на дисках. Такое расширение понятия файла было достаточно условным.
***

"Большая медленная память" FORTH в такую концепцию "канала" никак не вписывается. Получается как и с вводом/выводом: принят механизм, который легко реализовать в любой Операционной Системе (например, выделив блоковый файл), но который не позволяет воспользоваться всеми благами, предоставляемыми Операционной Системой.
С другой стороны, просто "научить" FORTH пользоваться Операционной Системой недостаточно, блоки позволяют много еще чего...
Кстати, концепция MS Windows файлов, отображаемых целиком в память, гораздо ближе к идее блоковой памяти, ведь она также родилась из идеи "большой медленной памяти".
***

В целом же, получилось, что БЛОКИ стало реализовать труднее, чем работу с файлами, и большинство фортеров смирилось с тем, что от многих интересных возможностей пришлось отказаться.
Вернуться к началу Перейти вниз
Посмотреть профиль Online
Спонсируемый контент




СообщениеТема: Re: Блоковая память   

Вернуться к началу Перейти вниз
 
Блоковая память
Вернуться к началу 
Страница 1 из 1
 Похожие темы
-
» Афганская война: память, помощь и имидж ....
» ФОТО НА ПАМЯТЬ
» ПАМЯТЬ СМЕРТНАЯ
» Русы мы! Такова и наша генетическая память...
» Совсем плохая память у ребенка.

Права доступа к этому форуму:Вы не можете отвечать на сообщения
KRIEGSSPIELE! :: FORTH :: OK - организация ПОТОКА-
Перейти: