C (lenguaje de programación)

[2]​: 1 [3]​[4]​ Al igual que B, es un lenguaje orientado a la implementación de sistemas operativos; concretamente Unix.La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portable entre plataformas y/o arquitecturas.Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos computadores.En otros lenguajes (como C# o Java) la memoria es gestionada de forma transparente para el programador.Esto alivia la carga de trabajo y evita errores, pero le quita flexibilidad al lenguaje para escribir controladores del hardware.Típicamente, solo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los microprocesadores modernos han reducido gradualmente esta diferencia.Aunque este método tiene una gran desventaja respecto al nuevo, debido a que no comprueba el número ni el tipo en la lista de argumentos; en otras palabras, es mucho más fácil cometer errores al hacer una llamada a una función con argumentos incorrectos.Durante la década de 1980 se empezó a usar en los IBM PC, lo que incrementó su popularidad significativamente.Otro lenguaje que se desarrolló en esa época, Objective C, también añadió características de programación orientada a objetos a C. Aunque hoy en día no es tan popular como C++, se usa para desarrollar aplicaciones Cocoa para Mac OS X.Sin embargo, este nuevo estándar ha tenido poca acogida entre algunos desarrolladores de compiladores, como Microsoft y Borland, que se han centrado en C++.Brandon Bray, de Microsoft, dijo a este respecto: C11 (antes conocido como C2X) es un nombre informal para ISO/IEC 9899:2011[8]​.Si la parte crítica no llega a cumplir las expectativas del proyecto, se comparan las alternativas de una inversión en nuevo hardware frente a invertir en el coste de un programador para que reescriba dicha parte crítica.Los sistemas contienen registros mapeados en memoria (en inglés, MMR) a través de los cuales los periféricos se configuran.Estos registros mezclan varias configuraciones en la misma dirección de memoria, aunque en bits distintos.Otras bibliotecas C son aquellas utilizadas para desarrollar sistemas Unix, las cuales proveen interfaces hacia el núcleo.Estas funciones son detalladas en varios estándares tales como POSIX y el Single UNIX Specification.Ya que muchos programas han sido escritos en el lenguaje C existe una gran variedad de bibliotecas disponibles.Muchas bibliotecas son escritas en C debido a que C genera código objeto rápido; los programadores luego generan interfaces a la biblioteca para que las rutinas puedan ser utilizadas desde lenguajes de mayor nivel, tales como Java, Perl y Python.
Dennis Ritchie (derecha), el inventor del lenguaje de programación C, con Ken Thompson
El lenguaje de programación C