Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 17:57

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

Куда цеплять "драйвера"?
Создавать лексиконы наподобие Си-библиотек 44%  44%  [ 4 ]
Прятать внутрь интерпретатора 0%  0%  [ 0 ]
Усложнять интерпретатор 0%  0%  [ 0 ]
Использовать более одного интерпретатора 22%  22%  [ 2 ]
FORTH устроен совсем не так 33%  33%  [ 3 ]
Всего голосов : 9
Автор Сообщение
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Пт апр 25, 2014 21:21 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Тема построения ОС а основе Форта, это интересная тема. В своё время «штурмовал» эту вершину. Однако, во всех рассуждениях выше есть (на мой взгляд конечно) некоторые «заблуждения». В кавычках, поскольку я возможно и не прав, но считаю их таковыми только на основе личного многолетнего опыта. Вот мои мысли.

Заблуждение первое: Сложную (большую) систему можно построить из простых элементов и простых взаимосвязей.
Да, на первый взгляд это верно, но количество простых элементов для сложной системы и количество взаимосвязей между ними будет велико, ведь система то сложная! Сложность системы увеличивается экспоненциально с увеличением количества её элементов, даже простых. В результате классический самообман. Большая, сложная система будет состоять из сложных сущностей, хоть и построенных из простых элементов. Пример: космический корабль. Это сложная, большая система – состоящая из простых деталей. Но общее огромное количество простых деталей и ещё более огромное их взаимодействие делает систему сложной. На простой системе, типа бочки на горе взрывчатки в космос не полетишь. Это я к мысли, о том, что просто используя Форт и его простые и прозрачные механизмы напишем супер ОС.

Заблуждение второе: Уникальность Форта придаёт ему «волшебную» мощность.
Я не отрицаю «изюминки» в Форте, но такие механизмы есть не только в нём. Есть и другие языки программирования, с похожими «чудесами».
Пример на MUMPS: S A=3,B=”S A=4” X:A=3 B // Ответ, A равно 4. Звучит так, пусть A равно 3, а B строка. Выполни строку B как команду, если A=3. В результате строка будет выполнена как команда и A станет равна 4. К слову, данная система работает на шитом байт коде и очень даже быстра. Однако, даже такие чудеса не позволяют строить полноценную ОС, опять же из за отсутствия «сишной++ инкапсуляции» с одной стороны и трудности с привязкой к оборудованию с другой.

Заблуждение третье: C++ чистый отстой, ему ни когда не достичь вершин Форта.
Мощь C++ в том, что он с одной стороны работает на низком уровне (фактически ассемблер) , Форт тоже так может, с другой стороны имеет встроенные средства «сишной++ инкапсуляции», чего Форт не имеет. Если Форт «допилить» до уровня С++, то на выходе получится ещё более тяжелое и слабоуправляемое творение, чем классический С++. Пример: На С++ написать Форт просто, на Форте написать компилятор С++ сложно. Вывод, С++ лучше подходит для написания больших и сложных систем. Это кстати относится и к генератору и оптимизатору порождаемого кода. Сложность С++ обусловлена не его «кривизной и горбатостью», а сложностью стоящих перед ним проблем.

Заблуждение четвертое: ОС на Форте – это супер, ведь Форт и интерпретатор и компилятор одновременно!
Звучит красиво, но современная ОС набита интерпретаторами и компиляторами под завязку. ОС она состоит из модулей, а как себя ведет модуль, это его дело. Нужна скорость – значит чистая DLL, нужна интерпретация (Shell например) – получи её. Нет с этим проблем. Я к тому, что двоякость форта, не есть его плюс в построении ОС. Намного более острая проблема в ОС, с которой у Форта нет ни каких преимуществ, это разделение потоков и защита памяти.

Вывод. Рассуждать о написании ОС на Форте надо, этакая зарядка для ума. Писать ОС на Форте не надо, это лишняя трата времени.

