Forth
http://www.fforum.winglion.ru/

о природе слов и словарей
http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2784
Страница 4 из 5

Автор:  вопрос [ Ср дек 14, 2011 14:02 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

mOleg писал(а):
может все таки стОит поискать аналогии?

Я же сказал - некоторая аналогия есть и в некоторыз случаях она полезна, но также есть множество случаев, когда (не аналогия, а даже попытка оттождествления) вредна

Автор:  mOleg [ Ср дек 14, 2011 14:16 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

chess писал(а):
Файлы не могут содержать только каталоги с файлами.

Зря вы так. Организация может быть любой.
Вообще, вас не должно волновать как хранятся файлы, чем являются каталоги.
В конце концов каталоги могут быть объектами со своими методами работы с файлами, а файлы могут храниться в разных концах света и при этом находиться в одном каталоге.
Важнее, для чего нужна ФС. А она нам нужна для того, чтобы хранить данные, более-менее удобно ими пользоваться. Те же задачи решаются с помощью словно-словарной структуры в форте.

gudleifr писал(а):
Это не операции с самим файлом. Это операции с каталогом, содержащим файл.

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

gudleifr писал(а):
Нет, операция только одна. Остальные производятся либо не со словом, а с его адресом (т.е. со словарем), либо обозначают исполнение извращенным способом.

угу, а операция открытия и закрытия файла производится с его идентификатором.
кстати, та "одна операция" так же производится с адресом слова.

Автор:  mOleg [ Ср дек 14, 2011 14:23 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

вопрос писал(а):
Я же сказал - некоторая аналогия есть и в некоторыз случаях она полезна, но также есть множество случаев, когда (не аналогия, а даже попытка оттождествления) вредна

вот тут надо приводить как раз доводы разряда: "когда она вредна".
Вобщем, приведите примеры.

Автор:  вопрос [ Ср дек 14, 2011 14:41 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

А пример уже и приведен
нужно только вчитаться

Автор:  mOleg [ Ср дек 14, 2011 14:47 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

вопрос писал(а):
А пример уже и приведен

повторите пожалуйста

Автор:  chess [ Ср дек 14, 2011 15:09 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

mOleg писал(а):
Зря вы так. Организация может быть любой.
Вообще, вас не должно волновать как хранятся файлы, чем являются каталоги.
В конце концов каталоги могут быть объектами со своими методами работы с файлами, а файлы могут храниться в разных концах света и при этом находиться в одном каталоге.
Важнее, для чего нужна ФС. А она нам нужна для того, чтобы хранить данные, более-менее удобно ими пользоваться. Те же задачи решаются с помощью словно-словарной структуры в форте.

Все идет от назначения. Файловая система часть ОС. Основные функции форт-системы создание ПО. Основные функции ОС
не совпадают с основными функциями форт-системы. Отсюда и трудности интегрирования вобщем-то. Другое дело форт-ОС. Там можно совместить оптимально. Но трудоемкость этого дела велика. Проще воспринимать файлы как одну из данностей ОС.

Автор:  gudleifr [ Ср дек 14, 2011 16:42 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

mOleg писал(а):
с файлом всего две нужных операции есть: чтение и запись, все остальное к каталогам.
Нет, еще открытие, закрытие и управление.
mOleg писал(а):
т.е. и удаление, и перемещение [операции с каталогами]
Да. Само содержание файлов не изменяется. Поэтому для защищенного удаления файла с диска дополнительно вызывается операция записи (забивание файла мусором).
mOleg писал(а):
и слияние\разбиение\шифрование [операции с каталогами]
Нет, это составные операции с файлом (последовательность, в основном, операций чтения/записи).
mOleg писал(а):
угу, а операция открытия и закрытия файла производится с его идентификатором.
Нет, файл при этом должен присутствовать (будет создан).
mOleg писал(а):
кстати, та "одна операция" [исполнение] так же производится с адресом слова.
Нет, и из-за этого мы путались со словарно-парсерными методами. Выполнить слово, имея лишь его адрес невозможно. Нужно иметь доступ к памяти по этому адресу.
Конечно, как-то мы слово создаем (и/или модифицируем), но, по сравнению с файлами, эти операции не составляют основного функционала слова. Смысл файлов в организации обмена/хранения информации, слова - в его действии.

Автор:  mOleg [ Ср дек 14, 2011 18:34 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

gudleifr писал(а):
Нет, еще открытие, закрытие и управление.

открытие и закрытие не обязательны, точнее не так, открытие вообще операция лишняя, а вот процесс закрытия (освобождения ссылок и блокировок) желателен.
Что понимается под управление? Если всякие SetFilePointer, то мимо, без них можно обходиться.

gudleifr писал(а):
Нет, файл при этом должен присутствовать (будет создан).

Не всегда: при закрытии файл должен существовать, при открытии не обязательно.

Автор:  вопрос [ Ср дек 14, 2011 20:44 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

mOleg писал(а):
вопрос писал(а):
А пример уже и приведен

повторите пожалуйста

Цитата:
Различия - да вот, пожалуйста: пусть есть некие научные данные, записанные в файл.
Их можно обработать множеством различных способов - что - этому файлу следует сопоставить множество слов?
Нам может быть неизвестен способ обработки данных - мы их пересылаем кому-то далеко (на другой континент), кто может быть знает способ: что мы пересылаем - слово или файл? Мы пересылаем совокупность данных, но не ключ к их обработке. С другой стороны, если для нас пересылка и есть обработка - можно и так ведь смотреть, то что получает пользователь по ту сторону - файл или слово? Ему ведь пересылать ничего не нужно и "пересылка" никак с обработкой не связана.

Автор:  gudleifr [ Ср дек 14, 2011 21:01 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

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

P.S. Я бы предложил с этих позиций ставить в соответствие словам сепульки. А исполнению слов - процесс сепуления. Словарь тогда, очевидно представляется сепулятором, а ядро Forth - сепулярием. По-моему, большинство наших споров чисто терминологические, так зачем мы пытаемся покуситься на редкое терминологически ясное компьютерное понятие - "файл"?

P.P.S. Вот функции команды управления для старой доброй DOS:
Код:
Subfunction  Name                               version       
-----------  ---------------------------------  -------       
00H            Get Device Information                  2.0
01H            Set Device Information                  2.0     
02H            Receive Control Data from              2.0
                 Character Device Driver                           
03H            Send Control Data to Character       2.0
                 Device Driver                                     
04H            Receive Control Data from Block       2.0           
                 Device Driver                                     
05H            Send Control Data to Block              2.0           
                 Device Driver                                     
06H            Check Input Status                        2.0           
07H            Check Output Status                      2.0           
08H            Check If Block Device Is                  3.0           
                 Removable                                         
09H            Check If Block Device Is Remote       3.1           
0AH            Check If Handle Is Remote               3.1           
0BH            Change Sharing Retry Count             3.1           
0CH            Generic I/O Control for Character                 
                 Devices                                           
                 CL = 45H: Set Iteration Count           3.2           
                 CL = 4AH: Select Code Page             3.3           
                 CL = 4CH: Start Code Page               3.3           
                 Preparation                             
                 CL = 4DH: End Code Page                 3.3           
                 Preparation                             
                 CL = 5FH: Set Display Information      4.0           
                 CL = 65H: Get Iteration Count           3.2           
                 CL = 6AH: Query Selected Code Page 3.3           
                 CL = 6BH: Query Prepare List             3.3           
                 CL = 7FH: Get Display Information       4.0           
0DH            Generic I/O Control for Block Devices             
                 CL = 40H: Set Device Parameters        3.2           
                 CL = 41H: Write Track                       3.2           
                 CL = 42H: Format and Verify Track       3.2           
                 CL = 47H: Set Access Flag                  4.0           
                 CL = 60H: Get Device Parameters         3.2           
                 CL = 61H: Read Track                         3.2           
                 CL = 62H: Verify Track                        3.2           
                 CL = 67H: Get Access Flag                  4.0           
0EH            Get Logical Drive Map                         3.2           
0FH            Set Logical Drive Map                         3.2

Автор:  mOleg [ Чт дек 15, 2011 16:40 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

вопрос писал(а):
Различия - да вот, пожалуйста: пусть есть некие научные данные, записанные в файл.Их можно обработать множеством различных способов - что - этому файлу следует сопоставить множество слов?

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

Автор:  gudleifr [ Чт дек 15, 2011 16:52 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

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

Автор:  mOleg [ Чт дек 15, 2011 17:14 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

gudleifr писал(а):
mOleg писал(а):открытие вообще операция лишняя

Нет, особенно для файлов, существующих только динамически. Да и для прочих файлов открытый и закрытый файлы это совсем не одно и то же. Тут не только блокировки. Тут создание больших "файловых манипуляторов" - важных ресурсов операционной системы.

Ну, что значит, "существуют динамически"?
Какая нам разница, закрыт файл или открыт?
А вот работа с большими файлами, таки да, являет собой некую проблему.

gudleifr писал(а):
mOleg писал(а):Что понимается под управление?Все, что не помещается в четыре предыдущих операции - от перемотки ленты до установления скорости передачи и проверок битов четности. В общем, настройка драйвера устройства - держателя файла.

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

gudleifr писал(а):
mOleg писал(а):при закрытии файл должен существовать, при открытии не обязательно.
Наоборот, закрытие несуществующего файла никому повредить не может,

не согласен. Нельзя производить действия над несуществующим. Как минимум - это бессмысленно. А в реальности - скорее всего ошибка освобождения ресурса, которая может приводить к потере данных (вполне себе неприятных).

gudleifr писал(а):
Дело в том, что невозможно создать "просто файл". Тип файла полностью определяется программой которая его пишет. Поэтому они не только создают файл, но и устанавливают его атрибуты - как доступа, так и защиты.

опять все в куче получается 8(
Создание файла - это один процесс, открытие другой.
В момент открытия файл уже создан со всеми атрибутами.
Кстати, файловая система не должна знать ничего о содержимом файла - не царское это дело.

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

Судя по всему не ясное оно.

gudleifr писал(а):
P.P.S. Вот функции команды управления для старой доброй DOS:

к чему оно?

Автор:  gudleifr [ Чт дек 15, 2011 17:28 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

mOleg писал(а):
Ну, что значит, "существуют динамически"?
Сокеты, каналы, трубы... Это все файлы.
mOleg писал(а):
Какая нам разница, закрыт файл или открыт?
Я уже писал выше.
mOleg писал(а):
Давайте не будем сваливать в кучу все, что навесили на файловые системы нынче.
Пардон, это все "висело" на файлах изначально. Это только в DOS начали различать: дисковые файлы, диски, устройства, каналы...
mOleg писал(а):
Нельзя производить действия над несуществующим.
В случае файлового манипулятора это даже не вызовет ошибку при исполнении программы, а оставленный открытым файл штатно закрывается при завершении процесса.
mOleg писал(а):
Создание файла - это один процесс, открытие другой.
Не в реальной жизни. Операцию создания добавили только для общности, она избыточна.
mOleg писал(а):
Кстати, файловая система не должна знать ничего о содержимом файла - не царское это дело.
И поэтому система не создает файлы (она только регистрирует факт создания) - этим занимаются процессы.
mOleg писал(а):
к чему оно [функции команды управления]?
Просили пояснить, что такое команды управления. Ведь, все эти drivers и devices - это файлы.

Автор:  mOleg [ Чт дек 15, 2011 17:34 ]
Заголовок сообщения:  Re: НА ЧТО СПОСОБЕН И НА ЧТО ДОЛЖЕН БЫТЬ СПОСОБЕН FORTH?

gudleifr писал(а):
Я уже писал выше.

я тоже писал выше 8)
а вообще, пора завязывать, тема ушла "в сторону", смысла нет: каждая сторона остается при своем мнении.

Страница 4 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/