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 оптимизатор из коробки встроен ? тут на форуме еще где-то было мерянье пиписьками оптимизаторного кода с кучей листингов |
Автор: | 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/ |