Сообщение от
Titus
Если вы хотите мне дать ссылку на программистов, которые на ассемблере пишут хуже, чем компилирует компилятор, то это это злостные извращенцы-двоечники)
Ерунду какую-то говорите. Почему по вашему кодов на ассемблере почти не пишут?
Код:
/*RUN IT BY (GNU compiler)
gcc -O5 FN.c; time ./a.out
OR (it is without optimisation)
gcc FN.c; time ./a.out
OR (Intel compiler)
icc -fast FN.c; time ./a.out
OR (LLVM compiler)
clang -O3 FN.c; time ./a.out
OR (Amsterdam Compiler Kit)
ack -mlinux386 -O4 -o fib fib.c; time ./fib
*/
#include <stdio.h>
#define bestint long //64 bits
bestint fib (bestint n) {
return n < 3 ? 1 : fib(n - 1) + fib(n - 2);
}
main() {
int k = 41;
printf("%d %ld\n", k, fib(k));
}
Вот вам программка на си. Её ассемблерный аналог на 45% медленнее. Пробовал и с x86 и с x86-64, x86-64 процентов на 15 быстрее, но именно она и отстаёт почти на все 50 от си. Кстати, даже ява почти догоняет ассемблер, всего процентов на 30 медленнее. Аналогичная картинка и по функции Аккермана. Конечно, можно взять ассемблерный код, сгенерированный си-компилятором, но такое человек не напишет.