stringtranslate.com

Impromptu (entorno de programación)

Impromptu es un entorno de programación Mac OS X para codificación en vivo . Impromptu se basa en el lenguaje Scheme , que es miembro de la familia de lenguajes Lisp . El código fuente de su núcleo se ha abierto como proyecto Extempore .

Descripción

El entorno permite realizar cambios en un programa en tiempo de ejecución , por lo que se pueden redefinir variables y funciones y los cambios entran en vigor de inmediato. Un programador también puede crear y programar código para ejecución futura, así como eventos de datos como notas y objetos gráficos. Una vez que se programa un evento, la ejecución continúa. El bucle se realiza mediante el uso de un modismo llamado "recursión temporal" que funciona haciendo que una función programe de forma asincrónica una llamada futura a sí misma como acción final.

La biblioteca permite comunicarse con Audio Units para síntesis de audio y con capas gráficas como QuickTime , Quartz , Core Image , OpenGL para composición de video . El código escrito en Objective-C se puede llamar desde el editor, y también los marcos de Objective-C pueden realizar llamadas al intérprete de Scheme.

El intérprete Scheme de Impromptu se creó inicialmente a partir de la base de TinyScheme 1.35, pero desde entonces se ha modificado sustancialmente para adaptarse mejor al contexto de codificación en vivo. Se agregaron un recolector de basura en tiempo real e integración con Objective-C . Además, se ha integrado al sistema un nuevo lenguaje escrito estáticamente llamado Extempore Language . Este lenguaje es sintácticamente similar a Scheme, pero semánticamente más cercano a C, y está diseñado para síntesis de sonido en tiempo real y otras tareas computacionalmente pesadas. Proporciona inferencia de tipos y LLVM lo compila en lenguaje de máquina .

Rendimiento de muestra

A Study in Keith es una actuación de codificación en vivo en Impromptu de Andrew Sorensen. Los dos primeros minutos (1:56) son silenciosos, mientras el intérprete escribe el programa que producirá la introducción de la pieza. A partir de entonces, modifica el código sobre la marcha para evolucionar la composición.

Improvisado

El núcleo de Impromptu ha sido lanzado como Extempore bajo una licencia de estilo BSD. Se ejecuta tanto en Linux como en Mac OS X. Incluye el intérprete Scheme, el compilador Extempore Language y el programador. Los enlaces a las bibliotecas de Apple están ausentes, pero el entorno puede interactuar con bibliotecas dinámicas.

Ver también

Referencias

Papeles academicos

Otras fuentes

enlaces externos