Fortress (lenguaje de programación)


De Wikipedia, la enciclopedia libre
  (Redirigido desde el lenguaje de programación Fortress )
Saltar a navegación Saltar a búsqueda

Fortaleza es un experimental descontinuado lenguaje de programación para la computación de alto rendimiento , creado por Sun Microsystems con financiación de DARPA 's de alta productividad Sistemas de Computación proyecto. Uno de los diseñadores del lenguaje fue Guy L. Steele Jr. , cuyo trabajo anterior incluye Scheme , Common Lisp y Java .

Diseño

El nombre "Fortress" tenía la intención de connotar un Fortran seguro , es decir, "un lenguaje para computación de alto rendimiento que proporciona abstracción y seguridad de tipos a la par con los principios del lenguaje de programación moderno". [1] Las características del lenguaje incluyen paralelismo implícito , soporte Unicode y sintaxis concreta similar a la notación matemática . El lenguaje no fue diseñado para ser similar a Fortran. Sintácticamente, se parece más a Scala , Standard ML y Haskell . Fortress fue diseñado desde el principio para tener múltiples hojas de estilo sintácticas. El código fuente se puede representar como texto ASCII , enUnicode , o como una imagen bonita. Esto permitiría el soporte de símbolos matemáticos y otros símbolos en la salida renderizada para facilitar la lectura. Una herramienta basada en emacs llamada fortify transforma el código fuente de Fortress basado en ASCII en salida LaTeX . [2]

Fortress también fue diseñado para ser altamente paralelo y tener una rica funcionalidad contenida en bibliotecas, extraídas de Java. Por ejemplo, la forconstrucción de bucle fue una operación paralela, que no necesariamente iteraría de una manera estrictamente lineal, dependiendo de la implementación subyacente. Sin embargo, la forconstrucción era una función de biblioteca y podría ser reemplazada por otra versión del gusto del programador en lugar de incorporarse al lenguaje.

Los diseñadores de Fortress hicieron su sintaxis lo más cercana posible al pseudocódigo y analizaron cientos de artículos, cursos, libros y revistas de informática y matemáticas utilizando pseudocódigo para extraer los patrones de uso comunes del idioma inglés y la notación matemática estándar cuando se usa para representar algoritmos en pseudocódigo. . Luego hicieron que el compilador intentara mantener una correspondencia uno a uno entre el pseudocódigo y el ejecutable Fortress. [3] [se necesita una mejor fuente ]

Historia

Fortress fue uno de los tres idiomas creados con fondos del proyecto High Productivity Computing Systems ; los otros eran X10 de IBM y la capilla de Cray, Inc . En noviembre de 2006, cuando DARPA aprobó el financiamiento para la tercera fase del proyecto HPCS, se financiaron X10 y Chapel, pero Fortress no, [4] lo que generó incertidumbre sobre el futuro de Fortress.

En enero de 2007, Fortress fue lanzado como código abierto. [5] La versión 1.0 de Fortress Language Specification fue lanzada en abril de 2008, junto con una implementación compatible dirigida a la máquina virtual Java .

En julio de 2012, Steele anunció que el desarrollo activo en Fortress cesaría después de un breve período de liquidación, citando complicaciones con el uso del sistema de tipos de Fortress en máquinas virtuales existentes. [6]

Ejemplo: ¡Hola mundo!

Esta es la versión de la Fortaleza del programa arquetípico Hola Mundo , como se presenta en la Tarjeta de Referencia de la Fortaleza : [2]

componente hola
exportar ejecutable
run () = println ("¡Hola, mundo!")
fin

La declaración de exportación hace que el programa sea ejecutable y cada programa ejecutable en Fortress debe implementar la función run () . El archivo donde se guarda el programa para la compilación debe tener el mismo nombre que el especificado en la declaración del componente inicial . La función println () es la que genera el mensaje "¡Hola, mundo!" palabras en la pantalla.

Ver también

  • Espacio de direcciones global particionado
  • SISAL

Referencias

  1. ^ Eric Allen; David Chase; Joe Hallett; Victor Luchangco; Jan-Willem Maessen; Sukyoung Ryu; Guy L. Steele Jr .; Sam Tobin-Hochstadt; et al. (31 de marzo de 2008). "The Fortress Language Specification: Versión 1.0" (PDF) . research.sun.com . Sun Microsystems. Archivado desde el original (PDF) el 20 de enero de 2013.
  2. ^ a b "Tarjeta de referencia de Project Fortress" (PDF) . Java.net . Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 24 de septiembre de 2016 .
  3. ^ "pseudocódigo - ¿Estándares para pseudocódigo?" . Desbordamiento de pila. 2009-10-16 . Consultado el 24 de septiembre de 2016 .
  4. ^ Josh Simons (22 de noviembre de 2006). "Sun no seleccionado para HPCS fase III: mis pensamientos" . El ombligo de Narciso . Archivado desde el original el 6 de enero de 2012, a través de blogs.oracle.com.
  5. ^ "Lo que es genial de Fortress" . gbcacm.org . Capítulo del Gran Boston de la ACM. Archivado desde el original el 2 de agosto de 2012.
  6. Gls-Oracle (20 de julio de 2012). "Fortaleza terminando" . Proyecto Fortaleza . Archivado desde el original el 24 de septiembre de 2016, a través de blogs.oracle.com.

enlaces externos

  • Sitio web de Project Fortress
  • Cronograma activo de implementación de especificaciones y referencias
  • The Fortress Language Specification (la última versión es 1.0, 31 de marzo de 2008)
  • The Soul of Fortress - Entrevista con el desarrollador de Fortress Guy Steele
  • Inicio del proyecto de código abierto de Fortress (licencia BSD)
  • Grupo de investigación de lenguajes de programación de Sun
  • Publicaciones y especificaciones de Fortress
  • Complemento Fortress para Eclipse (alfa)
  • Preguntas frecuentes sobre la fortaleza
  • Diapositivas del tutorial de la fortaleza
  • Listas de correo de la fortaleza
  • Lambda the Ultimate artículo
  • El reemplazo de Fortran de Sun pasa a ser de código abierto (CNET News.com, 12 de enero de 2007)
  • Presentación de la fortaleza
  • Paralelo por defecto: una presentación de descripción general de la fortaleza anotada
Obtenido de " https://en.wikipedia.org/w/index.php?title=Fortress_(programming_language)&oldid=1021803547 "