Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 19, 2024 07:27

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - выложил обрезанную версию FVM с частичным переводом
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
Цитата:
любой неигрушечный компилятор Си эту структуру соптимизирует в jump table если позволяет платформа

Что по идее представляет собой оптимальную (по теории) реализацию такого алгоритма


Ну и что из этого?
Мы получим тот же шитый код( косвенный ) с уменьшенным кол-вом слов 8( Дальше, для слов, которые не влазят в этот список из 256 слов нужно делать отдельный вызов ( вот тут и начинаются тормоза++ ), а выигрыш в обьеме сразу начинает сьедаться, к тому же адреса переходов и данный в такой системе не выравниваются в отличие от классического шитого кода, и получаются дополнительные тормоза...
Сообщение Добавлено: Вт авг 01, 2006 23:23
  Заголовок сообщения:   Ответить с цитатой
in4 писал(а):
По итогам обсуждения на irc #forth стало ясно, что принципиальной необходимости в наличии этого слова нет.


Странно 8( Я часто пользуюсь им. Не то, чтобы не смог бы без него обойтись, но слово удобное. Уж легче обойтись без PREVIOUS.
Сообщение Добавлено: Вт авг 01, 2006 22:23
  Заголовок сообщения:   Ответить с цитатой
in4 писал(а):
Про "странные" - например в реализации словарей, а именно ALSO. Вот не понимаю, зачем добавлять в поиск последний словарь еще раз!

По итогам обсуждения на irc #forth стало ясно, что принципиальной необходимости в наличии этого слова нет.
Были предложены способы обхода большинства несовместимостей. Ценой пересмотра кода.... :(
Исключение ALSO мизерно упрощает систему, вызывая несколько серьезных несовместимости в программах, оптимизировнных с учетом стандарта (использующих замену последнего словаря).

Я бы предложил его убрать в новом стандарте(вряд ли получится... :( - много кода, а вот если не тянуть совместииимость! ;) ) и (особенно!!) в других диалектах Форта, использующих идеи стандарта 94.
Сообщение Добавлено: Вт авг 01, 2006 16:48
  Заголовок сообщения:   Ответить с цитатой
Цитата:
любой неигрушечный компилятор Си эту структуру соптимизирует в jump table если позволяет платформа

Что по идее представляет собой оптимальную (по теории) реализацию такого алгоритма
Сообщение Добавлено: Вт авг 01, 2006 12:24
  Заголовок сообщения:   Ответить с цитатой
oleg писал(а):
Я только что посмотрел в исходини vm.cpp и сразу же наткнулся на case структуру( уже не интересно смотреть дальше). При таких тормозах уж лучше использовать косвенный 16 битный шитый код( и то будет быстрее ).


любой неигрушечный компилятор Си эту структуру соптимизирует в jump table если позволяет платформа
Сообщение Добавлено: Вт авг 01, 2006 11:27
  Заголовок сообщения:   Ответить с цитатой
Гость писал(а):
in4 писал(а):

Про "странные" - например в реализации словарей, а именно ALSO. Вот не понимаю, зачем добавлять в поиск последний словарь еще раз! Чтоб поиск был подольше?


ALSO имеет смысл только если за ним идет имя словаря.
Ничего плохого в этом не вижу. Т.к. 2 словаря подряд, при этом,
существуют только при поиске имени словаря за ALSO.
ALSO играет роль открывающей скобки, а PREVIOUS закрывающей.


Контекст - это тоже стек. Так что ALSO = DUP; PREVIOUS = DROP ;)
Два словаря оставлять на стеке контекста имеет смысл, когда работаешь в консоли с форт-системой. Это гарантирует, что если ты случайно забудешь написать перед именем словаря also то сможешь восстановить работоспособность системы. У меня обычно в том же Смал32 контекст при инициализации выглядит так:
ROOT FORTH FORTH - тогда при
VOCABULARY myVoc myVoc Definitions
Я автоматом получу ROOT FORTH myVoc -- это удобно.

Второй случай бывает вот такой примерно:
ROOT FORTH myVoc FORTH - это полезно, когда слова в моем словаре имеют те же имена, что и в главном словаре, например.
Сообщение Добавлено: Вт авг 01, 2006 02:44
  Заголовок сообщения:   Ответить с цитатой
вопрос писал(а):
У меня упорное впечатление. что автор оказывает форт-сособществу ценную услугу.
Форт не имеет главного - удобной переносимости.
И вот ВМ, сделанная на СИ (правильно я понимаю?) даёт мгновенно форту одно из преимуществ СИ - переносимость, а ведь сколько не сотен а я полагаю десятков тысяч человеко-часов ушло у разработчиков си-компиляторов ...


Реализаций форта на си даже больше чем на самом форте вместе с реализациями на ассемблерах вместе взятыми. Поэтому в этом плане актуальность невелика. Я только что посмотрел в исходини vm.cpp и сразу же наткнулся на case структуру( уже не интересно смотреть дальше). При таких тормозах уж лучше использовать косвенный 16 битный шитый код( и то будет быстрее ).
Сообщение Добавлено: Вт авг 01, 2006 02:34
  Заголовок сообщения:   Ответить с цитатой
in4 писал(а):
Про "странные" - например в реализации словарей, а именно ALSO. Вот не понимаю, зачем добавлять в поиск последний словарь еще раз! Чтоб поиск был подольше?


ALSO имеет смысл только если за ним идет имя словаря.
Ничего плохого в этом не вижу. Т.к. 2 словаря подряд, при этом,
существуют только при поиске имени словаря за ALSO.
ALSO играет роль открывающей скобки, а PREVIOUS закрывающей.
Сообщение Добавлено: Пн июл 31, 2006 16:43
  Заголовок сообщения:   Ответить с цитатой
forth@km.ru писал(а):
Цитата:
Форт не имеет главного - удобной переносимости.


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

Цитата:
И вот ВМ, сделанная на СИ (правильно я понимаю?) даёт мгновенно форту одно из преимуществ СИ - переносимость,


таких Фортов море

мне была нужна переносимость на уровне кода без перекомпиляции,

АГА, всё же есть разные переносимости ...
и эта имеет свои преимущества (?)
байт-код, насколько я знаю, неплохо, его придумали умные люди и то, что он должен тормозить, это временный недостаток, сама идея важна ( IMHO )
Сообщение Добавлено: Пн июл 31, 2006 14:14
  Заголовок сообщения:   Ответить с цитатой
forth@km.ru писал(а):
не умеешь читать Makefile ? там же 20 строк в простейшем синтаксисе

Кстати, вот тут явно подразумевается, что надо еще и Си знать, чтобы твоей Форт-ВМ пользоваться. А это есть проблема "для чайников".

P.S. Я лично Makefile читать не умею... :( И Си не знаю.
Сообщение Добавлено: Пн июл 31, 2006 14:04
  Заголовок сообщения:   Ответить с цитатой
сам я имплементировал интерпретатор, умеющий поддерживать как байт-код, так и шитый код

в принципе нормально получается, особенно хорошо - можно передавать маленькие слова по медленным каналам связи
Сообщение Добавлено: Пн июл 31, 2006 14:01
  Заголовок сообщения:   Ответить с цитатой
forth@km.ru писал(а):
проблема совершенно в другом -- базовый Форт очень низкоуровневый, а его расширение требует очень значительных вложений труда и времени

синтаксис никакой, приходится вручную отслеживать абсолюно все -- передачу данных через стек, вручную его перетормашивать, делать наколенные топорные реализации структур данных и механизмов, которые в других языках уже есть последние 15-20 лет

ну да, Форт можно расширить до Pythonа С++ Паскаля, только чем это отличается на написанию того же транслятора с нуля на любом другом языке ?

тут в форуме давали ссылки на реализации Си и Бейсика на Форте, да и просто какие-то библиотеки -- лезешь, загружаешь, ЫЫЫ! ведро исходника без какой-либо документации и комментариев, почему вообще тогда не отдавать в виде дампа откомпилированного машинного кода ? :) опять проще то же самое самому написать, чем ковыряться в чужих write only исходниках

Немного аксиом:

Никто не говорил что следовать по Форт пути будет простое занятие:)
Расширений Форт языка предостаточно.
Разбираться с расширениями его, при желании, не составляет труда.
Расширять Форт удобнее, чем писать транслятор на классических языках.

P.S. Сложнее с привычками к синтаксису С подобных языков бороться:)
Против воли никто не заставляет использовать Форт язык.
Если, что не устраивает дописываешь сам или берешь уже кем то сделанное.
Сообщение Добавлено: Пн июл 31, 2006 13:59
  Заголовок сообщения:   Ответить с цитатой
