Comparación de 3 implementaciones de Common Lisp (Clisp, GCL y SBCL) mediante la función de Takeuchi

En artículos anteriores comentamos la función de Takeuchi como prueba de rendimiento y la usamos para la comparación del rendimiento de Haskell, Maxima y Common Lisp.

En este artículo voy a usar una variación de la prueba anterior para comparar tres implementaciones de Common Lisp: Clisp, GCL (GNU Common Lisp) y SBCL (Steel Bank Common Lisp).

La función de Takeuchi es
tak(x,y,z) = \newline     \left\{     \begin{array}{ll}       y, & \mathrm{si} \ x \leq y \\       \mathrm{tak}(\mathrm{tak}(x-1,y,z),                    \mathrm{tak}(y-1,z,x),                    \mathrm{tak}(z-1,x,y)) & \mathrm{en\ caso\ contrario}     \end{array}     \right.

La prueba consistirá en comparar los tiempos empleados en calcular tak(n,0,n+1) para n entre 10 y 15.
Read More “Comparación de 3 implementaciones de Common Lisp (Clisp, GCL y SBCL) mediante la función de Takeuchi”

TAK como prueba de rendimiento

A partir del artículo La función de Takeuchi como banco de prueba para la eficiencia y sus comentarios he estado investigando sobre su uso. En este artículo resumo el resultado de las indagaciones.

La función de Takeuchi se utiliza en la prueba TAK cuyo creador es Richard P. Gabriel según afirma en su libro Performance and evaluation of LISP systems (MIT Press, 1985). En las páginas 81-91 de su libro describe la prueba TAK. En concreto,  indica su objetivo (p. 81)
Read More “TAK como prueba de rendimiento”