stringtranslate.com

Subtexto (lenguaje de programación)

Tablas esquemáticas. Versión alfa del entorno Subtext, que ilustra los "condicionales polimórficos" únicos presentes en el IDE.

Subtext es un lenguaje y entorno de programación moderadamente visual para escribir software de aplicación . Es un intento experimental de investigación para desarrollar un nuevo modelo de programación , llamado Programación Centrada en Ejemplos, que trata 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 obtener retroalimentación frecuente. Se pretende que con el tiempo se desarrolle lo suficiente como para convertirse en un lenguaje práctico para el uso diario. Está previsto que sea un software abierto; la licencia aún no se ha determinado.

Subtext fue creado por Jonathan Edwards, quien presentó un artículo sobre el lenguaje a OOPSLA . Fue aceptado como parte de la conferencia de 2005.

Ambiente

Primera versión del entorno Subtext con el estado actual del programa visible. Los datos de los empleados (como "salario") se modifican visiblemente después de invocar el método "Raise" haciendo clic en su "flecha de invocación", y el estado hipotético (que se muestra dentro del método Raise) también se actualiza.
Versión preliminar del entorno Subtext con entradas de consola interactivas.

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

Los programas Subtext se declaran y manipulan (o mutan) añadiendo y vinculando elementos de varios tipos a un árbol de sintaxis e introduciendo valores o nombres según sea necesario, en lugar de escribir programas textuales. Debido al diseño del lenguaje y el entorno 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 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 funcional 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] La entrada de consola ("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.

Coherencia

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

Los efectos secundarios son a la vez la esencia y la pesadilla de la programación imperativa. El programador debe coordinar cuidadosamente las acciones para gestionar los efectos secundarios que se producen entre sí. Esta coordinación es compleja, propensa a errores y frágil. La reacción coherente es un nuevo modelo de computación basada en cambios que coordina los efectos automáticamente. La coordinación automática de acciones permite al programador expresar qué hacer, no cuándo hacerlo.

—  Jonathan Edwards, Reacción coherente , MIT CSAIL
Logotipo del lenguaje de programación Coherence

Los cambios de estado desencadenan eventos llamados reacciones, que a su vez cambian otros estados. Un orden de ejecución coherente es aquel en el que cada reacción se ejecuta antes que cualquier otra que se vea afectada por sus cambios. Un orden coherente se descubre de manera iterativa detectando incoherencias a medida que ocurren y rastreando sus efectos. El componente fundamental de la coherencia es el árbol mutable tipificado dinámicamente. El mecanismo de abstracción fundamental es el árbol virtual, cuyo valor se calcula de manera diferida y cuyo comportamiento se genera mediante reacciones coherentes. [4]

Referencias

Citado
  1. ^ Introducción a Subtext, E/S y estado mutable, primer video de demostración del entorno Subtext
  2. ^ Copia y pega de primera clase, borrador del artículo MIT CSAIL de Jonathan Edwards en 2006.
  3. ^ Página de inicio de Coherence, estados continuación de Subtext
  4. ^ DSpace@MIT: Reacción coherente, Archivo digital CSAIL, Informes técnicos

Enlaces externos