martes, 24 de mayo de 2016

Evolución del Lenguaje "C"

El lenguaje C inicialmente fué creado para la programación de

-Sistemas operativos
-Intérpretes
-Editores
-Ensambladores
-Compiladores
-Administradores de bases de datos.

Actualmente, debido a sus características, puede ser utilizado para todo tipo de programas.

Algunas de las versiones existentes son:

- Quick C
- C++
- Turbo C
- Turbo C ++
- Borland C
- Borland C++
- Microsoft C
- Turbo C 2.0
- Turbo C++ 1.0
- Borland C++ 2.0


Este Lenguaje a evolucionado paralelamente con el UNIX, que a su vez ha pasado por diversas versiones entre las que destaca Microsoft con su XENIX para micros de 16 bits.

A mediados de los años 60s, Martin Richards diseñó el lenguaje BCPL con la finalidad de usarlo para escribir software de sistemas operativos y compiladores.
En 1969, Ken Thompson escribió el Lenguaje B, en Bell Laboratories, con el objetivo de recodificar UNIX (escrito hasta ese momento en lenguaje ensamblador) usando un lenguaje de alto nivel más portable y flexible.
Durante los siguientes años, Dennis Ritchie modificó el lenguaje B, llegando a crear el lenguaje C y reescribiendo el sistema UNIX en dicho lenguaje; añadió características nuevas, como son el diseño de tipos y las estructuras de datos.
En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edición del libro El lenguaje de programación C. Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en la primera edición de este libro, fue conocido como "el C de Kernighan y Ritchie" o simplemente "K&R C". En este libro se introdujeron nuevas características al lenguaje: los tipo de datos struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=.
A mediados de los años 80, Bjarne Stroustrup (también de los laboratorios Bell), crea el lenguaje C++, un lenguaje basado en C, con numerosas características adicionales, siendo la principal que está orientado a objetos. Si bien se han creado muchos lenguajes basados en C, C++ es el que ha permanecido más asociado a C.
En los años siguientes a la publicación del C de Kernighan y Ritchie, se añadieron al lenguaje muchas características no oficiales, que estaban presentes en algunos compiladores y no en otros. Fue por ello que en 1989 ANSI (American National Standards Institute) publicó el primer estándar oficial de C, que es conocido como ANSI C.
En este estándar se tomaron muchas de las funcionalidades no oficiales y se agregaron funcionalidades nuevas como los prototipos de función, y un preprocesador mejorado. También se cambió la sintaxis de la declaración de parámetros de funciones, para que incluyeran el tipo junto con el nombre.
Al año siguiente, en 1990 se publicó la estandarización ISO del lenguaje. Este estándar es básicamente el estándar ANSI, con unas pocas modificaciones de formato. A este estándar se lo conoce, entonces, como C89, o C90, y se trata del mismo lenguaje.
Basándose en el estándar ANSI que estaba en preparación, en 1988 Kernighan y Ritchie publicaron la segunda edición de su libro, que es aún hoy utilizada como una de las referencias principales del lenguaje.
Durante los siguientes años, el lenguaje C permaneció sin demasiados cambios. Sin embargo, como había sucedido antes, los distintos compiladores fueron incorporando características adicionales, que otros compiladores no tenían, siendo C++ la principal influencia.
Fue por ello que a finales de los noventa se decidió revisar el estándar de C, lo que llevó a la publicación del estándar C99. Este estándar incluye varias nuevas características como son: las funciones inline; la posibilidad de declarar variables en cualquier parte del código; los comentarios de una sola línea utilizando //; los tipos de datos long long int, bool y complex, entre otras.
Aún hoy el proceso de evolución del lenguaje sigue avanzando, y desde 2007 se está trabajando en el armado de un nuevo estándar.



Ejemplo del "viejo estilo":
int power(); /* Podria haberse omitido (*) */

power()
int a, b;
{
int n;
for (n = 1; b > 0; --b)
n *= a;
return n;
}


Ejemplo de la nueva definición:
int power(int a, int b)
{
int n;
for (n = 1; b > 0; --b)
n *= a;
return n;
}

Inconvenientes o desventajas del Lenguaje C.

Las desventajas que se pueden encontrar al Lenguaje C son las siguientes: Carece de instrucciones de entrada/salida, de instrucciones para el manejo de cadenas de caracteres, con lo que este trabajo queda para la librería de rutinas, con la consiguiente pérdida de transportabilidad. La excesiva libertad en la escritura de los programas puede llevar a errores en la programación que, por ser correctos sintácticamente no se detectan a simple vista. Por otra parte las precedencias de los operadores convierten a veces las expresiones en pequeños rompecabezas.





No hay comentarios:

Publicar un comentario