Forth
http://fforum.winglion.ru/

OpenForth
http://fforum.winglion.ru/viewtopic.php?f=55&t=2815
Страница 1 из 8

Автор:  Hishnik [ Вс мар 04, 2012 23:20 ]
Заголовок сообщения:  OpenForth

OpenForth


Основатель движения за свободное ПО Ричард Столлман разъясняет свою позицию следующим образом: «Чтобы управлять программами, пользователям нужны четыре свободы. Для порядка я их пронумерую. Свобода номер ноль - это свобода запускать программу так, как вам этого хочется. Свобода номер один - это свобода изучать исходный код программы и изменять его так, чтобы программа работала в соответствии с вашими пожеланиями. Свобода номер два - это свобода помогать остальным, свобода распространять точные копии программы среди других пользователей. Свобода номер три - это свобода вносить вклад в сообщество. Это свобода распространять модифицированные копии программ, если вам этого хочется.»

Рассматривая свободу вносить вклад в сообщество, нельзя ограничиваться только свободой отправить в сеть результаты своего труда. Не менее важно иметь саму возможность внести весомый вклад в развитие программной технологии, добавляя к проекту то, что действительно представляет интерес и улучшает его характеристики. Для этого необходимо обладать глубоким пониманием основ разрабатываемой программы, уметь реализовывать основные алгоритмы и согласовывать их с общей структурой проекта.
Ситуация, сложившаяся с Фортом, достаточно показательна. При возможности получить доступ к исходным текстам многих форт-систем не все программисты все же имеют практическую свободу «вносить вклад в сообщество», поскольку исходные тексты не разъясняют методику создания и модификации программы, а также не формируют легко понимаемой структуры, которую программист мог бы изменить в требуемую ему сторону.
Проект OpenForth ставит целью развитие Форт-технологий путем распространения базовых алгоритмов и простых форт-систем, которые служили бы методологической основой для изучения Форта и могли бы стать отправной точкой для получения более эффективных реализаций. Программные решения проекта предполагается распространять по полностью свободной модели, включая возможность использования, добавления, изменения существующих продуктов, а также свободу безвозмездного использования в коммерческих системах любых частей или целых продуктов, в том числе без предоставления исходных текстов и без ссылки на OpenForth. Не предполагается создание коммерческих или некоммерческих групп, регистрации участников, или иных форм ограничения свободы принять участие в проекте или выйти из него.
В качестве практического решения предлагается шаблон Форт-машины, реализованный на языке C в виде заголовочного файла. Файл openforth.h содержит имена функций, реализующих слова Форт-машины. Такая машина может быть статически скомпилирована с проектом на базе С, выполняя строки Форта, передаваемые функции Evaluate. Работоспособность данной машины (с учетом заполненных шаблонов) была протестирована в проекте Quark Virtual Machine, собранном в QtCreator 2.4.1. В предоставляемом для OpenForth файле не специфицируется вид кода, способ реализации стеков, доступа к памяти, файлам, оборудованию и т.п. Предполагается, что самостоятельное заполнение структуры файла, приведенной в openforth.h, позволит, с одной стороны, реализовать различные подходы к компиляции, формированию структуры словарной статьи, организации стека и т.п., что снимает основную остроту противоречивых требований к этим характеристикам; с другой стороны, самостоятельная реализация простых функций способствует практическому освоению программирования Форт-машин.
Прикрепленный файл openforth.h может свободно использоваться (или не использоваться) в учебных, коммерческих или иных целях, со свободой предложить любую реализацию того или иного слова при любой степени завершенности системы.
Предлагается реализация ряда оболочек, демонстрирующих интеграцию Форт-машины в продукт верхнего уровня. Простейшим примером такой оболочки может быть оконное приложение, позволяющее отправить текстовую строку на исполнение в Форт-машину и показать ее состояние (стек, память, виртуальный текстовый или графический экран в различных сочетаниях).

Вложения:
openforth.zip [1.86 Кб]
Скачиваний: 1085

Автор:  gudleifr [ Пн мар 05, 2012 00:28 ]
Заголовок сообщения:  Re: OpenForth

Хищник писал(а):
...
Когда я был молодой и глупый (этак, с месяц назад), я тоже думал, что все беды фортеров - от большого ума и недостатков здорового формализма. Однако, немного потершись здесь, понял: можешь что-то сделать - сделай, а потом хвастайся в меру воспитания. А объяснить здесь что-то на пальцах невозможно, поскольку всем все пофигу, окромя своих задумок. Причем, 90% этих задумок - типа: "Не знаю, не проверял, не считал, не разбирался, но мне кажется, что это круто и раньше не было".

Автор:  Hishnik [ Пн мар 05, 2012 00:57 ]
Заголовок сообщения:  Re: OpenForth

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

Мое дело маленькое: есть возможность - делаю. Хотя бы один человек, продвинувшийся в понимании хоть чего-нибудь на один шаг - это уже хорошо.

Автор:  WingLion [ Пн мар 05, 2012 04:49 ]
Заголовок сообщения:  Re: OpenForth

gudleifr писал(а):
А объяснить здесь что-то на пальцах невозможно, поскольку всем все пофигу, окромя своих задумок.


Чтобы что-то делать на пальцах, надо эти пальцы иметь (нормальные и прямые).
И иметь хотя бы совесть, не выдавать за них костлявые костыли.
А так же не наглеть, и не совать их (эти костыли) во все чужие колеса.

