Subtexto (lenguaje de programación)


Subtext es un lenguaje y entorno de programación moderadamente visual , para escribir software de aplicación . Es un intento de investigación experimental para desarrollar un nuevo modelo de programación , llamado Programación centrada en ejemplos, al tratar los bloques copiados como prototipos de primera clase, para la estructura del programa. Utiliza texto en vivo, similar a lo que ocurre en las hojas de cálculo cuando los usuarios actualizan las celdas, para recibir comentarios frecuentes. Está destinado a desarrollarse lo suficiente como para convertirse en un lenguaje práctico para el uso diario. Está previsto que sea software abierto; la licencia aún no está determinada.

El subtexto fue creado por Jonathan Edwards, quien envió un documento sobre el lenguaje a OOPSLA . Fue aceptado como parte de la conferencia de 2005.

Las primeras vistas previas en video del entorno de Subtext se lanzaron alrededor de 2006, [1] que demostraron la semántica de los programas de Subtext y la estrecha integración con el entorno y el tiempo de ejecución de Subtex.

Los programas de subtexto se declaran y manipulan (o mutan) agregando y vinculando elementos de varios tipos a un árbol de sintaxis e ingresando valores o nombres según sea necesario, en lugar de escribir programas textuales. Debido al diseño del lenguaje y entorno de Subtext, no hay distinción entre la representación de un programa y su ejecución. Al igual que las hojas de cálculo, los programas de Subtext son ejecuciones en vivo dentro de un entorno y tiempo de ejecución, y la programación es la manipulación directa de estas ejecuciones a través de un entorno gráfico . A diferencia de los lenguajes de programación funcionales típicos , Subtext tiene una semántica simple y es fácilmente aplicable a sistemas reactivos que requieren estado mutable, E/S y concurrencia, bajo un modelo conocido como "Programación reactiva". [2] Consola La entrada ("invocaciones") se puede utilizar a través del flujo de datos dentro de un programa Subtext, lo que permite a los usuarios manipular valores de forma interactiva.

Una continuación y subconjunto del lenguaje Subtext que usa otros principios, [3] es Coherence , un lenguaje y entorno de programación experimental, que usa un nuevo modelo de computación impulsada por cambios llamado "reacción coherente", para coordinar los efectos y efectos secundarios de programas de forma interactiva a medida que se desarrollan. El lenguaje está especializado para software de aplicaciones interactivas y está siendo diseñado por el creador de Subtext, Jonathan Edwards, quien informa sobre su desarrollo mediante la publicación de libros blancos.

Los efectos secundarios son tanto la esencia como la ruina de la programación imperativa. El programador debe coordinar cuidadosamente las acciones para gestionar sus efectos secundarios entre sí. Tal coordinación es compleja, propensa a errores y frágil. La reacción coherente es un nuevo modelo de computación impulsada por cambios que coordina los efectos automáticamente. La coordinación automática de acciones permite que el programador exprese qué hacer, no cuándo hacerlo.


Cuadros esquemáticos. Una compilación alfa del entorno Subtext, que ilustra los "condicionales polimórficos" únicos presentes en el IDE.
Primera compilación del entorno Subtext con el estado actual del programa visible. Los datos del empleado (como "salario") se modifican visiblemente después de invocar el método "Aumentar" haciendo clic en su "flecha de invocación", y el estado hipotético (que se muestra dentro del método Aumentar) también se actualiza.
Primera compilación del entorno Subtext con entradas de consola interactivas.
Logotipo para el lenguaje de programación Coherence