Articulo de referencia

Subtexto (lenguaje de programación)

Tablas esquemáticas. Una versión alfa del entorno Subtext, que ilustra las singulares "condicionales polimórficas" presentes en el IDE. Subtext es un lenguaje y entorno de progr...

Tablas esquemáticas. Una versión alfa del entorno Subtext, que ilustra las singulares "condicionales polimórficas" presentes en el IDE.

Subtext es un lenguaje y entorno de programación visual, diseñado para escribir software de aplicación . Se trata de un proyecto experimental de investigación que busca desarrollar un nuevo modelo de programación , denominado Programación Centrada en Ejemplos (Ejemplos Centrados en Programación), que trata los bloques copiados como prototipos de primera clase para la estructura del programa. Utiliza texto en tiempo real, similar al que se genera en las hojas de cálculo cuando los usuarios actualizan las celdas, para proporcionar retroalimentación frecuente. Su objetivo es que, con el tiempo, alcance el nivel de desarrollo necesario para convertirse en un lenguaje práctico de uso diario. Está previsto que sea software libre; la licencia aún no se ha definido.

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

Versión preliminar del entorno Subtext con el estado actual del programa visible. Los datos del empleado (como el salario) cambian 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 controles interactivos de consola.

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) 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 de texto. Debido al diseño del lenguaje y 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 subconjunto del lenguaje Subtext que utiliza otros principios, [ 3 ] es Coherence , un lenguaje y entorno de programación experimental, que emplea 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 durante su desarrollo. El lenguaje está especializado en 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 documentos técnicos.

Los efectos secundarios son la esencia y, a la vez, la perdición de la programación imperativa. El programador debe coordinar cuidadosamente las acciones para gestionar sus efectos mutuos. Dicha 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 modifican otros estados. Un orden de ejecución coherente es aquel en el que cada reacción se ejecuta antes que cualquier otra afectada por sus cambios. Este orden se descubre iterativamente detectando incoherencias a medida que se producen y rastreando sus efectos. El componente fundamental de la coherencia es el árbol mutable con tipado dinámico. El mecanismo de abstracción fundamental es el árbol virtual, cuyo valor se calcula de forma diferida y cuyo comportamiento se genera mediante reacciones coherentes. [ 4 ]

Referencias

  • Programación centrada en ejemplos. Jonathan Edwards. En OOPSLA, octubre de 2004. Describe las mejoras en los entornos de desarrollo integrados (IDE) mediante técnicas avanzadas de interfaz de usuario para presentar los resultados de un programa durante su desarrollo, en lugar de que el programador interprete mentalmente el código. Capturas de pantalla de un prototipo de IDE con Eclipse ilustran las técnicas con ejemplos funcionales.
  • Subtexto: Descubriendo la simplicidad de la programación. Jonathan Edwards. En OOPSLA, octubre de 2005: Actas de la 20.ª conferencia anual ACM SIGPLAN sobre programación orientada a objetos, sistemas, lenguajes y aplicaciones.
  • Copiar y pegar de primera clase Jonathan Edwards. Borrador del documento MIT CSAIL de marzo de 2006. Descripción detallada e ilustraciones de los diversos elementos de programación funcional dentro del primer entorno Subtext, incluyendo el flujo de datos, asignaciones, invocación de "acciones", estado de datos actual e hipotético, transacciones concurrentes y operación de un agente de consola.
  • Reacción coherente, de Jonathan Edwards. Presentado en OOPSLA Onward '09. Documenta los inicios de un lenguaje de programación experimental, vagamente basado en Subtext, que utiliza la "reacción coherente", un nuevo modelo de computación basada en cambios, para coordinar automáticamente los efectos y efectos secundarios de los programas. (Informe)
Citado
  1. Introducción a Subtext, E/S y estado mutable , primera demostración en vídeo del entorno Subtext
  2. Copiar y pegar de primera clase , borrador del documento CSAIL del MIT por Jonathan Edwards en 2006.
  3. Página principal de Coherence , indica la continuación de Subtexto
  4. DSpace@MIT  : Reacción coherente , Archivo digital CSAIL, Informes técnicos
  • Subtextual.org , sitio web oficial de Subtext.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Subtext_(programming_language)&oldid=1319249278 "