-
Lenguaje B
B era un lenguaje evolucionado e independiente de la maquina, inspirado en el lenguaje BCPL concebido por Martin Richard. -
Inspirado
Este lenguaje esta inspirado en el lenguaje B escrito por Ken Thompson con intención de re-codificar el UNIX. -
Creacion lenguaje tipo C
Dennis Ritchie, toma el relevo y modifica el lenguaje B, creando el lenguaje C y reescribiendo el UNIX en dicho lenguaje. -
Lenguaje C++
Fue desarrollado en 1980 por Bjarne Stroustroup en los laboratorios At&T como una extensión orientada a objetos del lenguaje C. -
Diferencias del tipo C y C++ Part 1
- C no es un lenguaje orientado a objetos, mientras que C++ sí que lo es.
- C++, al ser un lenguaje más moderno y avanzado, puede hacer uso de determinadas características que le hacen más seguro que C.
- Otra diferencia entre ambos lenguajes son las librerías de las que depende para realizar tareas básicas de entrada y salida de datos.
- Un código en C se divide principalmente en dos partes: procedimientos y módulos. En C++ se utilizan clases y funciones.
-
Diferencias del tipo C y C++ Part 2
- Si tenemos un programa escrito en C, podemos ejecutarlo sin problemas en un programa C++, mientras que al revés no es posible.
- C no admite el uso de la variable de referencia, mientras que C++ si lo admite.
- Las funciones en estructura se pueden utilizar en C++, mientras que en C no es posible.
- Las variables básicas de C son int, float, char y double, mientras que en C++ son bool, void y wchar_t.
-
Comienzo de los cambios
El Instituto Nacional Estadounidense de Estándares (ANSI) organizó un comité, para establecer una especificación estándar de C. -
Primera estandarización
Fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Introdujo muchas de las características que todavía se utilizan en la programación moderna en C, incluidos los tipos de datos, las estructuras de control y la biblioteca estándar. -
Adoptado por la ISO
El estándar ANSI (con algunas modificaciones menores) fue adoptado por la Organización Internacional para la Estandarización (ISO) en el estándar ISO/IEC 9899:1990. -
Version: La norma C99 (ISO/IEC 9899:1999)
introdujo varias características nuevas, entre ellas, matrices de longitud variable, miembros de matriz flexibles, números complejos, funciones en línea e inicializadores designados. -
Rendimiento en los lenguajes de desarrollo Part 1
- Lenguaje C:
TIOBE: Alto
Rendimiento: Muy alto Facilidad de Aprendizaje: Bajo Adecuación para Web: Moderado Adecuación para Sistemas Embebidos: Muy alto - Python: TIOBE: Alto Rendimiento: Moderado Facilidad de Aprendizaje: Alto Adecuación para Web: Alto Adecuación para Sistemas Embebidos: Bajo
- Lenguaje C:
TIOBE: Alto
-
Rendimiento en los lenguajes de desarrollo Part 2
- Java:
TIOBE: Alto
Rendimiento: Alto Facilidad de Aprendizaje: Moderado Adecuación para Web: Alto Adecuación para Sistemas Embebidos: Moderado - JavaScript:
TIOBE: Alto
Rendimiento: Bajo Facilidad de Aprendizaje: Alto Adecuación para Web: Muy alto Adecuación para Sistemas Embebidos: Bajo - Rust:
TIOBE: En crecimiento
Rendimiento: Muy alto Facilidad de Aprendizaje: Moderado Adecuación para Web: Moderado Adecuación para Sistemas Embebidos: Alto
- Java:
TIOBE: Alto
-
Artículos sobre la versatilidad lenguaje tipo C
- A Retrospective on C por David Parnas Este artículo proporciona una visión retrospectiva sobre el desarrollo y la influencia del lenguaje C, destacando su versatilidad y aplicaciones en el diseño de sistemas.
- Why C is Still the Best Language for System Programming Este artículo discute por qué C sigue siendo la mejor opción para la programación de sistemas, incluyendo su eficiencia y control de bajo nivel.
-
Version: La norma C11 (ISO/IEC 9899:2011)
Introdujo varias características nuevas, entre ellas _Generic, static_assert y el calificador de tipo atómico. Esta norma también incluye varias actualizaciones de la biblioteca, incluidas nuevas funciones para matemáticas, subprocesos y manipulación de memoria. -
Versión: C18 (ISO/IEC 9899:2018)
Es el estándar más reciente e incluye actualizaciones y aclaraciones a la especificación del lenguaje y la biblioteca. -
Usos y aplicaciones del lenguaje Part 1
- Sistemas Operativos: C es el lenguaje en el que se han escrito muchos sistemas operativos, incluidos Unix y Linux.
- Desarrollo de Software de Sistemas: Además de los sistemas operativos, C se utiliza para desarrollar software de sistemas como compiladores, intérpretes y herramientas de depuración.
- Programación en Tiempo Real: C es ampliamente utilizado en sistemas de tiempo real, como sistemas embebidos y aplicaciones de control industrial.
-
Usos y aplicaciones del lenguaje Part 2
- Seguridad informática En el campo de la seguridad informática, C es utilizado para desarrollar herramientas y aplicaciones que requieren un alto grado de control sobre el sistema.
- Aplicaciones científicas y de ingeniería C también se utiliza en aplicaciones científicas y de ingeniería que requieren cálculos intensivos y procesamiento de datos.
- Juegos y motores de gráficos El desarrollo de juegos y motores de gráficos es otra área donde C es ampliamente utilizado.
-
Ventajas respecto de otros lenguajes.
Ventajas:
1. De Python o JavaScript, C suele ser mucho más rápido debido a su compilación directa a código máquina.
2. Con lenguajes de alto nivel como Java, C proporciona un control más directo sobre los recursos del sistema.
3. Aunque lenguajes como Java se destacan por su portabilidad gracias a la JVM, C sigue siendo ampliamente portable en aplicaciones de bajo nivel.
4. Aunque Python tienen una comunidad vibrante, C ha sido fundamental en el desarrollo de muchas tecnologías y herramientas. -
Desventajas respecto de otros lenguajes.
Desventajas:
1. Lenguajes como Rust están diseñados para mejorar la seguridad y la gestión de la memoria, reduciendo el riesgo de errores comunes en C.
2. C proporciona un nivel bajo de abstracción, lo que hace que el desarrollo sea más tedioso y propenso a errores, a diferencia de Python o Java proporcionan una mayor abstracción.
3. C no tiene un sistema integrado para el manejo de excepciones, a diferencia de lenguajes como C++ y Java proporcionan mecanismos de manejo de excepciones