Вот такие мои мысли, исключительно на основе своего личного опыта.



За это сообщение автора mgw поблагодарил: Hishnik
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Пт апр 25, 2014 22:55 
mgw писал(а):
Вот такие мои мысли, исключительно на основе своего личного опыта.
К сожалению, не имеющие никакого отношения к теме...

Цитата:
– Понимаешь, Колченог, мне не надо в Тростники. В Тростники мне не надо. Не надо мне в Тростники.
– Колченог внимательно слушал и кивал.
– А надо мне в Город,– продолжал Кандид.– Мы с тобой уже давно об этом говорим. Я тебе вчера говорил, что мне надо в Город. Позавчера говорил, что мне надо в Город. Неделю назад говорил, что мне надо в Город.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Сб апр 26, 2014 01:06 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mgw писал(а):
имеет встроенные средства «сишной++ инкапсуляции»
Какие? Интересуют подробности.
Скорее всего, в Форте есть лучший аналог. Или его можно добавить.
mgw писал(а):
Пример: На С++ написать Форт просто, на Форте написать компилятор С++ сложно. Вывод, С++ лучше подходит для написания больших и сложных систем.
Вывод неверный. Из примера всего лишь следует, что Форт проще, чем С++. А PL/1 сложнее. Значит, последний еще лучше? ;) Сложность языка и его область применения, в общем случае, не зависят друг от друга. Но для сложных применений должен быть некоторый минимум возможностей. Минимум готов обсуждать.
mgw писал(а):
Это кстати относится и к генератору и оптимизатору порождаемого кода. Сложность С++ обусловлена не его «кривизной и горбатостью», а сложностью стоящих перед ним проблем.
Опять неверно. Сложные задачи можно поставить и перед brainfuck(он Тьюринг-полный, значит, потенциально может решать любые задачи!). :) От этого его читаемость не улучшится и компилятор не усложнится.
Сложность языка не обязательна для решения сложных задач. DSL может быть очень простым, логичным и решать сложные задачи. Строка DSL может быть эквивалентна нескольким страницам C++ исходника!

При прочих равных более краткий расширяемый язык с большой выразительностью и понятностью лучше(я о Форте и его диалектах). А оптимизатор можно приделать к любому языку.

_________________
With best wishes, in4.



За это сообщение автора in4 поблагодарил: KPG
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Сб апр 26, 2014 01:15 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
– А надо мне в Город,– продолжал Кандид.–

В действительности надо было ему на Чертовы Скалы. Только он упорно применял термин "Город", исходя из своего опыта. А в Лесу этот опыт мало помогал.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Сб апр 26, 2014 02:54 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
mgw писал(а):
Вывод. Рассуждать о написании ОС на Форте надо, этакая зарядка для ума. Писать ОС на Форте не надо, это лишняя трата времени.
.

Писать массовую ОС, в любом случае, затратное мероприятие без привязки к потенциальным выгодам от этого.
Хотя пишут - ОС на ассемблере для X86 архитектуры (Kolibri) и получают гранды от google (участник GSOC 2014)

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


P.S. ОСь разрабатываемая на C++ (Haiku OC), несмотря на несколько лет участия в GSOC и финансовой поддержки, ещё не достигла уровня промышленного применения.

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

Одно из направлений Factor язык.
Java чистый отстой, ему ни когда не достичь вершин Factor. ("утрированно" мнение автора о языке Java т.к. он на нём плодотворно создавал программные продукты - JEdit) :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Сб апр 26, 2014 09:08 
Хищник писал(а):
Если искать аргументы за интерпретатор, то их, конечно, можно найти.
Вопрос не в аргументах "за интерпретатор", и даже не в аргументах "за проблемно-ориентированный язык", а "за центр тяжести разработки проблемно-ориентированного языка". Лежит он на отрезке "A-F" (инкапсулируется в реализации FORTH (2)), чисто "F" (выражается в разработке специального FORTH (3)) или только "F-P" (пишется на универсальном FORTH (1))?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Сб апр 26, 2014 10:19 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
gudleifr писал(а):
Вопрос не в аргументах