п.с. И хватит говорить за всех!

Автор:  WingLion [ Пн мар 05, 2012 05:09 ]
Заголовок сообщения:  Re: OpenForth

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


Кстати, вот это есть очень большой минус для проекта.
Я, например, C/C++ просто не знаю. (Не он мне ни разу понадобился, и насильно не изучал.)

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

Автор:  Mihail [ Пн мар 05, 2012 11:25 ]
Заголовок сообщения:  Re: OpenForth

Хищник писал(а):
В качестве практического решения предлагается шаблон Форт-машины

Зачем нужен голый шаблон, когда существуют открытые релизы?

Автор:  gudleifr [ Пн мар 05, 2012 12:40 ]
Заголовок сообщения:  Re: OpenForth

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

P.S.
WingLion писал(а):
И хватит говорить...
Больше не буду-у!

Автор:  `Kopa [ Пн мар 05, 2012 15:52 ]
Заголовок сообщения:  Re: OpenForth

gudleifr писал(а):
Я не встречал здесь ни одного коллеги, который смог бы вот так сразу прицепить этот вагон к своему поезду;


О каком "вагоне" идёт речь? О возможности прицепить
заголовочный Cи (h) файл к Форт проекту?.
Вроде не сложно, только насколько это нужно и когда?

P.S. В чём техническая изюминка OpenForth от существующего
многообразия выбора проектов Форт?

Автор:  `Kopa [ Пн мар 05, 2012 16:03 ]
Заголовок сообщения:  Re: OpenForth

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


А совместимость реализованых слов как будет учитываться?
т.к. в прототипах даже не описаны типы формальных параметров
в описании слова, не говоря уже о семантике или ссылок, например на стандарты.

Автор:  `Kopa [ Пн мар 05, 2012 16:16 ]
Заголовок сообщения:  Re: OpenForth

gudleifr писал(а):
Как показало обсуждения Форт-словарика, идеи есть у всех, а понимание идей (даже своих) - крайне редкое явление.

@ "А судьи кто?"

Автор:  gudleifr [ Пн мар 05, 2012 16:27 ]
Заголовок сообщения:  Re: OpenForth

`Kopa писал(а):
@ "А судьи кто?"
Цитата:
Я же под "творческим новаторством" понимаю изобретения, несущие новизну всему обществу, изобретения, которые общество готово признать, принять, усвоить и использовать, как говорил Ч.С.Пирс, "in the long run", то есть такие изобретения, которые войдут в наше общее богатство, в общий доступ, явят собой нечто большее, нежели частное достояние придумавшего.
Дня этого в творчестве должен непременно присутствовать критический подход. Ничего творческого нет в идее, высказанной в ходе "мозгового штурма" (brainstorming), брошенной небрежно - была не была!- и с восторгом подхваченной остальными, за неимением лучшего. Чтобы сделаться творчеством, идее надлежит быть взвешенной, продуманной, а также воспроизводимой, по крайней мере - воспроизводимы должны быть все виды технического новаторства.
Умберто Эко. Пойдет?

Автор:  вопрос [ Пн мар 05, 2012 16:44 ]
Заголовок сообщения:  Re: OpenForth

Цитата:
Я же под "творческим новаторством" понимаю изобретения, несущие новизну всему обществу, изобретения, которые общество готово признать, принять, усвоить и использоват

:D "плодотворные обобщения"
они, в отличие от "удачных обобщений" - таких лёгких в форте - несколько или значительно более трудоемки

Автор:  `Kopa [ Пн мар 05, 2012 16:48 ]
Заголовок сообщения:  Re: OpenForth

`Kopa писал(а):
@ "А судьи кто?"

Может и так быть..
Код:
  А судьи кто? - За древностию лет К свободной жизни их вражда непримирима, Сужденья черпают из забытых газет Времен Очаковских...
А.С. Грибоедов


gudleifr писал(а):
Цитата:
... Чтобы сделаться творчеством, идее надлежит быть взвешенной, продуманной, а также воспроизводимой, по крайней мере - воспроизводимы должны быть все виды технического новаторства.
Умберто Эко. Пойдет?


Это обсуждается на сайтах посвящённых ТРИЗ и Методологии,
а на данном форуме "всё попроще":)

P.S. Каюсь. попался на "удочку" флуда или без ОпенФлуд не
появится OpenForth?

Автор:  Hishnik [ Пн мар 05, 2012 19:28 ]
Заголовок сообщения:  Re: OpenForth

Mihail писал(а):
Зачем нужен голый шаблон, когда существуют открытые релизы?

Не поверишь - пробовать. Кому-то - учиться.

Автор:  `Kopa [ Пн мар 05, 2012 19:30 ]
Заголовок сообщения:  Re: OpenForth

Хищник писал(а):
Предполагается, что самостоятельное заполнение структуры файла, приведенной в openforth.h, позволит, с одной стороны, реализовать различные подходы к компиляции, формированию структуры словарной статьи, организации стека и т.п.,


А можно предлагать некие прототипы решений (полуавтоматические) по заполнению
структуры OpenForth? или обязательно через набирание
через клавиатуру и детального описания реализуемого подхода?
Например FVM Factory http://c-fvm.sourceforge.net/

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