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

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Журнал по функциональному программированию на русском
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Kopa писал(а):
В Форте, похоже, это близко по семантике DEFER словам ( или VECT в SPF )

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

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

ну, тогда префикс делать. То есть TO Value ;) собственно оно так и делается
Сообщение Добавлено: Ср июл 22, 2009 16:09
  Заголовок сообщения:   Ответить с цитатой
mOleg писал(а):
прочел первую статью журнала. сразу возникла мысля по поводу ленивых вычислений.


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

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

P.S. А вдруг, всё же, требуется результат на момент вызова слова в том контексте
его первичного использования.:)
Сообщение Добавлено: Ср июл 22, 2009 15:37
  Заголовок сообщения:   Ответить с цитатой
прочел первую статью журнала. сразу возникла мысля по поводу ленивых вычислений. В том плане, что ими мы пользуемся, пример:
<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>
или у кого-то есть лучший вариант?
Сообщение Добавлено: Ср июл 22, 2009 13:59
  Заголовок сообщения:   Ответить с цитатой
только надо было написать, что журнал на Русском весь.
а то из условий распространения выходит, что он англоязычный...
Сообщение Добавлено: Вт июл 21, 2009 17:47
  Заголовок сообщения:  Журнал по функциональному программированию на русском  Ответить с цитатой
Собственно первый номер здесь 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.
Сообщение Добавлено: Вт июл 21, 2009 17:39

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


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