Давняшняя ссылка для gudltifer обсуждения Форт на Лор от 2006г(если не читал :)
P.S. т.к. всё же от меня "ускользает" смысл заявленной темы для обсуждения :shuffle;
Как писать/понимать произвольный программный код не прилагая к этому чрезмерных усилий?
Какое мнение gudleifer,например о таком предлагаемом решении программерских проблемм Source Code Analysis & Metrics Understand?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Сб апр 26, 2014 10:50 
KPG писал(а):
Как писать/понимать произвольный программный код не прилагая к этому чрезмерных усилий?
Ну, как бы, это всегда подразумевается... Но, это - философия, а, в данном случае, вопрос чисто технический: для тех кто писал свои FORTH-системы и получал удовольствие, наблюдая за их дальнейшей эволюцией...

KPG писал(а):
Какое мнение gudleifer,например о таком предлагаемом решении программерских проблемм Source Code Analysis & Metrics Understand?
Если ничего не путаю, то это не решение, и не программистских проблем. Задача ставится не лечебная, а патологоанатомическая. Причем, задача в общем случае, неразрешимая.
И, уж, всяко, это не имеет отношения к FORTH. Как нам исследовать соответствие программы нормам какого-то языка, если мы для каждой программы пишем новый язык?

P.S. Я бы даже сказал, что все FORTH-вопросы сугубо технические. Теорию в него можно вложить любую...


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 00:45 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Вопрос не в аргументах "за интерпретатор", и даже не в аргументах "за проблемно-ориентированный язык", а "за центр тяжести разработки проблемно-ориентированного языка". Лежит он на отрезке "A-F" (инкапсулируется в реализации FORTH (2)), чисто "F" (выражается в разработке специального FORTH (3)) или только "F-P" (пишется на универсальном FORTH (1))?

Мне представляется, что универсальный Forth должен быть настолько выразительным, чтобы реализовывать требуемые проблемно-ориентированные языки.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 01:29 
Хищник писал(а):
Мне представляется, что универсальный Forth должен быть настолько выразительным, чтобы реализовывать требуемые проблемно-ориентированные языки.
Да, я понял Вашу позицию - (1).
Однако, мне кажется, что граница сложности программ, которые можно написать таким способом ниже, чем при других способах.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 02:27 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Хищник писал(а):
Мне представляется, что универсальный Forth должен быть настолько выразительным, чтобы реализовывать требуемые проблемно-ориентированные языки.

А может сначала использовать существующие библиотеки на Форт?
Если мне понадобился XML парсер и gzip распаковщик, то об универсальности Форта как то не задумался, а взял существующие готовые библиотеки (например из ffl)
и с помощью них добавил нужный мне функционал.
Также поступил бы если мне потребовались регулярные выражения и др. инструменты и не только реализованные в рамках Форт.
При большом желании сделал бы нужные инструменты на имеющимся материале :shuffle;


P.S. Только не каждый пользователь Форта готов собирать Форт-пазл из существующих решений не говоря уже о программистах не знакомых с Форт.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 03:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
gudleifr писал(а):
Однако, мне кажется, что граница сложности программ, которые можно написать таким способом ниже, чем при других способах.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 03:13 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
А может сначала использовать существующие библиотеки на Форт?
Если мне понадобился XML парсер и gzip распаковщик, то об универсальности Форта как то не задумался, а взял существующие готовые библиотеки (например из ffl)
и с помощью них добавил нужный мне функционал.
Также поступил бы если мне потребовались регулярные выражения и др. инструменты и не только реализованные в рамках Форт.

Да, разумеется. Это п.1 в голосовании :) Использование Форта - это действительно не самоцель. Напротив, огульное переписывание на Форте всего подряд, невзирая на последствия и объективное ухудшение каких-то параметров, несет много вреда.

