Forth
http://fforum.winglion.ru/

Журнал по функциональному программированию на русском
http://fforum.winglion.ru/viewtopic.php?f=35&t=2215
Страница 1 из 1

Автор:  avl [ Вт июл 21, 2009 17:39 ]
Заголовок сообщения:  Журнал по функциональному программированию на русском

Собственно первый номер здесь http://fprog.ru/2009/issue1/practice-fp-1-screen.pdf




Условия распространения:
You are free:

to Share — to copy, distribute and transmit the work
Under the following conditions:

Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Noncommercial — You may not use this work for commercial purposes.
No Derivative Works — You may not alter, transform, or build upon this work.
With the understanding that:

Waiver — Any of the above conditions can be waived if you get permission from the copyright holder.
Other Rights — In no way are any of the following rights affected by the license:
Your fair dealing or fair use rights;
The author's moral rights;
Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights.
Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.

Автор:  mOleg [ Вт июл 21, 2009 17:47 ]
Заголовок сообщения: 

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

Автор:  mOleg [ Ср июл 22, 2009 13:59 ]
Заголовок сообщения: 

прочел первую статью журнала. сразу возникла мысля по поводу ленивых вычислений. В том плане, что ими мы пользуемся, пример:
<pre>
0 VALUE Buffer

\ вернуть адрес буфера для данных
: buff ( --> addr )
Buffer DUP ?EXIT
10000 ALLOCATE THROW DUP TO Buffer ;
</pre>

то есть выделение памяти производится не при старте системы, а только по требованию, то есть при первом запросе.
вопрос в том, много ли в реальной программе таких мест?

кстати, данный процесс можно оформить в виде специальной конструкции, как-то так:
<pre>
: name ( ? )
bla bla bla
LAZY условие COMPUTE инициализация RETURN результат
bla bla bla
;
</pre>
или у кого-то есть лучший вариант?

Автор:  Kopa [ Ср июл 22, 2009 15:37 ]
Заголовок сообщения: 

mOleg писал(а):
прочел первую статью журнала. сразу возникла мысля по поводу ленивых вычислений.


Мне видется, что специфика ленивых вычислений немного надумана:)
и введена для ручного управления оптимизатором
( вдруг оптимизатор не догадается или слишком переусердствует ) .

В Форте, похоже, это близко по семантике DEFER словам ( или VECT в SPF )
( если использовать везде и для всего) и если дополнить метками в месте
действительного использования. ( можно расширить Форт, "ленивыми" словами,
но они, без меток использования, не должны выдавать результат
т.е. при обычном вызове не вычислять или сохранять результат внутри своей области данных
при принудительной активации c заданными входными данными, а далее слово анализирует
наличие вычисленных результатов по внутреннему кешу для требуемых входных данных )

P.S. А вдруг, всё же, требуется результат на момент вызова слова в том контексте
его первичного использования.:)

Автор:  mOleg [ Ср июл 22, 2009 16:09 ]
Заголовок сообщения: 

Kopa писал(а):
В Форте, похоже, это близко по семантике DEFER словам ( или VECT в SPF )

а по мне, так даже к CREATE DOES> конструкции ближе...
но и VECT и VALUE тоже близки по сути, однако, они не локальны, то есть плохо распараллеливаться будут.

Kopa писал(а):
P.S. А вдруг, всё же, требуется результат на момент вызова слова в том контексте
его первичного использования.

ну, тогда префикс делать. То есть TO Value ;) собственно оно так и делается

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