Unidad 1. Historia y Caracteristicas Del Lenguaje C

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Unidad Curricular: Computación para Ingenieros

Escuela de Computación
Sección: SAIAB Lapso 2021/02
Facilitador: Ing. Sullin Santaella e-mail: [email protected]

HISTORIA Y CARACTERÍSTICAS DEL LENGUAJE C

Contenido
1. Antecedentes
2. Filosofía
3. ANSI C e ISO C
4. Breve reseña del C++
5. Proceso de compilación

1. Antecedentes

C es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis M.


Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B. Al igual que B, es
un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C
es apreciado por la eficiencia del código que produce y es el lenguaje de programación más
popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje débilmente tipado de medio nivel pero con muchas características
de bajo nivel. Es necesario aclarar que un lenguaje fuertemente tipado: es un lenguaje en el
que los tipos de datos se mantienen siempre. Java y Python son fuertemente tipados. Si se
tiene un entero, no se le puede tratar como una cadena sin convertirlo explícitamente.
Lenguaje débilmente tipado es un lenguaje en el que los tipos pueden ignorarse; lo
contrario de fuertemente tipado. VBScript es débilmente tipado. En VBScript, se puede
concatenar la cadena '12' con el entero 3 para obtener la cadena '123', y después tratarla como
el entero 123, todo ello sin conversión explícita.

2. Filosofía

Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como


intermediario entre diferentes lenguajes. En parte a causa de ser de relativamente bajo
nivel y de tener un conjunto de características modesto, se pueden desarrollar

1
compiladores de C fácilmente.
C tiene las siguientes características de importancia:
 Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como
funciones matemáticas y de manejo de ficheros, proporcionadas por bibliotecas.
 Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los
más empleados es el estructurado.
 Un sistema de tipos que impide operaciones sin sentido.
 Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir
macros e incluir múltiples ficheros de código fuente.
 Acceso a memoria de bajo nivel mediante el uso de punteros.
 Un conjunto reducido de palabras clave.
 Los parámetros se pasan por valor. El paso por referencia se puede simular pasando
explícitamente el valor de los punteros.
 Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de
encapsulado y polimorfismo.
 Tipos de datos agregados (Struct) que permiten que datos relacionados secombinen y se
manipulen como un todo.
C es más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en
lenguaje ensamblador produce un código más rápido, pues da control totalsobre la máquina,
aunque los avances en los compiladores de C y la complejidad creciente de los procesadores
modernos han reducido gradualmente esta diferencia. En 1973, el lenguaje C se había vuelto
tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje
ensamblador PDP11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema
operativo implementados en un lenguaje distinto al ensamblador.

3. ANSI C e ISO C

A finales de la década de 1970, C empezó a sustituir a BASIC como lenguaje de


programación de microcomputadores predominante. Durante la década de 1980 seempezó a
usar en los IBM PC, lo que incrementó su popularidad significativamente. Al mismo tiempo,

2
Bjarne Stroustrup empezó a trabajar con algunos compañeros de Bell Labs para añadir
funcionalidades de programación orientada a objetos a C. El lenguaje que crearon, llamado
C++, es hoy en día el lenguaje de programación de aplicaciones más común en el sistema
operativo Microsoft Windows; mientras que C sigue siendo más popular en el entorno Unix.
También se han creado numerosos lenguajes inspirados en la sintaxis de C, pero que no
son compatibles con él:
 Java, que une la sintaxis del C++ a una orientación a objetos más similar a la de Smalltalk
y Objective C.
 JavaScript, un lenguaje de scripting creado en Netscape e inspirado en la sintaxis de Java
diseñado para dar a las páginas web mayor interactividad. A la versión estandarizada se la
conoce como ECMAScript.
 C# (pronunciado C Sharp) es un lenguaje desarrollado por Microsoft derivado de C/C++
y Java.

4. Breve Reseña de C++

En los laboratorios de AT&T Bell, que Bjarnes Stroutstrup diseñó y desarrolló C++
buscando un lenguaje con las opciones de programación orientada a objetos. En ese entonces
el desarrollo del estándar de C++ acaparaba la atención de los diseñadores. En el año 1995,
se incluyeron algunas bibliotecas de funciones al lenguaje C. Y con base en ellas, se pudo
en 1998 definir el estándar de C++.
Es un mito pensar que entonces C++ desplazó a C, algunas soluciones a problemas
requieren de la estructura simple de C más que la de C++, C generalmente es usado por
comodidad para escribir controladores de dispositivos y para programas de computadoras
con recursos limitados.
C++ proporciona orientación a objetos, esta versión combina la flexibilidad y el acceso
de bajo nivel de C con las características de la programación orientada a objetos como
abstracción, encapsulación y ocultación. Una consideración importante es que hasta la
publicación de este estándar, C había sido mayormente un subconjunto estricto del C++.
Era muy sencillo "actualizar" un programa de C hacia C++ y mantener ese código
compilable en ambos lenguajes. Sin embargo, el nuevo estándar agrega algunas

3
características que C++ no admite.

5. Proceso de Compilación

La compilación de un programa C o C++ se realiza en varias fases quenormalmente


son automatizadas y ocultadas por los entornos de desarrollo:

1. Preprocesado consistente en modificar el código fuente en C o C++ según una seriede


instrucciones (denominadas directivas de preprocesado) simplificando de esta forma el
trabajo del compilador. Por ejemplo, una de las acciones más importantes es la modificación de las
inclusiones (#include) por las declaraciones reales existentes en el fichero indicado.
2. Compilación que genera el código objeto a partir del código ya preprocesado.
3. Enlazado que une los códigos objeto de los distintos módulos y bibliotecas externas
(como las bibliotecas del sistema) para generar el programa ejecutable final.

Se recomienda usar un entorno de desarrollo integrado (IDE), para probar las soluciones
de los ejercicios, que siempre serán programas relativamente sencillos, bastará un simple
compilador de C++ que sea sencillo de utilizar.

REFERENCIAS

Cairo, O. (2006). Fundamentos de Programación. Piensa en C. Prentice Hall.

Joyanes, L. (2002). Fundamentos de Programación. McGraw-Hill

Kernighan, B., Ritchie, D. (1991). El lenguaje de programación C (2ª edición). Prentice Hall
Hispanoamericana

También podría gustarte