Выше сабж. Пока только на уровне тестов, сохранение в ELF ещё не работает.
К сожалению, редактирование на
http://wiki.forth.org.ru/ не пашет, не позволяет войти в систему (зачем было такую кривую Wiki ставить при наличии той же MediaWiki??)
Так что пока тут.
Компиляция проблем не вызвала - качаем на Windows, делаем целевую компиляцию батником, получаем img.s
Его под Linux и там делаем make.
Тесты по скорости на пресловутом 42-м числе Фибоначи
gcc 3.3.5, компиляция с -O3:
code text
# time ./a.out
433494437
real 0m10.745s
user 0m10.569s
sys 0m0.009s
SPF:
code text
# time ./spf fib.f
real 0m7.923s
user 0m7.414s
sys 0m0.009s
При чём во время работы SPF включена ещё и компиляция программы, т.к. сохранения её в ELF пока нет
Исходники:
code forth
: FIB ( N1 -- N2 )
DUP 2 < IF
DROP 1 EXIT
THEN
1- DUP RECURSE
SWAP 1- RECURSE
+
;
42 FIB . BYE
и
code cpp
#include <stdio.h>
int fib(int n)
{
return n<2 ? 1 : fib(n-1)+fib(n-2);
}
int main(void)
{
int f42=fib(42);
printf("%d",f42);
return 0;
}