Forth
http://fforum.winglion.ru/

Более одного стека?
http://fforum.winglion.ru/viewtopic.php?f=9&t=884
Страница 1 из 1

Автор:  вопрос [ Пн авг 06, 2007 00:21 ]
Заголовок сообщения:  Более одного стека?

Существуют ли модели форта с более чем одним стеком и если да, то для чего?

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

типа того - на один стек кладётся логика одного выражения, на другой другого и идём по строке исходника - соответствует ли она логике, где не соответвствует - работа с тем стеком прекращается. Но по другим идёт дальше (параллельно) - чем не конечный автомат? :) :)

Автор:  mOleg [ Пн авг 06, 2007 01:01 ]
Заголовок сообщения: 

вопрос писал(а):
Существуют ли модели форта с более чем одним стеком

да вроде как все меньше двух стеков не имеют.
а так 5-6 сразу обычно на борту имеется

а сколько надо?

Автор:  VoidVolker [ Пн авг 06, 2007 01:03 ]
Заголовок сообщения: 

Да, существуют - например спф: IRC: ..."Стек данных, возвратов, структур управления, опциональный локальный и словарей" ... "даже память форт распределяет, как стек"...
Нужен еще один стек? Добавь! Что тебе мешает? У форта расширяемость бесконечная!
У тебя есть конкретная задача? С конкретными трбованиями? Ну так и расширяй свой форт в сторону решения проблемы.

Автор:  вопрос [ Пн авг 06, 2007 01:25 ]
Заголовок сообщения: 

имеются ввиду несколько стеков данных количество стеков возвратов не интересует

конечно, добавить можно :D

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

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

идея ясна? не тупа?
Это. может быть можно в виде задачи офoрмит

Автор:  VoidVolker [ Пн авг 06, 2007 01:34 ]
Заголовок сообщения: 

Ну так напиши и попробуй в действии. Что мешает? Кстати - мы ни разу не видели от тебя ни байта кода. Так, а вообще - прежде чем напечятать еще одно бессмысленное сообщение на этом форуме - прочитай два, нет, лучше три раза подряд книги Броуди, Баранова, в общем все что есть в разделе "Литература" http://wiki.forth.org.ru/ForthLiterature

Автор:  вопрос [ Пн авг 06, 2007 01:40 ]
Заголовок сообщения: 

VoidVolker писал(а):
Ну так напиши и попробуй в действии. Что мешает? Кстати - мы ни разу не видели от тебя ни байта кода. Так, а вообще - прежде чем напечатать еще одно бессмысленное сообщение на этом форуме - прочитай два, нет, лучше три раза подряд книги Броуди, Баранова, в общем все что есть в разделе "Литература" http://wiki.forth.org.ru/ForthLiterature

ник мой заметен? (доброжелательно) Я тут в основном вопросы задаю. Сообщение было не бессмысленным, был вопрос простой, однонаправленный. А код я где-то постил, только неполезный. И кажется, не фортовский. Баранова и Броуди читал, с людьми общаться полезнее.

Автор:  VoidVolker [ Пн авг 06, 2007 19:26 ]
Заголовок сообщения: 

Придумать-то можно все что угодно, но будет ли придуманное вотребовано? Т.е. зачем оно надо? И чем оно лучше того, что уже есть?
вопрос писал(а):
так удобно делать сложную логику

Чем бэкфорт не устраивает?

Автор:  вопрос [ Пн авг 06, 2007 20:14 ]
Заголовок сообщения: 

VoidVolker писал(а):
Придумать-то можно все что угодно, но будет ли придуманное вотребовано? Т.е. зачем оно надо? И чем оно лучше того, что уже есть?
вопрос писал(а):
так удобно делать сложную логику

Чем бэкфорт не устраивает?

про бекфорт просто не подумал, он чем-то напоминает Пролог, потому даже не нашёл времени его изучить, надо будет заняться, это важно.

Автор:  forth@km.ru [ Вт авг 07, 2007 22:51 ]
Заголовок сообщения: 

VoidVolker писал(а):
У тебя есть конкретная задача? С конкретными трбованиями? Ну так и расширяй свой форт в сторону решения проблемы.


может лучше проблему решать ?

Автор:  Mihail [ Ср авг 08, 2007 12:18 ]
Заголовок сообщения: 

forth@km.ru писал(а):
может лучше проблему решать ?


А я так и не понял в чем проблема.

Это devel\~af\LIB\locstack.f не то?

Автор:  вопрос [ Ср авг 08, 2007 13:36 ]
Заголовок сообщения: 

Mihail писал(а):
forth@km.ru писал(а):
может лучше проблему решать ?


А я так и не понял в чем проблема.
Это devel\~af\LIB\locstack.f не то?

Может и то... надо ознакомиться.
Идея предполагала бы примитивы ну скажем, перенесения со стека на стек
типа
: stack1>stack2 ... ;
: stack2drop&stack1>stack2 ... ; \ переместить первый элемент стека 1 на стек 2, заменив
хотя ясно, что всё реализуемо.

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

Автор:  WingLion [ Ср авг 08, 2007 14:01 ]
Заголовок сообщения: 

вопрос писал(а):
Если эта мысль кажется слишком отвлечённой или своевольной,

по правде говоря, от нее просто банальностью попахивает

Автор:  profiT [ Ср авг 08, 2007 15:39 ]
Заголовок сообщения: 

---

Автор:  вопрос [ Ср авг 08, 2007 16:44 ]
Заголовок сообщения: 

WingLion писал(а):
вопрос писал(а):
Если эта мысль кажется слишком отвлечённой или своевольной,

по правде говоря, от нее просто банальностью попахивает
Наконец за меня кто-то вступился. :)

Автор:  mOleg [ Ср авг 08, 2007 21:20 ]
Заголовок сообщения: 

вопрос писал(а):
Странно, что в таком языеке как Форт избегают множественности стеков данных.

еще раз, у среднестатистического большого форта (то есть более-менее развитого) в среднем бывает 5-6 стеков данных(которые уже использует ядро)! И по мере необходимости добавляются еще, например, для выделения работы с определенным типом данных, которые неудобно держать на базовом стеке данных.

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