Fortress es un lenguaje de programación experimental descontinuado para computación de alto rendimiento , creado por Sun Microsystems con financiación del proyecto de Sistemas de Computación de Alta Productividad de la Agencia de Proyectos de Investigación Avanzada de Defensa ( DARPA ) . 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 pretendía evocar 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 de los lenguajes de programación modernos». [ 1 ] Las características del lenguaje incluían paralelismo implícito , compatibilidad con Unicode y una sintaxis concreta similar a la notación matemática . El lenguaje no fue diseñado para ser similar a Fortran. Sintácticamente, se asemeja más a Scala , Standard ML y Haskell . Fortress fue diseñado desde el principio para tener múltiples hojas de estilo sintáctico. El código fuente se puede renderizar como texto ASCII , en Unicode o como una imagen formateada. Esto permitiría la compatibilidad con 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 una salida LaTeX . [ 2 ]
Fortress también se diseñó para ser altamente paralelo y contar con una amplia funcionalidad integrada en bibliotecas, inspiradas en Java. Por ejemplo, la forestructura de bucle era una operación paralela que no necesariamente iteraba de forma estrictamente lineal, dependiendo de la implementación subyacente. Sin embargo, esta forestructura era una función de biblioteca y podía reemplazarse por otra versión a gusto del programador, en lugar de estar integrada en el lenguaje.
Los diseñadores de Fortress hicieron que su sintaxis fuera lo más parecida posible al pseudocódigo y analizaron cientos de artículos, cursos, libros y revistas de informática y matemáticas que utilizaban pseudocódigo para extraer los patrones de uso comunes del idioma inglés y la notación matemática estándar cuando se utilizaban para representar algoritmos en pseudocódigo. Luego crearon el compilador intentando mantener una correspondencia uno a uno entre el pseudocódigo y el ejecutable de Fortress. [ 3 ]
Historia
Fortress fue uno de los tres lenguajes creados con fondos del proyecto High Productivity Computing Systems ; los otros fueron X10 de IBM y Chapel de Cray, Inc. En noviembre de 2006, cuando DARPA aprobó la financiación para la tercera fase del proyecto HPCS, X10 y Chapel recibieron financiación, pero Fortress no, [ 4 ] lo que generó incertidumbre sobre el futuro de Fortress.
En enero de 2007, Fortress se lanzó como código abierto. [ 5 ] La versión 1.0 de la especificación del lenguaje Fortress se lanzó 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 de Fortress cesaría después de un breve período de transició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 Fortress del programa arquetípico "¡Hola, mundo!" , tal como se presenta en la tarjeta de referencia de Fortress : [ 2 ]
componente hola Exportar ejecutable run() = println("¡Hola, mundo!") fin La instrucción `export` hace que el programa sea ejecutable , y todo programa ejecutable en Fortress debe implementar la función `run()` . El archivo donde se guarda el programa para su compilación debe tener el mismo nombre que el especificado en la instrucción del componente inicial . La función `println()` es la que imprime el mensaje "¡Hola, mundo!" en la pantalla.
Véase también
Referencias
- ↑ 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). "Especificación del lenguaje Fortress: Versión 1.0" (PDF) . research.sun.com . Sun Microsystems. Archivado del original (PDF) el 20 de enero de 2013.
- 1 2 "Tarjeta de referencia de Project Fortress" (PDF) . Java.net . Archivado del original (PDF) el 4 de marzo de 2016. Consultado el 24 de septiembre de 2016 .
- ↑ "pseudocódigo - ¿Estándares para pseudocódigo?" . Stack Overflow. 16 de octubre de 2009. Consultado el 24 de septiembre de 2016 .
- ↑ Josh Simons (22 de noviembre de 2006). "Sun no fue seleccionado para la Fase III del HPCS: Mis reflexiones" . El ombligo de Narciso . Archivado del original el 6 de enero de 2012 a través de blogs.oracle.com.
- ↑ "¿Qué tiene de genial Fortress?" . gbcacm.org . Capítulo del Gran Boston de la ACM.
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ Gls-Oracle (2012-07-20). "Fortress Wrapping Up" . Proyecto Fortress . Archivado del original el 24-09-2016 – vía blogs.oracle.com.
Enlaces externos
- Archivo del sitio web del proyecto
- Cronograma activo de especificación e implementación de referencia
- lenguajes de programación de matrices
- Lenguajes de programación concurrentes
- Lenguajes de programación descontinuados
- Familia de lenguajes de programación Fortran
- Lenguajes de programación de la JVM
- Lenguajes de programación numérica
- Lenguajes de programación que admiten unidades de medida
- Lenguajes de programación creados en 2006
- Software que utiliza la licencia BSD.