Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 12:13

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 13, 2006 19:36 
Цитата:
И когда уже на CVS будет?


~profit/lib/bac4th.f
~profit/lib/bac4th-str.f
~profit/prog/forth-wizard/forth-wizard-depth-bac4th.f


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 17, 2006 17:36 
bac4th'овые итераторы -- это на мой взгляд самое применительное из всего.

Теперь можно забыть про callback-слова с xt на стеке, теперь не надо создавать два лишних определения, типа:

Код:
\ печать полных имен каталогов
\ : TT DROP TYPE CR ;
\ : T S" c:" ['] TT FIND-DIRS-R ; T


Всё просто, как валенок:

Код:
REQUIRE /TEST ~profit/lib/testing.f
REQUIRE FIND-FILES-R ~ac/lib/win/file/findfile-r.f

: ITERATE-FILES ( addr u depth --  ) FIND-FILES-DEPTH !  R> FIND-FILES-R ;
: ITERATE-DIRS ( addr u depth --  ) FIND-FILES-DEPTH !  R> FIND-DIRS-R ;

/TEST
: allFilesInC S" c:" 1 ITERATE-FILES ( addr u data flag --> \ <-- ) 2DROP CR TYPE ;
allFilesInC


http://spf.cvs.sourceforge.net/spf/devel/~profit/lib/iterate-files.f

Пусть библиотека и не используется, но общая идея такая же.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 08, 2006 10:42 
Радуюсь как дитё сегодняшней "находкой":

Код:
: INTSTO ( n <-->x ) PRO 0 DO I CONT DROP LOOP ; \ генерирует числа от 0 до n-1
: FACT ( n -- !n ) *{ INTSTO 1+ DUP }* ;


А ведь это прямо напрашивалось... Нет, нужно было столкнуться с FL, чтобы что-то зашевелилось... Хотя и раньше видел такие же функции и в J, и в K, но тогда не доходило.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 14, 2006 21:22 
Привет!

Цитата:
R> FIND-FILES-R


То, что на стеке возвратов лежит адрес, годящийся в роли xt — это детали реализация, и не всегда верно: поэтому лучше бы это скрыть (инкапсулировать). Гасаненко тоже обращает внимание, что это не тоже самое:
Код:
>TCODE ( xt -- tca ) Return the address tca of the threaded code fragment which is called when the high-level procedure identified by xt is executed.

tca -- a threaded code element address (the same as ra [return address])
И обратного слова нету, что вполне логично.

Насчет применения.
Вот, буржуи обсуждают варианты факторизации вложенных циклов в comp.lang.forth

Только что мой вариант на базе BacFORTH не заметили ;)
Кстати, благодаря твоей либе быстро его проверил! :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 10:23 
Цитата:
То, что на стеке возвратов лежит адрес, годящийся в роли xt — это детали реализация, и не всегда верно: поэтому лучше бы это скрыть (инкапсулировать).


Это само собой. Но ведь это порт под SPF, так?.. А в SPF именно так. Гасаненко в "Open Interpreter" предлагал как слой совместимости слова RR> и >RR. В реализации на Win32Forth из архива bac4th.zip они применяются:

Код:
: >RR ( xt -- ) R>
SWAP   REL>ABS >R
>R ;

: RR>  ( -- xt ) R>
R> ABS>REL   SWAP
>R ;


Можно и сделать такие заглушки... Вот только в bac4th.f уже заточен под SPF (RET, ; RLIT, ; ~yz/lib/inline.f ; lib/ext/locals.f ).


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 12:07 
Не в сети
Аватара пользователя

Зарегистрирован: Чт авг 17, 2006 10:01
Сообщения: 53
Откуда: Владивосток
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Чего-то у меня вообще не может зайти в CVS СПФ'а.
Там случайно никаких ограничений нет?

_________________
Win2003 Ent R2
ASUS A7V266-E; Athlon XP 2000+; 512Mb; HDD: 2x120+15 Gb; GF 3 Ti2


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 15:05 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Нет никаких ограничений. Приводите комманду которой вы пытаетесь коннектиться. См. также http://sourceforge.net/cvs/?group_id=17919

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 15:41 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Мне тоже не удается зайти на http://spf.cvs.sourceforge.net/spf
что-то там случилось


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 15:55 
Не в сети
Аватара пользователя

Зарегистрирован: Чт авг 17, 2006 10:01
Сообщения: 53
Откуда: Владивосток
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
yGREK писал(а):
Приводите комманду которой вы пытаетесь коннектиться.

Нет никакой команды. Я пытаюсь зайти в CVS через браузер (Browse CVS Repository).

_________________
Win2003 Ent R2
ASUS A7V266-E; Athlon XP 2000+; 512Mb; HDD: 2x120+15 Gb; GF 3 Ti2


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 16:53 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Вопрос.
Как использовать условную компиляцию [IF] - [ELSE] - [THEN] внутри определений через двоеточие, при условии,
что там используется ассемблер?

Вот так к примеру не работает.

Код:
REQUIRE ASSEMBLER lib\ext\spf-asm.f
REQUIRE [IF] lib\include\tools.f
REQUIRE [THEN] lib\include\tools.f

ALSO ASSEMBLER ALSO ASM-HIDDEN

: [C  POSTPONE [ !CSP INIT-ASM ; FORTH::IMMEDIATE
: C]  END-ASM ?FINISHED ?UNRES ?CSP RESTORE-CURRENT EXIT-ASSEMBLER ] ;

PREVIOUS PREVIOUS


0 VALUE LT1

: [S]
[C
MOV EBX, 8 [EBP]
MOV ECX, 4 [EBP]
MOV EDX,   [EBP]
MOV ESI,    EAX
C]
[ LT1 4 = [IF] ] [C  MOV 8 [EBP], ESI C] [THEN]
;

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 17:09 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Выполнение ] получается условным, а [ безусловным.

Можно:
Код:
: [S]
[C
MOV EBX, 8 [EBP]
MOV ECX, 4 [EBP]
MOV EDX,   [EBP]
MOV ESI,    EAX
C]
[ LT1 4 = ]
[IF] [C
MOV 8 [EBP], ESI C]
[THEN]
;


или

Код:
: [S]
[C
MOV EBX, 8 [EBP]
MOV ECX, 4 [EBP]
MOV EDX,   [EBP]
MOV ESI,    EAX
LT1 4 =
[IF]
MOV 8 [EBP], ESI
[THEN]
C]
;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 15, 2006 17:09 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
вообще офф-тред-топик ;) Надо бы перенести куда-то.
cvs у них и вправду сейчас лежит %(
chess, lib/ext/debug/accert.f ?

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 12:21 
http://wiki.forthfreak.net/index.cgi?Te ... Structures

Цитата:
REP replaces the LOOP word.

Код:
20 REP line.


replaces

Код:
20 0 do line. loop


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 02, 2006 13:37 
Этой программкой на бэкФорте собираются дистрибутивы и архивы SPF. Используя только PRO ... CONT, PREDICATE ... SUCCEEDS и ONTRUE ygrek сделал довольно сложную логику. Причём написал лучше чем я -- у меня и длиннее и сложнее получалось...

http://spf.cvs.sourceforge.net/spf/tools/nsis/spf_cvs.f


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб дек 02, 2006 17:02 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Использовал весь арсенал который осилил :)
До твоих подсказок оно выглядело гораздо более монструозно.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу Пред.  1, 2, 3  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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