2010-01-14 11 views
15

Estoy haciendo un estudio de comercio para el desarrollo de Ada en Linux. ¿Tiene alguna buena compilación/recomendaciones de sistema operativo?compiladores de Ada para Linux

Hasta ahora, tengo GNAT de AdaCore se ejecuta en CentOS 5.4, y tengo las solicitudes de licencia para Rational en Apex y Aonix ObjectAda.

Esto es un esfuerzo de portabilidad. La base de código original es Apex 3.0 en OSF1 4.0d.

¿Algo más que debería considerar? Idealmente, sería un entorno compatible.

+5

Una reescritura no es una opción. Son 1.5 millones de líneas de código. – Dave

+1

GNAT se ejecuta en Linux, en general, por lo que no debe preocuparse mucho por una distribución en particular. De hecho, la versión FSF de GNAT se distribuye como parte de todas las principales distribuciones de Linux. Una compatibilidad con AdaCore GNAT podría ser un poco más limitada de distribución, tendría que consultar con ellos. –

+1

Ah, y yo solo porté 1.2 MSLOC de Ada (GNAT) y aproximadamente 200 KSLOC de C (gcc) de Silicon Grahics/IRIX a PC/Linux durante un período de 4 meses hace un par de años. El Ada tomó aproximadamente 2 semanas, perdí mucho pelo sobre el resto ... (:-) –

Respuesta

12

Una cuestión que debe tomar en consideración es determinar en qué medida el sistema que está siendo portado utiliza paquetes suministrados por el proveedor para realizar su función. Lo que he visto con los sistemas más antiguos y grandes, especialmente los de Apex, es una propensión de los gurús del lenguaje durante su desarrollo a haber decidido que el Ada vainilla simplemente no era lo suficientemente bueno, y atarse a todos estos paquetes suministrados por proveedores. Si eso es lo que hace su sistema en este momento, es un fuerte argumento para actualizar dentro del proveedor y seguir con Apex (todas las demás cosas son en su mayoría iguales).

Cada vez que he hecho puertos de dichos sistemas, si tengo la oportunidad, he hecho todo lo posible para eliminar todas las cosas suministradas por el proveedor: nueve de cada diez reemplazan las cosas específicas del proveedor con las implementaciones vanda Ada funcionó igual de bien, y ya no tiene que lidiar con las peculiaridades de un paquete específico del compilador. Además, aumenta la portabilidad y la capacidad de mantenimiento del sistema, lo que le permite adaptarse mejor a los cambios futuros.

+0

Gracias, este es un excelente consejo para considerar. Exceptuando cualquier recomendación de compilador nueva que valga la pena en los próximos días, marcaré esto como la respuesta. – Dave

+0

P.S Veo por tu perfil que estás en Alabama y respondes las preguntas de Ada. Tienes que estar en Hunstville, ¿sí? – Dave

+0

Lo tengo en 1 :-) ¿Quieres externalizar el puerto? –

4

Siempre hay chispa, pero creo que es una versión especializada/subjuegos del lenguaje Ada. Es posible que desee ponerse en contacto con SigAda o el grupo de usuarios de Ada para ver si hay alguna otra idea.

Honestamente, sin embargo, GNAT es un gran conjunto de herramientas. Puede usar GNATBench, una interfaz de Eclipse o GPS, un GTK + IDE ligero, para interactuar con las herramientas de GNAT.

+0

Sí, GNAT se ve bien hasta ahora. Voy a echar un vistazo a SPARK, gracias. – Dave

+0

Tienes razón; SPARK es un subconjunto o superconjunto de Ada. Gracias de cualquier manera. – Dave

+1

SPARK es, técnicamente, un sistema unificado de desarrollo y verificación del sistema que utiliza un subconjunto de Ada como su idioma de trabajo. –

1

Otros compiladores yo sepa son Green Hills AdaMULTI (por diversas RTOS), y DDC-I's SCORE (también para diferentes RTOS)

+0

Sí, encontré esas, pero no hay soporte de Linux que pueda ver. Eso es sorprendente para mí. – Dave

+0

No hay soporte de Windows real, a excepción de los simuladores de destino. Los sistemas operativos de productos básicos no son su mercado, no creo. –