Ada es un LTR: Tiene manejo de excepciones (algo tipo Java), soporta programacion conducida por eventos (en un lenguaje en tiempo real, algo pasa y se le da respuesta) o sea por interrupciones, soporta polling tambien. Es un lenguaje en tiempo real porque tiene construcciones especificas dentro del lenguaje para esto, del tipo:
- Manda al avion girar a la derecha
El avion no gira a la derecha. Entonces genero una excepcion (no se cuelga el programa). Y el manejador de la excepcion por ejemplo llega a la conclusion de que los alerones de cola no funcionan y que a lo mejor parando los motores del lado derecho pues giramos a la derecha, y lo hace de la otra manera.
Si no, otra excepcion.
Y en C esto no se hace. Ada tiene otras muchas cosas, soporte de semaforos, regiones criticas, de todo. Está muy bien. La mayor parte son construcciones del lenguaje o una especie de librerías (packages), y es muy difícil cometer errores porque todo está super-estructurado.
Y hay que recordar que en un lenguaje en tiempo real hay que garantizar el tiempo. O sea, si hay un accidente, si se abren los airbags una hora despues, pues no sirve, se tienen que abrir cuanto antes mejor, y luego ya nos ocuparemos de encender los dobles intermitentes (antes las vidas que las tonterias). Ada lo lleva todo de serie para esto, C no. Por eso es un LTR. C es un lenguaje de propósito general, en general está bien, pero a cada cosa, el programador debe elegir el lenguaje adecuado.
Y más cosas así.
Re: Por que C no es LTR
(Puntos:1)Y hay que recordar que en un lenguaje en tiempo real hay que garantizar el tiempo. O sea, si hay un accidente, si se abren los airbags una hora despues, pues no sirve, se tienen que abrir cuanto antes mejor, y luego ya nos ocuparemos de encender los dobles intermitentes (antes las vidas que las tonterias). Ada lo lleva todo de serie para esto, C no. Por eso es un LTR. C es un lenguaje de propósito general, en general está bien, pero a cada cosa, el programador debe elegir el lenguaje adecuado. Y más cosas así.