Absoft Corporation fue una empresa de software estadounidense activa desde 1980 hasta 2022. Era más conocida por su conjunto de compiladores Fortran para los sistemas operativos Microsoft Windows , Apple Macintosh y Linux . [1] Los compiladores son compatibles con el código fuente en todas las plataformas. [2]
Todos ellos incluyen un depurador gráfico y un entorno de desarrollo integrado. El usuario controla la compatibilidad con subprocesos únicos y multiproceso paralelo e incluye cinco niveles de optimización, OpenMP, niveles de Speed Math del 0 al 9 y otras funciones avanzadas.
El 30 de septiembre de 2022, Absoft cesó sus operaciones. [3]
Los directores de Absoft, Peter Jacobson y Wood Lotz, se conocieron en la Universidad de Michigan . Juntos fundaron una tienda de audio, Absolute Sound, en 1975. En 1979, notaron la aparición de microcomputadoras de 16 bits y vieron un mercado para compiladores Fortran de alta calidad y crearon un compilador para el microprocesador Western Digital WD16 , que lanzaron comercialmente en 1980. Al principio se utilizó el nombre Absolute Software, pero se adoptó el nombre abreviado Absoft como marca comercial más práctica.
El primer gran éxito de ventas de Absoft fue un contrato de 500.000 dólares con Alpha Microsystems para los derechos de redistribución mundial de un compilador Fortran 77 compatible con su sistema operativo AMOS que utilizaba un procesador Motorola de la serie 68000. En ese momento, Absoft todavía estaba formada únicamente por los dos fundadores, por lo que este éxito le permitió a la empresa seguir siendo independiente, añadir personal y trasladarse a unas oficinas más grandes. A continuación, se firmaron otros contratos OEM para compiladores Fortran para diversas variantes de Unix . Los fundadores contrataron a un gerente para Absolute Sound, que continuó con su éxito y se expandió a tres tiendas; la cadena se vendió a una cadena de equipos de alta fidelidad más grande en 1988.
El DoD publicó la norma MIL-STD-1753 en 1978 para estandarizar algunas características de Fortran en tiempo real industrial como extensiones de Fortran 77. [4] [5] Esta extensión agregó IMPLICIT NONE
, DO WHILE
, END DO
para reemplazar CONTINUE
como la declaración para finalizar DO
bucles y funciones intrínsecas para probar y configurar bits. La norma MIL-STD-1753 fue absorbida por la norma ISO/IEC 1539:1991 y las normas ISO/IEC posteriores son compatibles con la norma MIL-STD-1753, y la norma MIL-STD-1753 fue descartada por ser superflua en 1995. [6]
Cuando Alpha Micro lanzó su microcomputadora basada en MC68000, Absoft amplió su oferta a Motorola y Macintosh . La disponibilidad de máquinas basadas en MD68000 hizo que Unix de 32 bits fuera viable en máquinas pequeñas, y Absoft ofreció compiladores Fortran para máquinas Unix de Data General , HP , Sun Microsystems , Tektronix y otros.
En 1985, Microsoft licenció MacFortran, que consistía en un compilador nativo ANSI FORTRAN 77 y un depurador gráfico. Poco después, Microsoft contrató a Absoft para desarrollar Microsoft Fortran para Macintosh y un compilador Microsoft BASIC que fuera 100% compatible sintácticamente con el intérprete Microsoft BASIC existente en Macintosh. Apple fue uno de los primeros clientes de Fortran para Mac, con un gran pedido para la Universidad de Drexel . Se comercializaron variaciones de los compiladores Fortran y BASIC para Macintosh bajo el nombre de A/C Fortran y A/C Basic para Amiga . A continuación, aparecieron los compiladores Fortran para Linux / Unix y Microsoft Windows .
Los compiladores Fortran para Mac y Amiga incluían un entorno de desarrollo integrado (IDE) y un generador de perfiles. El IDE se agregó a los compiladores para Windows y está incluido en todos los compiladores Fortran de Absoft posteriores.
Durante la década de 1990, la ampliación de las líneas de productos y la disponibilidad de Internet permitieron a Absoft crear una base de revendedores en todo el mundo. Durante un tiempo, a mediados de la década de 1990, Absoft contaba con un representante a tiempo completo en California, pero la expansión del uso de Internet eliminó ese puesto y permitió que todo se gestionara desde una única ubicación.
Los detalles sobre los hitos desde 2006 están disponibles en la página de Comunicados de Prensa del sitio web de Absoft. [7]
Absoft Pro Fortran está disponible (junio de 2018) en cinco versiones:
Las versiones para Windows, Mac y Linux de 64 bits producen archivos ejecutables de 32 o 64 bits según la opción del usuario. La versión de 32 bits para Linux produce archivos ejecutables de 32 bits.
Todas las versiones ofrecen las bibliotecas IMSL como una opción con costo adicional.
GINO GUI Lite está disponible como componente opcional sin costo adicional. GINO GUI y gráficos, y Winteracter GUI Toolset también están disponibles por un costo adicional.
Las opciones de paralelización y optimización de Absoft Pro Fortan se ilustran en la captura de pantalla de la página de opciones correspondiente a la derecha. Absoft Pro Fortran ofrece cinco niveles de optimización clásica y opciones de Speed Math del 0 al 9.
Las opciones de paralelización incluyen la paralelización automática como una casilla de verificación con indicaciones gráficas de los grados de éxito en el código fuente en el panel del editor como colores de resaltado. OpenMP 3.0 también está disponible como una casilla de verificación. Velocidad OpenMP está disponible como ninguna o en los niveles 0 a 5.
Absoft ofrece soporte para MPI ( MPICH 2 y Open MPI ). ScaLAPACK y BLACS [15] se entregan con todas las plataformas. IMSL 7.0, integrado pero disponible como licencia independiente desde el lanzamiento de la versión 7.0 en 2011, proporciona MPICH2.
Para ejecutar programas que utilizan paralelización en máquinas que no tienen instalado Absoft Fortran, es necesario incluir pthreadVC2.dll
. pthreadVC2_64.dll
Esta biblioteca se distribuye bajo la licencia LGPL 2.1.
Algunas extensiones de Fortran 2003 y Fortran 2008 [16] se han implementado a partir de abril de 2014 con la versión 14.0.3. [17]
Algunas extensiones de Fortran 2003 están disponibles en las versiones actuales de Absoft Pro Fortran. Entre ellas se encuentran:
ISO_C_BINDING
yISO_FORTRAN_ENV
ACOS
, ASIN
, y ATAN
los genéricos aceptan argumentos complejosCOSH
, SINH
, y TANH
los genéricos aceptan argumentos complejosMOVE_ALLOC
declaraciónGET_COMMAND
, GET_COMMAND_ARGUMENT
yCOMMAND_ARGUMENT_COUNT
GET_ENVIRONMENT_VARIABLE
FLUSH
declaraciónIS_IOSTAT_END
yIS_IOSTAT_EOR
ENUMERATOR
yENUM
NEW_LINE
ABSTRACT INTERFACE
PROCEDURE
punterosTYPE
inicialización mejoradaPOINTER
reasignación de límitesASYNCHRONOUS
especificadores de E/SIOMSG=string_variable_for_error_text_string
Especificador de sentencia de E/SVALUE
Atributo de declaración y enunciadoA partir de abril de 2014, se encuentran disponibles varias extensiones de Fortran 2008. Habrá más disponibles con actualizaciones y nuevas versiones. Las extensiones disponibles actualmente incluyen, entre otras:
ACOSH
, ASINH
, ATANH
intrínsecosHYPOT
intrínsecoLEADZ
y TRAILZ
intrínsecosPOPCNT
y POPPAR
intrínsecosCONTAINS
sección vacíaBESSEL_J0
, BESSEL_J1
, y BESSEL_JN
funciones intrínsecasBESSEL_Y0
, BESSEL_Y1
, y BESSEL_YN
intrínsecosBGE
, BGT
, BLE
, y BLT
intrínsecosDSHIFTL
y DSHIFTR
intrínsecosSHIFTA
, SHIFTL
y SHIFTR
intrínsecosMASKL
, MASKR
y MERGE_BITS
intrínsecosEFC_SCALED
, GAMMA
y LOG_GAMMA
intrínsecosEXECUTE_COMMAND_LINE
intrínsecoIS_IOSTAT_END
y IS_IOSTAT_EOF
intrínsecosSELECTED_CHAR_KIND
intrínsecoINTENT
Atributo de punteroTodos estos paquetes están incluidos en el IDE y totalmente integrados en el compilador. El costo está incluido en el precio de compra, excepto IMSL y GINO o Winteracter, que se venden por separado. Los paquetes instalados se pueden seleccionar para su inclusión en una compilación marcando las casillas de verificación en una pestaña del menú Opciones del proyecto, como se ilustra en la captura de pantalla de la derecha. Algunos de ellos se detallan a continuación.
El depurador gráfico FX3 se incluye con todas las versiones de Fortran de Absoft Pro. El depurador gráfico FX3 es compatible con GNU Compiler Collection (gcc) (en Macintosh y Linux), Apple C, Microsoft Visual Studio C/C++ (solo Windows) y lenguaje ensamblador en las tres plataformas.
GINO [18] y Winteracter [19] [20] son API de terceros opcionales para crear gráficos 2D y 3D complejos y aplicaciones GUI utilizando programas Fortran. GINO Lite (solo 32 bits, algunas restricciones) se incluye con Absoft Pro Fortran para Windows sin costo adicional y es ideal para la mayoría de los usuarios. Absoft ofrece licencias en todas las plataformas para versiones completas de GINO o Winteracter que incluyen soporte de 64 bits, no tienen limitaciones y están integradas con la suite Absoft Pro Fortran.
Absoft es el único proveedor comercial de Fortran que ofrece paquetes de bibliotecas numéricas IMSL con compiladores Fortran para Windows, Mac y Linux. Absoft es el único proveedor de IMSL para MacOS. Absoft vende licencias para IMSL y documentación como códigos de desbloqueo que permiten la liberación de bibliotecas y documentación IMSL desde el software de instalación de Absoft. Las versiones actuales se entregan con IMSL 7, la última versión.
Para utilizar en la portabilidad de código escrito en sistemas UNIX o VAX/VMS , hay bibliotecas de elementos intrínsecos de Fortran específicos de UNIX y VAX disponibles marcando una casilla en la ventana Opciones de proyecto, Bibliotecas/Herramientas. Otras extensiones importantes para la portabilidad desde otras plataformas, como los punteros Cray , se incluyen en Absoft Pro Fortran como parte del compilador.
El paquete de álgebra lineal ( LAPACK ) con subprogramas de álgebra lineal básica ( BLAS ), o BLAS solo, se ofrecen como bibliotecas vinculables.
Las bibliotecas de formato de datos jerárquicos HDF4 versión 4.2.8 y HDF5 versión 1.8.9 se pueden incluir marcando una casilla en la ventana Opciones de proyecto, Bibliotecas/Herramientas.
La versión 4.3 del Formulario de datos comunes de red ( NetCDF ) está disponible marcando una casilla.
NVIDIA fabrica tarjetas gráficas que utilizan conjuntos de unidades de procesamiento gráfico CUDA ( Complete Unified Device Architecture ) . Se puede incluir una versión especial de BLAS en las bibliotecas de enlace marcando una casilla en la ventana Opciones de proyecto, Bibliotecas/Herramientas.
CAPS es un compilador de múltiples núcleos para utilizar matrices de núcleos CUDA en una GPU para realizar cálculos.
PLplot 5.9 está disponible marcando una casilla en la ventana Bibliotecas/Herramientas de Opciones de proyecto. Hay enlaces disponibles tanto para precisión simple como doble, desde FORTRAN 77 o Fortran 95 o para llamadas desde Microsoft WIN32 .
Para todas las plataformas, Absoft Pro Fortran se vincula con bibliotecas estáticas o dinámicas del usuario proporcionadas por el sistema, otros compiladores o el propio usuario. Absoft Pro Fortran tiene la capacidad de generar bibliotecas tanto estáticas como dinámicas.
Todos los compiladores de Absoft se pueden invocar y controlar completamente desde la línea de comandos . Dado que Absoft ha utilizado el formato de enlazador de sistema para todas las plataformas desde la versión 10.0 en 2005, los archivos de objeto de C/C++ se pueden vincular con los archivos de objeto del compilador de Absoft, y la integración con los compiladores de C/C++ más comunes se realiza mediante configuraciones en el IDE de Absoft.
El IDE de Absoft está programado para utilizar los compiladores Fortran de Absoft y se puede personalizar para utilizar un compilador C/C++ que produzca archivos de objetos compatibles con el enlazador del sistema.
Las opciones de interfaz gráfica de usuario específicas de Absoft permiten utilizar programas compilados con Absoft Pro Fortran mediante el ratón y gestionar las ventanas emergentes de la misma forma que se utilizan las aplicaciones con interfaz gráfica de usuario con ventanas. El uso de las funciones de interfaz gráfica de usuario específicas de Absoft es portátil entre plataformas que utilizan Absoft Pro Fortran en cada una de ellas, pero otros compiladores y plataformas no pueden utilizar estas funciones, y el código de funciones específicas de Absoft no será reconocido por otros compiladores.
La opción Microsoft/Macintosh Runtime Window Environment (MRWE) [21] utiliza un programa principal general Fortran 77 que llama a las bibliotecas GUI del sistema para producir una aplicación con ventanas. El entorno MRWE se selecciona como un tipo ejecutable en las opciones de IDE para crear una aplicación. El programa MRWE predeterminado asigna la entrada y la salida a una ventana desplazable similar a un símbolo del sistema, pero el usuario conserva toda la salida y puede guardarla como un archivo de texto después de que el programa sale. Se proporcionan ganchos en el programa GUI MRWE para agregar llamadas al sistema de Windows para mejorar la interfaz de usuario, lo que brinda la posibilidad de un programa de Windows con todas las funciones escrito completamente en Fortran. El código fuente de MRWE está disponible como punto de partida para una aplicación GUI Win32 completamente Fortran. MRWE fue reemplazado por AWE en 2012, pero aún está disponible como un entorno de destino para programas heredados.
El entorno de ventana de Absoft (AWE [22] ) se obtiene seleccionando el tipo de aplicación en la GUI. Una vez hecho esto, AWE_Preferences.f95
se agrega un archivo a su proyecto. Este archivo Fortran incluye pequeños procedimientos llamados durante la inicialización que configuran AWE definiendo el tamaño de la pila para la ventana interactiva, el tamaño y el comportamiento de la ventana y la fuente.
Una aplicación AWE puede mejorar los elementos de menú de la ventana de consola interactiva que se pueden utilizar para ejecutar unidades de programa y salir, lo que proporciona una interfaz gráfica de usuario para una aplicación interactiva. Las unidades de programa pueden funcionar mediante ventanas emergentes, menús y pantallas, de modo que no se utiliza en absoluto la E/S de la consola tradicional y, de este modo, se proporciona una aplicación totalmente controlada por interfaz gráfica de usuario Fortran en las tres plataformas compatibles.
Las aplicaciones AWE distribuidas para su uso sin el compilador Absoft deben libgomp.dll
incluir archivos ejecutables de 32 bits o libgompx64.dll
de 64 bits. Estas DLL se publican bajo la Licencia Pública General GNU de la Free Software Foundation (versión 3 con excepción de biblioteca GCC).
Se accede a las ventanas emergentes interactivas, los gráficos y las hojas de cálculo mediante una use AWE_Interfaces
declaración. La distribución de ejecutables con estas características requiere la inclusión de QtCore4.dll
y QtGui4.dll
. Qt [23] [24] tiene licencia LGPL v. 2.1.
La compilación como una aplicación AWE asigna la entrada y salida estándar a una ventana desplazable similar a un símbolo del sistema, pero el usuario conserva toda la salida y tiene la opción de guardarla como un archivo de texto después de que el programa sale. Las otras características, que se detallan a continuación, se habilitan mediante el uso de una aplicación AWE. Se puede escribir una aplicación AWE interactiva que no utilice la consola interactiva en absoluto, dejando esta ventana disponible para su uso como registro de ejecución.
Estas funciones se implementan mediante llamadas a procedimientos en el AWE_Interfaces
módulo. La codificación es aproximadamente la misma que la que se necesitaría para una interfaz de ventana de línea de comandos interactiva. [25]
Los gráficos de barras, circulares y XY se admiten mediante llamadas a procedimientos en el AWE_Interfaces
módulo. Los valores predeterminados proporcionan un uso simplificado, pero hay una gran flexibilidad en los colores de salida, los colores y anchos de línea, el fondo, etc., si se desea. [26]
Los gráficos tridimensionales, incluidos los gráficos xyz en perspectiva y los gráficos de contorno, también se admiten mediante llamadas a procedimientos en el AWE_Interfaces
módulo para la versión 2015 y posteriores.
En AWE se pueden crear ventanas de hojas de cálculo para mostrar matrices de rango 2. Se proporcionan subrutinas para abrir, cerrar, leer, escribir y etiquetar hojas de cálculo. Los comandos de menú, descritos anteriormente, se pueden agregar a un programa AWE para manipular los datos en la hoja de cálculo. [27]
Una página en el sitio web de Absoft, [28] enumera más de 180 usuarios con licencias corporativas y gubernamentales. Entre ellos se encuentran Apple Inc. , CERN , Laboratorio Nacional Lawrence Livermore , Centro de Investigación Lewis de la NASA , Centro de Guerra Submarina Naval , Laboratorio de Investigación Naval , Centro de Guerra de Superficie Naval , Raytheon , Seagate Technology , Toshiba Corporation , Laboratorio Phillips de la USAF , Boeing Defense and Space , Canon, Inc. , Nikon Corporation , Computer Sciences Corporation , General Motors , Ford Motor Company , Toyota Motor Company , Hewlett Packard , Instituto de Análisis de Defensa , Lockheed Martin , Laboratorios Nacionales de Los Álamos , McDonnell Douglas , Laboratorios Lincoln del MIT , Mitsubishi Heavy Industries , SRI International , Texas Instruments , Fuerza Aérea de EE. UU ., Wolfram Research , Advanced Micro Devices , Laboratorios Nacionales Argonne , Laboratorios AT&T Bell , Compañía de Aviones Militares Boeing , Laboratorio Nacional Brookhaven , Laboratorios CSDraper , Centro de Investigación David Sarnoff , GE Aerospace , Centro de Investigación IBM TJ Watson , Intel Corporation. , Laboratorio de Propulsión a Chorro , Laboratorio Nacional Lawrence Berkeley , Loral Space & Range Systems , Mitre Corporation , Centro de Investigación Langley de la NASA y muchos otros.