Historia
C es un lenguaje maduro de propósitos generales que se desarrolló a partir de estas raíces; su definición aparece en 1978 en el apéndice ``C Reference Manual'' del libro The C Programming Language, de Brian W. Kernighan y Dennis M. Ritchie (Englewood Cliffs, Nueva Jersey, Prentice-Hall 1978), pero el estándar recomendable más reciente apareció en junio de 1983, en el documento de los Laboratorios Bell titulado The C Programming Language-Reference Manual, escrito por Dennis M. Ritchie
El lenguaje C esta inspirado en el lenguaje B escrito por Ken Thompson en 1970 con intension de recodificar UNIX , que en la fase de arranque esta escrito en asembler, en vistas a su transportabilidad a otras maquinas b era un lenguaje evolucionado e independiente de la maquina, inspirado en el lenguaje BCPL concedido por Martin Richard en 1967.
En 1972 , Denis Ritchie, toma el relevo y modifica el lenguaje B , creando el lenguaje C y reescribiendo el UNIX en dicho lenguaje. La novedad que proporciono el lenguaje C sobre el B fue el diseño de tipos de estructura de datos.
AT&T lo enserio como un compilador (comp. C)
llamado K&R C que junto con el sistema operativo UNIX empezaron a invadir
universidades. Despues, cada persona que adquiria una copia de UNIX recibia
un compilador de C gratis. El lenguaje mas popular fue C. Por lo tanto
UNIX fue escrito en C. Entonces si ud. queria entender UNIX ud. tenia que
aprender C. La caracteristica era que C era gratis y entonces nadie se
sentia presionado a aprenderlo. Cual fue el resultado?, un gran estandar.
Luego C se convirtiò en un gran estandar, entonces las compañias introducìan sus propios compiladores C. Incluyendo que pudiesen ejecutarse en otros sistemas operativos que no fuesen UNIX. Cada uno de estos compiladores introducìa ensanchamientos diseñados para mejorar las limitaciones que mostraba el modelo original. Pero las modificaciones que cada quien hacia traia como resultado la incompatibilidad de las versiones entre si, entonces incrementaba la demanda por un estandar a nivel nacional. Entonces en 1987 naciò el primer estandar "The American National Standars Institute (ANSI) version of C" esta version fuè mejor conocida como ANSI C o C estandar. C++ esta basado en estos compiladores y por lo tanto es el mas compatible con ANSI C.
C es un lenguaje de alto nivel, que es capaz de manipular
la computadora a bajo nivel, tal como lo haria un lenguaje ensamblador
. Durante la segunda mitad de la decada de los 80’ el C se convirtio
en el lenguaje elegido para el desarrollo de software comercial.
El C puede ser compilado al lenguaje de maquina
en casi todas las computadoras. Por ejemplo el Unix esta escrito
en C y ejecuta y compila en una amplia variedad de micro, mini y macrocomputadoras.
El C se programa con una seri de funciones
que se llaman unas a otras para el procesamiento. Aun el cuerpo del
programa es una funcion denominada flexibles , permitiendo a los
programadores la eleccion entre el uso de la biblioteca standar que se
provee con el compilador , el uso de funciones de terceros creadas por
otros proveedores de C , o el desarrollo de sus propias funciones.
Comparado con otros lenguajes de programacion de
alto nivel , el C parece complicado . Su apariencia intrincada se
debe a su extrema flexibilidad.
Las principales caracteristicas de este programa son:
Programacion estructurada.
Economia de sus expresiones.
Abundancia en operadores y tipos de datos.
Codificacion en alto y bajo nivel simultaneamente.
Reemplaza ventajosamente la programacion en asembler.
Utilizacion natural de las funciones primitivas del sistema.
No esta orientado a ningun area en especial.
Produccion de codigo objeto altamente optimizado.
Facilidad de aprendizaje.
Una de las peculiaridades de C es su riqueza de operadores , puede decirse que practicamente dispone de un operador para cada una de las posibles operaciones en codigo maquina.
Hay toda una serie de operaciones que puede hacerse con el lenguaje C, que realmente no estan incluidas en el compilador propiamente dicho , sino que las realiza un preprocesador justo antes de cada compilacion . Los dos mas importante son #define (directriz de sustitucion simbolica o de definicion) e #include (directriz en el fichero fuente).
Finalmente C , que ha sido pensado para ser altamente
transportable y para programar lo improgramable, igual que otros lenguajes
tiene sus pequños inconvenientes:
C++ como lenguaje orientado a objeto.
C++ es una version de C orientada a objetos creada por Bjarne Stroustrup que esta logrando una gran popularidad . El C++ combina la programacion tradicional en C con capacidad orientada a objetos.
En la decada de 1970 se volvió popular el
concepto de objeto entre los investigadores de los lenguajes de programación.
Un objeto es un conjunto de codigos, datos diseñados para emular
o imitar una entidad fisica o abstracta. Los objetos son eficientes como
elementos de programación por dos razones principales: representan
una abstracción directa de los elementos que se utilizan comunmente
y ocultan la mayor parte de la complejidadde su implantación a los
usuarios. Los primeros objetos que se desarrollaron fueron aquellos que
estaban más intimamente ligados a las computadoras, como INTERGER,
ARRAY y STACK. Ademas se diseñaron lenguajes como el SmallTalk el
cual es ya ortodoxo, donde se definia todo como un objeto.