Forth
http://fforum.winglion.ru/

ведь это неэффективно...
http://fforum.winglion.ru/viewtopic.php?f=12&t=1317
Страница 1 из 2

Автор:  Necromancer13 [ Пт май 30, 2008 23:06 ]
Заголовок сообщения:  ведь это неэффективно...

скомпилировал я пару программ на ФОрте. дизасмил и ... о ужас - вычисления прямо в стеке !!! почему? нет бы в регистры загрузить и там вычислять... одно слово обращается к другому - другое к еще другому... от этого CALL да CALL...
стек "эмулируется" - ведь только два стека.
ведь это все снижает скорость выполнения очень... никак с этим бороться нельзя?

Автор:  Hishnik [ Пт май 30, 2008 23:24 ]
Заголовок сообщения: 

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

Автор:  вопрос [ Сб май 31, 2008 00:03 ]
Заголовок сообщения:  Re: ведь это неэффективно...

Necromancer13 писал(а):
скомпилировал я пару программ на ФОрте. дизасмил и ... о ужас - вычисления прямо в стеке !!! почему? нет бы в регистры загрузить и там вычислять... одно слово обращается к другому - другое к еще другому... от этого CALL да CALL...
стек "эмулируется" - ведь только два стека.
ведь это все снижает скорость выполнения очень... никак с этим бороться нельзя?

Где-то тут была тема, что можно вызовы проигнорировать, скомпилировать так, чтобы слова "слить" в одно слово, без CALL - не помню где

Автор:  Гость [ Сб май 31, 2008 00:05 ]
Заголовок сообщения: 

Также, можно бороться переходом к другому форт-транслятору (сложные форт-трансляторы тоже имеются).

Автор:  Necromancer13 [ Сб май 31, 2008 00:09 ]
Заголовок сообщения: 

В общем, я вот как понял это: Форт - сам язык. То, что неэффективные трансляторы не значит, что неэффективный Форт. :) Реально ведь написать и хороший транслятор... хотелось бы когда-то хот ьпопробовать этим заняться =)

Автор:  white_TigR [ Сб май 31, 2008 00:28 ]
Заголовок сообщения: 

(шепотом) а если процессор стековый, то очень даже эффективно получается. Никакой эмуляции ведь уже нет. А тут естественно будет медленно, т.к. процессор регистровый, а форт стековый.

Автор:  Necromancer13 [ Сб май 31, 2008 00:50 ]
Заголовок сообщения: 

а где можно достать такой процессор и сколько он ПРИМЕРНО стоит? :)

Автор:  in4 [ Сб май 31, 2008 01:34 ]
Заголовок сообщения: 

Есть ПЛИС (10-12$), на которых его можно сделать. Ну, программатор этой ПЛИС можно сделать за ~2$... Требует LPT.

Автор:  forther [ Сб май 31, 2008 05:56 ]
Заголовок сообщения: 

Или у фирмы Intellasys попросить. Настоящий форт процессор.

Автор:  Mihail [ Сб май 31, 2008 12:21 ]
Заголовок сообщения: 

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


Когда я вставил оптимизатор в СПФ, все программы под СПФ без оптимизатора, остались работоспособными.
В крайнем случае, для специфического фрагмента оптимизатор можно отключить.

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


Вопрос только в трудозатратах.
На данный момент, эффективность кода, скомпилированного СПФ, соизмерима с кодом MVC & GCC.
Чтобы значительно превзойти эти компиляторы мне потребуется на порядки меньше времени, чем вложенное
в один из этих компиляторов. Но и его у меня нет.

Автор:  вопрос [ Сб май 31, 2008 12:25 ]
Заголовок сообщения: 

Цитата:
соизмерима с кодом MVC & GCC

Ещё есть Intel C++ (как-то так...) и разные фортраны, кот. дают ещё более эффективный код. Но то, что теоретически оптимизация после форта проще - тут где-то обсуждалось.

Автор:  forth@km.ru [ Сб май 31, 2008 20:59 ]
Заголовок сообщения:  Re: ведь это неэффективно...

Necromancer13 писал(а):
ведь это все снижает скорость выполнения очень... никак с этим бороться нельзя?

странно, вроде в SP-FORTH оптимизатор из коробки встроен ? тут на форуме еще где-то было мерянье пиписьками оптимизаторного кода с кучей листингов :roll:

Автор:  WingLion [ Сб май 31, 2008 22:34 ]
Заголовок сообщения: 

Necromancer13 писал(а):
а где можно достать такой процессор и сколько он ПРИМЕРНО стоит?


Только что смотрел цену на минимальный Cyclone-III фирмы ALTERA - 16$

EP3C5 в 144-выводном корпусе
- 5136 логических ячеек
- 414 килобит внутренней памяти
- 23 встроенных умножителя 18x18
- 2 ФАПЧ (PLL)
- 94 I/O pins

на форт-процессор надо от 1000 до нескольких тысяч логических ячеек, т.е. в такoй ПЛИС можно разместить несколько форт-процессоров

п.с. и, разумеется, на этом затраты на получение форт-процессора не заканчиваются. Проектирование платы, разводка, изготовление, монтаж, наладка - все это требует времени и квалификации, т.е. "стоят неких денег", как минимум.

Автор:  Necromancer13 [ Вс июн 01, 2008 20:44 ]
Заголовок сообщения: 

хыхы =) мне бы что-то типа маленького отдельного компьютера с таким процессором... ;)

Автор:  white_TigR [ Вс июн 01, 2008 23:13 ]
Заголовок сообщения: 

а что мешает? ;) всего то 16 долларов. И останется только написать свой супер-пупер процессор с правом неприкосновенности :)
WingLion, стартер-киты же есть. И плату разводить не надо. только кристал запрограммировать

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