SPForth под Linux

 
+
-
edit
 

Balancer

администратор
★★★★★
Выше сабж. Пока только на уровне тестов, сохранение в ELF ещё не работает.

К сожалению, редактирование на http://wiki.forth.org.ru/ не пашет, не позволяет войти в систему (зачем было такую кривую Wiki ставить при наличии той же MediaWiki??)

Так что пока тут.

Компиляция проблем не вызвала - качаем на Windows, делаем целевую компиляцию батником, получаем img.s

Его под Linux и там делаем make.

Тесты по скорости на пресловутом 42-м числе Фибоначи :)
gcc 3.3.5, компиляция с -O3:
code text
  1. # time ./a.out
  2. 433494437
  3. real 0m10.745s
  4. user 0m10.569s
  5. sys 0m0.009s


SPF:
code text
  1. # time ./spf fib.f
  2. real 0m7.923s
  3. user 0m7.414s
  4. sys 0m0.009s


При чём во время работы SPF включена ещё и компиляция программы, т.к. сохранения её в ELF пока нет :)

Исходники:
code forth
  1. : FIB ( N1 -- N2 )
  2.     DUP 2 < IF
  3.         DROP 1 EXIT
  4.     THEN
  5.     1- DUP RECURSE
  6.     SWAP 1- RECURSE
  7.     +
  8. ;
  9.  
  10. 42 FIB . BYE

и
code cpp
  1. #include <stdio.h>
  2.  
  3. int fib(int n)
  4. {
  5.     return n<2 ? 1 : fib(n-1)+fib(n-2);
  6. }
  7.  
  8. int main(void)
  9. {
  10.     int f42=fib(42);
  11.     printf("%d",f42);
  12.     return 0;
  13. }

 
Это сообщение редактировалось 19.01.2005 в 01:27

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru