Un programador renderiza el conjunto de Mandelbrot enteramente en BSD make

Fuentes: A developer renders the Mandelbrot set entirely in pure BSD make

Un repositorio de GitHub bautizado como bmake-extravaganza demuestra que el lenguaje de make de BSD, conocido por su uso en la construccion de software y el sistema de ports de FreeBSD, es computacionalmente universal. El autor, tras estudiar a fondo el sistema de ports de FreeBSD y la pagina de manual de make(1), decidio llevar la herramienta a un terreno para el que no fue disenada: implementar un renderizador completo del conjunto de Mandelbrot en make puro, sin invocar ningun binario externo.

El proyecto expone como funcionan las primitivas aritmeticas dentro de make. La suma, la resta y la multiplicacion se construyen a partir de algoritmos elementales de la escuela primaria, con tablas de consulta aplicadas iterativamente sobre cada digito de los numeros. La division se resuelve hallando primero el recíproco del denominador mediante el metodo de Newton-Raphson y multiplicando despues por el numerador. A partir de esas primitivas y de un bucle funcionan el resto de operaciones, incluido un rudimentario sistema de coma flotante.

El uso pratico es deliberadamente didactico: ejecutar make con los parametros w, h, z, it, re e im produce una imagen PPM con el fractal. Los tiempos de renderizado son extremos: una miniatura de 1000x250 tarda 12 horas, una imagen de 1000x500 puede requerir mas de 36 horas y un caso de 1000x500 con 64 iteraciones necesita cerca de una semana de CPU al 100%. El autor recomienda elegir constantes con pocos digitos para reducir el coste. El repositorio tambien recoge artefactos graficos con patrones no intencionados, fruto de los casos limite del sistema decimal improvisado.