Например, явная отличительная особенность Форта - интерактивность. Чем больше ее нужно, тем приятнее Форт. Чем меньше - тем.... хммм... меньше проявляется именно эта приятность. Если теперь надо архивировать файл, и на входе параметр - имя архивируемого файла, то интерактивности в целом и нет. Форт, Си, ассемблер, Питон, Java - разница будет косметической, и выбор языка определится в основном тем, что еще мы получаем в нагрузку. Не вполне рационально будет устраивать сборную солянку из языков, если в одном лучше одно, а в другом, совсем на чуть-чуть - другое.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 10:24 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Проголосовал за последнее 8)

В плане устройства ОС из существующих систем наиболее идеологически и структурно близка Inferno.

А работать со словарями, похоже, почти никто из обсуждающих не умеет 8)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: От FORTH - к OS
СообщениеДобавлено: Вс апр 27, 2014 12:01 
Хищник писал(а):
Остается предположить, где проходит эта граница, и какие классы программ окажутся ниже. Вполне вероятно, что их будет более чем достаточно.

Сейчас, под старость, мне кажется, что эта граница в C-подобных языках - два уровня (по молодости, кажется, была выше)...
Т.е., допустим, я пишу программу строковой обработки и свободно использую string.h (все эти strcpy и strcmp). Я вполне свободно формулирую задачу в терминах этих операций, понимаю, что они делают и какие ловушки есть в их использовании...
Но, опять допустим, я наращиваю третий уровень. Использую написанную программу как библиотеку более высокого уровня. И тут, не знаю как у вас, а у меня уже возникают проблемы: я уже перестаю быть уверен, что набор из моих операций, использующих строковые операции, эффективно/правильно делает то, что мне надо. Может проще было прямо вызвать эти самые строковые операции?
Требуется какое-то явное средство доказательства того, что все, что мне нужно правильно "инкапсулировано" на всю глубину вложения. (См., например, Дейкстра "Заметки по структурному программированию").

С другой стороны, "разговорный" стиль FORTH-программирования позволяет естественно чуть ли не отвлеченные темы обсуждать. Плавно повышая уровень и перескакивая на лирические отступления...
Да, и метод "проблемно-ориентированного языка" дает возможность строго обосновать требования к "инкапсуляции".

Конечно я видел (не на C++, там обычно ООП-методы используются только в косметических целях, а, особенно, на Python) многоуровневые иерархии "инкапсуляций", но результат был кошмарен: тонны "фантиков", завернутых в другие "фантики". А "конфет" - как текста в глубинах формата docх.

Хищник писал(а):
Если теперь надо архивировать файл, и на входе параметр - имя архивируемого файла, то интерактивности в целом и нет.
Как бы, это только кажется.
Например, помню когда писал для себя последнюю gif-библиотеку, интерактивность потребовалась дважды:
1. Пока я, в очередной раз, вспоминал форматы и алгоритм сжатия, средство выдачи диагностик и статистик, а так же возможность подгонять параметры "на лету" были очень даже потребны.
2. Т.к. речь шла не просто о вытаскивании/засовывании рисунков, а для конкретных целей, то в процессе уточнения/пересмотра этих целей требовалось выдергивать (и запихивать) из GIF-ов разные фрагменты, засовывать их в разные хранилища, вести учет распакованных/запакованных/модифицированных и т.д.

Так что вариант "купил библиотеку и пользуюсь" устраивает только до тех пор, пака вам безразлично, что она делает.

Например, мое знакомство со "стандартными парсерами XML" очень быстро привело к тому, что я отказался и от "стандартных парсеров" и от XML... Себе дороже.

В общем, как писал Мур: конечно бывают полезные библиотеки, но подавляющее большинство нужного тебе "Сделай Сам!".

mOleg писал(а):
Проголосовал за последнее
Спасибо. Зная Вас, это было очевидно. Терминологические сложности.


Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 113 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB