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

Quark: build 28 (и документация)
http://www.fforum.winglion.ru/viewtopic.php?f=23&t=2645
Страница 3 из 5

Автор:  gudleifr [ Пт дек 30, 2011 01:00 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Хищник писал(а):
В любом случае, я вирус в кварк не компилировал, о чем могу ответственно заявить.
А в zip каких-нибудь активно-рекламных оглавлений не добавлял? Обычно на это ругается.
Хищник писал(а):
Да без проблем.
Тогда наводящий вопрос: какова доля Forth в твоем IDE?

Автор:  Hishnik [ Пт дек 30, 2011 01:12 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

gudleifr писал(а):
А в zip каких-нибудь активно-рекламных оглавлений не добавлял? Обычно на это ругается.

Не знаю. Распаковывается из него нормально.
gudleifr писал(а):
Тогда наводящий вопрос: какова доля Forth в твоем IDE?

В proton? Он написан полностью на Lazarus и к Форту вообще не имеет отношения. Это просто способ использовать компонент SynEdit, который мне понравился больше всех из увиденных компонентов редакторов. Из редактора текст передается в quark.dll построчно.

Автор:  gudleifr [ Пт дек 30, 2011 01:14 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Хищник писал(а):
...
Спасибо за ответ.

Автор:  dynamic-wind [ Пт дек 30, 2011 11:41 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Цитата:
Quark: build 28 (и документация)

Рано или поздно будет Quark: build XY (+ исходники и документация).

Автор:  Hishnik [ Пт дек 30, 2011 12:56 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

dynamic-wind писал(а):
Рано или поздно будет Quark: build XY (+ исходники и документация).

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

Автор:  diver [ Пт дек 30, 2011 16:35 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Лично я за повышение доли документации в поставках форт-систем.

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

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

Для Фортов под операционки типа Windows/Linux более актуально наличие способов вызова системных или сторонних библиотек, работа с той же графикой.

Для встраиваемых систем - на крайний случай можно добавить регистровую модель форт-машины...

Например, отсутствие исходников LPCForth (от MPE для LPC21xx контроллеров) нисколько не мешает его успешно применять

Автор:  gudleifr [ Пт дек 30, 2011 17:21 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Я скажу за себя. Когда писал первый FOBOS (1989?), взял Баранова и Ноздрунова. Ну, понятно, ассемблерные начала пришлось писать самому, но вот остальные слова тупо передрал с них. Это плохо? Но если бы я начал плодить свои слова, то у меня бы и не Forth получился бы? К тому же, я хоть немного разобрался в Forth-парадигмах...
Экранный редактор взял у Броуди (уже и не помню, были ли там исходники). Второй написал сам. Третий редактор взял у Келли и Спайса (там, вроде, исходники были). Это злостный плагиат? Или нормальный обмен наработками?
Потом нарыл книжку Семенова с PC-исходниками. Обрадовался, что LODSW использовал правильно, но вот идея поменять местам стеки мне тогда не понравилась. Может быть, дополнил свой словарь парой слов оттуда (стандарта тогда еще в глаза не видел).
...
Тоже и с последними версиями. Идею хранить вершину стека в регистре подсмотрел в документации Win32Forth, а алгоритм слова WORD уточнил по его исходникам. Слово DOER в нем пошло сразу, а вот в каком-то Palm-Forrh пришлось для этого методом тыка разбираться, что значит раздельное хранение кода и данных.
...
Допустим, я найду где-нибудь красивый Forth-Intel-Assembler и заменю свое страшилище. Кому от этого полегчает: мне или тому, кто в моей писанине будет разбираться (использовать)?
...
С минимальным FOBOS вышла совсем непонятная история. Я думал, что, получив отзыв на свои исходники, пойму, какая документация потребна, но результатом были полько уверения в том, что ничего не понятно в принципе. Описывать все слова высокого уровня? Бред. Гораздо чаще требуется код слова, чем его описание человеческим языком. WORDS и SEE (да при наличии ANSI-94) делают глоссарий избыточным.
...
Как писал Винер: если бы режим секретности был бы отменен, русские получили бы свою бомбу на год раньше, но американцы бы шагнули вперед лет на двадцать.

Автор:  Hishnik [ Пт дек 30, 2011 19:02 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

И я скажу за себя. Мне не нужен код, не сопровожденный объяснениями, что и почему сделано. Я предпочту пояснения без кода.
gudleifr писал(а):
Идею хранить вершину стека в регистре подсмотрел в документации Win32Forth

А что ж тут не код приводится, а описание? ;)

Автор:  gudleifr [ Пт дек 30, 2011 19:17 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

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

Автор:  Hishnik [ Пт дек 30, 2011 19:56 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

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

Было бы неплохо. К этому и стремлюсь. В принципе, большинство слов кварка можно легко написать, ориентируясь на документацию.

Автор:  Гвоздодер [ Вт апр 10, 2012 11:15 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Загрузил, значит, я Quark, попробовал что-то начать... и с разбегу об телегу.

Слова WORD, INTERPRET, INCLUDE отсутствуют принципиально?

Писать их самому не предлагать! Сохранения образа Форт системы то тоже нет!

Получается, что сделать что-то серьезное с Quark просто не выйдет,
ведь все наработки на следующий день забываются и пропадают. :(

А так красиво начал, казалось, вот оно!...

Ан нет, нет и нет :(

Автор:  Hishnik [ Вт апр 10, 2012 17:40 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Слова WORD, INTERPRET, INCLUDE отсутствуют принципиально?
WORD == PARSE
INTERPRET - это ассемблерная процедура, она же главный цикл. Там расставлено достаточное количество векторизованных слов, чтобы снизить потребность в полной подмене INTERPRET.
INCLUDE == L (" myname.f" L)

Гвоздодер писал(а):
Сохранения образа Форт системы то тоже нет!

quark.exe my_project.f
Файл, имя которого передается в командной строке, загружается после старта. Образ форт-системы во многих наших проектах занимает десятки мегабайт, если не сотни (модели, таблицы, массивы - что ж их, в образ?)
Гвоздодер писал(а):
Получается, что сделать что-то серьезное с Quark просто не выйдет,
ведь все наработки на следующий день забываются и пропадают. :(

Эээ... "файл -> сохранить"? :)

Автор:  WingLion [ Вт апр 10, 2012 19:00 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

Хищник писал(а):
quark.exe my_project.f


Кстати, сегодня применял одну "хитрость" по этому поводу:

делаю такой батник и запускаю

Код:
copy target.f/b+equinox.f/b+my_prog.f/b+end.f/b src.f

quark.exe src.f


Есть только одна неприятность при таком подходе. В случае какой-либо ошибки, Кварк частенько вываливается молча, ничего никуда не сообщая... Во всяком случае, я не увидел этих сообщений. (ненайденые в словаре слова - не в счет - их видно)

Автор:  Hishnik [ Вт апр 10, 2012 19:12 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

WingLion писал(а):
copy target.f/b+equinox.f/b+my_prog.f/b+end.f/b src.f

В src.f может быть

Код:
" target.f" L
" equinox.f" L
" my_prog.f" L
" end.f" L


WingLion писал(а):
Есть только одна неприятность при таком подходе. В случае какой-либо ошибки, Кварк частенько вываливается молча, ничего никуда не сообщая... Во всяком случае, я не увидел этих сообщений. (ненайденые в словаре слова - не в счет - их видно)

Такое было замечено, но варианты вразумительного исправления существенно загромождают систему. К вылетам может приводить ошибка в логике, когда на стеке вместо адреса оказывается 0 или прочий мусор. В этом случае попытка runtime-контроля приведет только к тому, что вываливаться кварк будет не сам, а после чтения сообщения "вы читаете из адреса 0" с последующим ручным прибиванием.

Автор:  WingLion [ Вт апр 10, 2012 19:30 ]
Заголовок сообщения:  Re: Quark: build 28 (и документация)

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


Интереснее была бы не констатация очевидного факта вылета, а указание места, где он произошел...

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