лучше SMAL32 форта не видел, жалко что проект сдох
Сообщение Добавлено: Пн июл 31, 2006 13:51
  Заголовок сообщения:   Ответить с цитатой
Блин, да хотя бы подробную документацию к своим системам делать, да комментариев побольше (кашу маслом не испортишь) - уже дело бы пошло, и новичков привлекло. А так, когда в правило вошло делать абы как, "для себя же", "главное, что я понимаю", "этот кусок кода в пятьсот слов и так ясен", и т.п., никаких подвижек не предвидится.
Я себя еще помню как я полтора года назад впервые начал знакомиться с Фортом. :) Это сейчас я могу читать чужие исходники, не нуждаясь в подробных комментариях (кнопку F7 в Фаре скоро сотру до дыр :)) ). А тогда многие исходники из каталога devel\ казались мне китайской грамотой. :shuffle;
Сообщение Добавлено: Пн июл 31, 2006 13:36
  Заголовок сообщения:   Ответить с цитатой
проблема совершенно в другом -- базовый Форт очень низкоуровневый, а его расширение требует очень значительных вложений труда и времени

синтаксис никакой, приходится вручную отслеживать абсолюно все -- передачу данных через стек, вручную его перетормашивать, делать наколенные топорные реализации структур данных и механизмов, которые в других языках уже есть последние 15-20 лет

ну да, Форт можно расширить до Pythonа С++ Паскаля, только чем это отличается на написанию того же транслятора с нуля на любом другом языке ?

тут в форуме давали ссылки на реализации Си и Бейсика на Форте, да и просто какие-то библиотеки -- лезешь, загружаешь, ЫЫЫ! ведро исходника без какой-либо документации и комментариев, почему вообще тогда не отдавать в виде дампа откомпилированного машинного кода ? :) опять проще то же самое самому написать, чем ковыряться в чужих write only исходниках
Сообщение Добавлено: Пн июл 31, 2006 13:26

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


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