Forth http://www.fforum.winglion.ru/ |
|
о природе слов и словарей http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2784 |
Страница 3 из 5 |
Автор: | mOleg [ Вт дек 13, 2011 20:16 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
вопрос писал(а): Различия - да вот, пожалуйста: пусть есть некие научные данные, записанные в файл.Их можно обработать множеством различных способов - что - этому файлу следует сопоставить множество слов? есть такое слово CREATE в форте (не говоря уже о DOES> ) в простейшем случае используется следующим образом: CREATE имя 12345 ALLOT в результате использования данной последовательности слов будет создано определение, возвращающее при исполнении адрес (последнее не обязательно вобщем-то, может быть fid к примеру) начала пространства данных, размером в 12345 единиц адресуемого пространства. Поле кода, созданное CREATE может быть заменено таким образом, что при вызове слова будет выполняться нужный (произвольный код). К пример, мы можем в пространство данных положить картинку, а в поле кода поместить отрисовщик этой картинки, в результате вызова слова будет отрисована картинка. Не стоит забывать о возможности создания несколких полей кода у одного слова, а так же возможности доступа к данным с помощью дополнительных средств. вопрос писал(а): Нам может быть неизвестен способ обработки данных - мы их пересылаем кому-то далеко (на другой континент), кто может быть знает способ: что мы пересылаем - слово или файл? с файлом та же беда - если вы не знаете, что за файл, вы ничего с ним сделать не сможете. вопрос писал(а): С другой стороны, если для нас пересылка и есть обработка - можно и так ведь смотреть, то что получает пользователь по ту сторону - файл или слово? Ему ведь пересылать ничего не нужно и "пересылка" никак с обработкой не связана. да какая ему разница? Он даже задумываться не будет, к примеру, если будет слово: read_me.txt , он попытается открыть его в редакторе. Вы задаете(сь) совсем не те(ми) вопросы(ами). Сначала скажите, что же такое файловая система, что есть в ней главное, что такое файл. |
Автор: | вопрос [ Вт дек 13, 2011 20:25 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
mOleg писал(а): Вы задаете(сь) совсем не те(ми) вопросы(ами).Сначала скажите, что же такое файловая система, что есть в ней главное, что такое файл. как-раз теми, но ещё раз спрашиваю - нужно ли файл - произвольная совокупность данных с именем в то время как слово не может содержать произвольную совокупность, на все совокупности слов не напасёшься |
Автор: | mOleg [ Вт дек 13, 2011 20:29 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
вопрос писал(а): в то время как слово не может содержать произвольную совокупность, на все совокупности слов не напасёшься с чего взято утверждение? вот я не знаю, по крайней мере на своем компьютере, ни одного файла без имени. кстати, безымянных слов в словаре форка хватает |
Автор: | gudleifr [ Вт дек 13, 2011 21:19 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
mOleg писал(а): Сначала скажите, что же такое файловая система, что есть в ней главное, что такое файл. Если вернуться к истокам , то файл - минимальная единица информации в операционной системе, имеющая имя. Файлы бывают символьные (читаемые последовательно, символ за символом) и блоковые (к ним относились только диски, разбитые на сектора, похоже на память блоков Forth). На статический или динамический характер файлов никаких ограничений никогда не накладывалось - тут и файлы на диске, и сокеты, и каналы, и потоки, и трубы, и драйвера... Т.е. одна программа может слать символы напрямую другой программе, и на все время этого процесса будет считаться существующим некий файл, открытый одной программой для чтения, а другой - для записи. Директории, аналоги словарей для файлов, тоже считаются символьными файлами.
|
Автор: | вопрос [ Вт дек 13, 2011 21:30 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
mOleg писал(а): вопрос писал(а): в то время как слово не может содержать произвольную совокупность, на все совокупности слов не напасёшься с чего взято утверждение? вот я не знаю, по крайней мере на своем компьютере, ни одного файла без имени. кстати, безымянных слов в словаре форка хватает Внимательнее - слов не напасёшься, а не имён, т.е. приделать код или "ключ обработки" к каждому файлу не получится, именно поэтому файл - именованная совокупность данных, а не слово имён как-раз напасёшься - каждая уникальная совокупность данных получает уникальное имя |
Автор: | Гость [ Вт дек 13, 2011 22:09 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
вопрос писал(а): Внимательнее - слов не напасёшься, а не имён, А если использовать GUID - глобальные уникальные идентификаторы? ;) В этом сложность? |
Автор: | gudleifr [ Вт дек 13, 2011 23:18 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
В чем разница между файлом и словом? Для любого файла определены пять операций: открытие, закрытие, чтение, запись, управление (перемотка ленты, переустановка курсора и т.д.). А для слова только одна - исполнение. |
Автор: | Гость [ Ср дек 14, 2011 09:48 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
gudleifr писал(а): А для слова только одна - исполнение. Если создавать интерфейс с неизвестным словом динамически во время выполнения программы, как в распределённой системе (например COM, CORBA) то действий может быть гораздо больше. P.S. Но стоит ли так перегружать понятие слова в языке Форт? и почему модель Олега работы с файлом плоха - это же Форт. А человек свободно оперирует с средой вводимых и используемых абстракций. У файла кроме имени ещё есть и расширение, а вариантов использования данных может быть много. |
Автор: | chess [ Ср дек 14, 2011 10:57 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
gudleifr писал(а): В чем разница между файлом и словом? Для любого файла определены пять операций: открытие, закрытие, чтение, запись, управление (перемотка ленты, переустановка курсора и т.д.). А для слова только одна - исполнение. Причем эти операции делаются по разному взависимости от типа файла. Например файлы типа dll, ехе читаются не так как текстовые файлы. Кроме того в файлах может быть избыточная служебная информация для контроля ошибок содержимого или их исправления, которая обрабатывается средствами ОС в закрытом режиме, а сами эти средства будут различными взависимости от типа файловой системы. Файлы не могут содержать каталоги или ссылки на них, а слово может содержать ссылки на слова и тп. Вобщем различий может больше чем сходства. Некоторые виды файлов, как те же dll, имеют сходства больше. Ну их можно подогнать под формат слов расширив немного понятие слова. Но в целом сближать понятие слова и файла не стоит из-за больших накладных расходов при малой отдаче от этого. Вот у меня при создании каждого слова создается локальный словарь. После окончания создания этого слова этот словарь удаляется в части локальных имен слов и структур данных, а код этих слов и структуры данных остаются в составе создаваемых слов в основном словаре. В файлах этого нет. То есть концепции слов и файлов могут развиваться независимо и отвязанно друг от друга. |
Автор: | mOleg [ Ср дек 14, 2011 11:26 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
gudleifr писал(а): Если вернуться к истокам , то файл - минимальная единица информации в операционной системе, имеющая имя. т.е. можно трактовать так: все меньшие единицы имени не имеют? gudleifr писал(а): Файлы бывают символьные (читаемые последовательно, символ за символом) и блоковые (к ним относились только диски, разбитые на сектора, похоже на память блоков Forth). и с произвольным доступом тоже могут быть. gudleifr писал(а): На статический или динамический характер файлов никаких ограничений никогда не накладывалось - тут и файлы на диске, и сокеты, и каналы, и потоки, и трубы, и драйвера... добавлю, что есть особености в удалении файлов (особенно в многопользовательских системах), переименовании, переносе из каталога в каталог. вопрос писал(а): Внимательнее - слов не напасёшься, а не имён, т.е. приделать код или "ключ обработки" к каждому файлу не получится, : колер CREATE , DOES> @ ; 0 колер черный 1 колер синий 2 колер красный ... может все таки стОит поискать аналогии? К примеру, чем вам не нравятся массивы, созданные с помощью CREATE ? Гость писал(а): А если использовать GUID - глобальные уникальные идентификаторы? В этом сложность? тут что-то другое gudleifr писал(а): Для любого файла определены пять операций: открытие, закрытие, чтение, запись, управление (перемотка ленты, переустановка курсора и т.д.). А для слова только одна - исполнение. не все верно. для слова операций много: и исполнение может быть не одно, и есть операция ' , возможны операции перемещения, сокрытия - по большому счету со словами можно делать все то же, что и с файлами. Вот только операции закрытия и открытия вызывают вопросы, в первую очередь, нужны ли они вообще. Гость писал(а): P.S. Но стоит ли так перегружать понятие слова вязыке Форт? а никто не предлагает перегружать, предложение лишь использовать потенциал полностью, и не вводить инородные понятия, которые криво ложатся на форт. Гость писал(а): У файла кроме имени ещё есть и расширение далеко не во всех файловых системах оно возможно, те же nix-ы о расширениях не знают. |
Автор: | mOleg [ Ср дек 14, 2011 11:35 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
chess писал(а): Файлы не могут содержать каталоги или ссылки на них вы хорошо подумали? у меня под рукой есть *.bat файл: Код: @echo off rem 29-01-2007 ~mOleg rem Copyright [C] 2007 mOleg mOlegg@ya.ru rem собрать новую версию ядра. rem удаляем старые файлы отчетов call .\clear.bat rem компилируем первый раз .\target\util\spf.exe .\kernel\make.f IF EXIST .\test.log del .\test.log rem ищем последнее собранное ядро. FOR %%f IN ( 4*.exe ) DO set spf=%%f IF NOT EXIST "%spf%" ( echo ошибка при сохранении ядра! EXIT ) copy %spf% fork.exe >nul rem сразу тестируем результат call .\test.bat @echo off SET spf=rem я уже не говорю о файлах с исходными текстами программ, или файлах настройки \конфигурации, где пути часто явно прописываются. |
Автор: | chess [ Ср дек 14, 2011 12:20 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
mOleg писал(а): вы хорошо подумали? Нехорошо. Файлы не могут содержать только каталоги с файлами. Ссылки могут. Сжатые файлы не в счет. Там не каталоги с файлами, а сжатая информация. |
Автор: | gudleifr [ Ср дек 14, 2011 12:51 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
chess писал(а): Файлы не могут содержать каталоги или ссылки на них. Каталог - это обычный символьный файл. Диск - это блоковый файл, содержащий другие файлы.mOleg писал(а): т.е. можно трактовать так: все меньшие [меньшие] единицы имени не имеют? В рамках операционной/файловой системы - да.mOleg писал(а): и с произвольным доступом тоже могут быть. Это подвид символьных. Родился из файлов, разбитых на записи фиксированной длины. mOleg писал(а): добавлю, что есть особености в удалении файлов (особенно в многопользовательских системах), переименовании, переносе из каталога в каталог. Это не операции с самим файлом. Это операции с каталогом, содержащим файл.mOleg писал(а): для слова операций много: и исполнение может быть не одно, и есть операция ' , возможны операции перемещения, сокрытия Нет, операция только одна. Остальные производятся либо не со словом, а с его адресом (т.е. со словарем), либо обозначают исполнение извращенным способом. Мы же не считаем, что оператор-switch имеет больше одной операции исполнения.mOleg писал(а): Гость писал(а): У файла кроме имени ещё есть и расширение далеко не во всех файловых системах оно возможно, те же nix-ы о расширениях не знают. |
Автор: | chess [ Ср дек 14, 2011 13:48 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
gudleifr писал(а): Каталог - это обычный символьный файл. Диск - это блоковый файл, содержащий другие файлы. Диск это я так понимаю файл, но одновременно не устройство. Пример такого блокового файла можете привести? Для ликбеза. |
Автор: | gudleifr [ Ср дек 14, 2011 13:59 ] |
Заголовок сообщения: | Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH? |
chess писал(а): Пример такого блокового файла можете привести? Устройство, не устройство, это к делу не относится. До появления резидентных программ, работающих по прерыванию, все драйвера устройств считались файлами. Блоковым считался файл, который в принципе нельзя было читать/писать посимвольно, поэтому информация на нем дополнительно упаковывалась в каталоги. Других, кроме дисков (и прочих магнитных барабанов), блоковых файлов не припомню, но память блоков Forth достаточно близка к ним по духу.P.S. Когда мы ищем аналоги Forth-слов в других компьютерных областях, то мы принижаем Forth, стараясь свести к обычным компьютерным технологиям. Поэтому я и предлагаю в своей статье искать аналогии в биологии и психологии. |
Страница 3 из 5 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |