lunes, 28 de marzo de 2011

Lengujes de Programacion en Tiempo Real (RTPL) (Tarea 4)



Un lenguaje de programación de sistemas de tiempo real debe facilitar la realización de sistemas
– concurrentes,
– fiables,
– puntuales.

Las características más importantes para la realización de programas en pequeña escala son
– léxico
– tipos de datos y objetos
– instrucciones
– subprogramas
– estructura de programas

ADA
Su nombre rinde honor a Lady Ada de Lovelanle, la cual fue colaboradora de Charles Babbage. El ADA, cuyo primer estándar se definió en 1983, se diseño y desarrolló por encargo del Departamento de defensa de los Estados Unidos, orientado a la programación y desarrollo de sistemas empotrados. ADA integra la noción de tipo abstracto y un mecanismo que permite expresar la cooperación y comunicación entre procesos. Sus principales características son:

-Soporta tecnologías de software avanzadas.
-Incluye concurrencia, tiempo real, acceso a recursos de bajo nivel y un potente tratamiento de excepciones.
-Transportabilidad, legibilidad, eficiencia, seguridad.

Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en chequeos en tiempo de ejecución (desactivables en beneficio del rendimiento). La sincronización de tareas se realiza mediante la primitiva rendezvous.

Es un lenguaje imperativo, descendiente de Pascal
– estructura en bloques
– fuertemente tipado
-Es un lenguaje pensado para realizar sistemas empotrados de gran dimensión

Dos versiones normalizadas
– Ada 83 (ISO 8652:1987)
– Ada 95 (ISO 8652:1995)

OCCAM
Occam es un lenguaje de programación imperativo y estructurado (al igual que Pascal). Fue desarrollado por David May en Inmos Limited, Bristol, Inglaterra, para desarrollar software para su línea de procesadores Transputers, existiendo también implementaciones para otras plataformas.El lenguaje Occam es un lenguaje asociado a la plataforma Transputer. No es adecuado para el desarrollo de grandes aplicaciones.

C
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.

Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

JAVA
Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

Las aplicaciones Java están típicamente compiladas en un bytecode, aunque la compilación en código máquina nativo también es posible. En el tiempo de ejecución, el bytecode es normalmente interpretado o compilado a código nativo para la ejecución, aunque la ejecución directa por hardware del bytecode por un procesador Java también es posible.

MODULA-2
El lenguaje Modula-2 es un descendiente del Modula y del Pascal. Las funciones de concurrencia y restricciones temporales se realizan en un módulo especifico denominado núcleo. Es un lenguaje que se muestra adecuado para el desarrollo de aplicaciones de tamaño pequeño a medio.

FORTRAN
cuenta con la ventaja de poseer un nivel de abstracción más alto, pero dependen del sistema operativo para las funciones de concurrencia y temporización, además suele ser necesario realizar algunas funciones en ensamblador. A este lenguajes se le añade una serie de funciones y mecanismos:

-Funciones para ejecución en tiempo real ( run time system, tareas…)
-Bibliotecas de funciones software que dan al programador un cierto nivel de comodidad a la hora de trabajar   con la interface del proceso o con el control del tiempo de ejecución.
-Compiladores que generen un código eficaz



1. Burns,A.,Wellings, A.(2002) Sistemas de Tiempo Real y Lenguajes de Programación (3ª Edición). España: Addison-Wesley Iberoamericana.

No hay comentarios:

Publicar un comentario