Vous êtes sur la page 1sur 14

Natalia Torres

1 Informtica E.M.T.I
Ignacio Larrosa Rezk

ndice
Introduccin: ............................................................................................................................... 3
Historia de C: .............................................................................................................................. 4
Qu es el lenguaje C? ........................................................................................................... 4
Creacin:.................................................................................................................................. 4
Por qu decidieron trabajar en un nuevo lenguaje de programacin? ....................... 5
Evolucin .................................................................................................................................. 6
Actualmente ............................................................................................................................ 8
Caractersticas ........................................................................................................................ 8
Desventajas ............................................................................................................................. 9
Los fundamentos del entorno C/C++: ................................................................................ 10
Introduccin .......................................................................................................................... 10
Fases de ejecucin ............................................................................................................... 10
Compiladores y generadores de archivo: ............................................................................. 12
Compiladores de archivos ................................................................................................... 12
Definicin de archivo fuente: ............................................................................................ 12
Definicin de compilador:................................................................................................... 12
Conclusin: ................................................................................................................................ 13
Bibliografa: ............................................................................................................................... 14

Introduccin:
En este trabajo vamos a hablar de la historia de C, los fundamentos de
entorno, los compiladores y generadores de archivo.
Descubriremos la maravilla y la evolucin del lenguaje C que fue creado por el
programador Dennis Rithchie, veremos a travs de este trabajo como
mediante distintas modificaciones y mejoras nos llega hasta hoy como una
importante herramienta.
Veremos tambin los fundamentos del entorno con sus fases de ejecucin y
como surge la necesidad de compilar y generar archivos para facilitar el
enlace de los mismos para generar un programa

Historia de C:
Qu es el lenguaje C?
El lenguaje C es un lenguaje de programacin de nivel medio ya que combina
los elementos del lenguaje de alto nivel con la funcionalidad del ensamblador.
Creacin:
El lenguaje C es una base del lenguaje de programacin anterior, el lenguaje
B, el cual fue desarrollado por Ken Thompson, en los Laboratorios Bell en
1970.
En 1967 Martin Richard cre el lenguaje BCPL (con la finalidad de usarlo para
escribir software de sistemas operativos y compiladores) que fue la base para
la creacin del lenguaje B escrito por Ken Thompson en 1970 con la intencin
de recodificar el UNIX, que en su fase de arranque estaba codificado en
lenguaje ensamblador, ste tena el inconveniente de estar vinculado a
maquinas concretas por lo que se haca necesario un lenguaje que permitiera
al programador no depender de la capa del hardware.
El lenguaje C fue creado por Dennis Ritchie en los mismos laboratorios en
1972; C fue creado con una nica intencin: el diseo del sistema operativo
UNIX.
El lenguaje C inicialmente fue creado para la programacin de:
Sistemas Operativos
Intrpretes
Editores
Ensambladores
Compiladores
Administradores de base de datos

Por qu decidieron trabajar en un nuevo lenguaje de programacin?


Existen dos versiones de cul fue la motivacin:
Una de las versiones es que los creadores queran jugar a un juego llamado
Space Travel en uno de los mainframes de la compaa, pero, debido a la
carga de este mismo sistema, decidieron llevarse el juego a un PDP-7 que no
se utilizaba ya que no tena sistema operativo, entonces decidieron llevarse el
de PDP-11 al PDP-7 cosa que no se poda hacer al estar escrito en
ensamblador. Viendo la necesidad de tener la capacidad de llevarlo y ser ms
gil en la tarea, se dice que mediante estas bases iniciaron el proyecto del
lenguaje C.

PDP-7

PDP-11
Otra de las versiones es que buscaban crear un sistema que automatizase el
archivo de las patentes de los laboratorios Bell y ya que la versin original de
UNIX se realiz en ensamblador. Se us C para rescribir este sistema
operativo.
Evolucin
En 1978 Dennis Ritchie y Brian Kernighan publicaron la primera edicin del
libro El lenguaje de programacin C. El lenguaje descrito en esta primera
edicin fue conocido como El C de Kernighan y Ritchie.
La novedad que proporcion el lenguaje C sobre el B fue el diseo de tipos y
estructuras de datos. Los tipos estructurados bsicos de C son: las estructuras,
las uniones y los arrays. Estos permiten la definicin y declaracin de tipos de
mayor complejidad.
Los tipos bsicos de datos en el lenguaje C eran CHAR (carcter), INT
(enteros), FLOAT (reales en simple precisin), y DOUBLE (reales en doble
precisin), ms adelante se agregaron otros tipos de datos como SHORT

(enteros de longitud <= longitud de un INT), LONG (enteros de longitud >=


longitud de un INT), UNSIGNED (enteros sin signo), y ENUMERACIONES.
En los aos siguientes a la publicacin del mencionado libro, y dado que C era
un lenguaje muy poderoso y flexible, su uso se aplic muy rpidamente ms
all de los laboratorios de AT&T y los programadores de todo el mundo
comenzaron a usarlo para escribir todo tipo de programas surgiendo entonces
diversas versiones del C cuyas pequeas diferencias comenzaron a dar
problemas.
Para resolver esta situacin ANSI (American National Stndards) formo un
comit en 1983 para crear una definicin estndar del C conocida como ANSI
C.
En este estndar se tomaron muchas de las funciones no oficiales y se
agregaron otras como los prototipos de funcin, y un procesador mejorado,
tambin se cambi la sintaxis de la declaracin de parmetros de funciones,
para que incluyeran el tipo junto con el nombre.
En 1988, basndose en el estndar ANSI Kernighan y Ritchie publicaron la
segunda edicin de su libro que hasta hoy es utilizada como una de las
referencias principales del lenguaje.
En el ao 1990 la ISO (organizacin internacional para la estandarizacin),
publica la estandarizacin del lenguaje que es bsicamente el estndar ANSI
con unas pocas modificaciones el que se conoce como C89 o C90, y que se
trata del mismo lenguaje.
Durante los siguientes aos el lenguaje C se mantuvo sin demasiados cambios,
pero como haba sucedido anteriormente los distintos compiladores fueron
agregando caractersticas adicionales siendo C++ la principal influencia.
Es por esto que a finales de los aos 90, se decide revisar el estndar de C y
se publica el estndar C99.
Este

incluye

nuevas

caractersticas

como:

las

funciones

inline,

las

posibilidades de declarar variables en cualquier parte del cdigo, los


comentarios de una sola lnea usando //, los tipos de datos como: long, long
int, bool, complex, entre otras.
Hasta hoy continua el proceso de evolucin del lenguaje y desde el 2007 se
est trabajando en un nuevo estndar.

Actualmente
El lenguaje C se ha utilizado mucho para la programacin de sistemas UNIX,
as como para el desarrollo de sistemas operativos como: Windows o
GNU/Linux y el desarrollo de aplicaciones de escritorio como GIMP tambin
podemos verlo en sistemas empotrados (control de procesos industriales,
ascensores, etc.) o como base de kits de desarrollo de microcontroladores
(abstrayendo al usuario de la programacin en ensamblador)
Actualmente debido a sus caractersticas, el lenguaje C 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
Caractersticas
Algunas caractersticas del lenguaje C:

Es un lenguaje de objetivo general. Este lenguaje se ha utilizado para


el desarrollo de aplicaciones tan distintas como: hojas de clculos,
gestores de bases de datos, compiladores, sistemas operativos, etc.

Es un lenguaje de nivel medio. Este lenguaje permite programar a alto


nivel (pensando a nivel lgico y no en la mquina fsica) y a bajo nivel
(con lo que se puede obtener la mxima eficiencia y un control

absoluto de cuanto sucede en el interior del ordenador). Trabaja


directamente con bits, bytes y direcciones de memoria.

Se basa en funciones y maneja una biblioteca estndar. Dicha


biblioteca est formada por un conjunto de archivos donde cada
archivo est formado por un grupo de funciones y/o procedimientos
que permiten resolver problemas en forma rpida y eficiente.

No lleva a cabo comprobaciones de errores en tiempo de ejecucin, es


el

programador

el

nico

responsable

de

llevar

cabo

esas

comprobaciones.

Es un lenguaje potente y eficiente. Usando C, un programador puede


casi alcanzar la eficiencia del cdigo ensamblador junto con la
estructura del Algol o Pascal.

No est orientado a ningn rea en especial.

Una de las peculiaridades de C es su riqueza de operadores, Puede


decirse que prcticamente dispone de un operador para cada una de las
posibles operaciones en cdigo mquina.

Facilidad de aprendizaje
Desventajas

Finalmente, C, que ha sido pensado para ser altamente transportable y para


programar

lo

improgramable,

igual

que

otros

lenguajes

tiene

sus

inconvenientes:

Carece de instrucciones de entrada/salida, de instrucciones para


manejo de cadenas de caracteres, con lo que este trabajo queda para
la

biblioteca

transportabilidad

de

rutinas,

con

la

consiguiente

prdida

de

La excesiva libertad en la escritura de los programas puede llevar a


errores en la programacin que, por ser correctos sintcticamente no
se detectan a simple vista

Por otra parte, las precedencias de los operadores convierten a veces


las expresiones en pequeos rompecabezas.

A pesar de todo, C ha demostrado ser un lenguaje extremadamente eficaz y


expresivo.

Los fundamentos del entorno C/C++:


Introduccin
Todos los sistemas C consisten, en general, de tres partes: el entorno, el
lenguaje y la biblioteca estndar C. En la siguiente figura 1.1 se explica el
entorno tpico de desarrollo de C.

Fases de ejecucin
Los programas C casi siempre pasan a travs de seis fases para su ejecucin
(figura 1.1). Estas fases son: editar, procesar, compilar, enlazar, cargar y
ejecutar. Nos estamos concentrando en este momento en el sistema tpico
UNIX, basado en C.

Figura 1.1

Compiladores y generadores de archivo:


Compiladores de archivos
Definicin de archivo fuente:
Un archivo de texto que escribimos, usando el lenguaje de programacin que
nos interese, se denomina archivo fuente o simplemente fuente. El texto que
escribimos en este archivo fuente se denomina cdigo fuente.

Definicin de compilador:
Es un programa que a partir de un archivo fuente, genera otro archivo que
puede ser interpretado, ledo o ejecutado por el sistema operativo. Las
instrucciones que contiene este nuevo archivo pueden ser ejecutadas en el
procesador de la mquina, este archivo que puede de ser ejecutado se
denomina programa.
Cuando tenemos varios archivos fuente que juntos han de formar el programa,
el compilador genera un archivo por cada uno de ellos.
Es necesario un programa auxiliar que enlace o junte estos archivos (que
individualmente no son ningn programa) en uno solo, que ser el programa
final.
A este programa que enlaza los archivos (llamados objeto o intermedios)
generados por el compilador se le denomina linker (o enlazador).
El compilador y el linker son programas que tienen en cuenta el tipo de
procesador y mquina que tenemos, as como el sistema operativo en el que
se va a ejecutar nuestro programa.
Nosotros nos desentendemos, de esta forma, del tipo de procesador que tiene
nuestro ordenador y del sistema operativo.
Son estos programas los que se encargarn de tener en cuenta que tipo de
procesador tenemos.
Simplemente debemos tener un compilador apropiado para l.
Por lo tanto, podemos escribir el cdigo fuente de un programa en el lenguaje
que nos interese y hacerlo correr en diferentes tipos de mquina con
procesadores diferentes o con diferentes sistemas operativos, lo nico que
deberemos hacer es compilar (y linkar o enlazar si es necesario) nuestra

fuente con el compilador correspondiente a ese procesador y sistema


operativo.
La ventaja est en que no tenemos que conocer las interioridades de los
procesadores y sistemas operativos con tanto detalle, ni rescribir nuestro
programa para diferentes mquinas.

Conclusin:
La creacin del lenguaje C ha sido un aporte valiossimo, que ha ido
evolucionando y continuara hacindolo como hasta ahora en respuesta a las
necesidades que van surgiendo con los avances de la informtica y la
programacin para facilitar el trabajo y el reducir el tiempo de elaboracin de
un programa.

Bibliografa:
-Enrique Espejo Gonzlez. (1 Febrero 2007). Domina C. Iniciacion. 23
octubre 2015, de Google books Sitio web:
https://books.google.com.uy/books?id=PpGYzPOK5CgC&pg=PA13&lpg
=PA13&dq=compilador+de+archivo&source=bl&ots=BDFlZGF12O&sig=
bKNMwPMm1OXC88lOFLwoV2mXdHM&hl=en&sa=X&ved=0CFwQ6AEwC
GoVChMIp72SuqTeyAIVSNkeCh22KQD6#v=onepage&q&f=false
- Anonimo. (Desconocido). Historia del lenguaje C. 23 octubre 2015,
de Docente.ucol Sitio web:
http://docente.ucol.mx/al999559/public_html/histo_c.htm
- Anonimo. ( 27 ago 2014 ). Programacin en C. 23 octubre 2015, de
Wikilibros Sitio web:
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Historia_de
_C
- JJ Velasco. (11 de octubre de 2011). Historia de la Tecnologa: el
lenguaje de programacin C. 23 octubre 2015, de Hipertextual Sitio
web: http://hipertextual.com/2011/10/historia-de-la-tecnologialenguaje-c
- Paul J. Deitel. (1995). Cmo programar en C/C++. 23 octubre 2015,
de Google books Sitio web:
https://books.google.com.uy/books?id=AkMTbaaCoq0C&pg=PA10&lpg
=PA10&dq=Todos+los+sistemas+C+consisten,+en+general,+de+tres+pa
rtes:+el+entorno,+el+lenguaje+y+la+biblioteca+est%C3%A1ndar+C.+En
+la+siguiente+figura+1.1+se+explica+el+entorno+t%C3%ADpico+de+de
sarrollo+de+C.&source=bl&ots=P8aahMlhdz&sig=uIKE2nVkkLKoskKtUp
Vy5OoRNcU&hl=es&sa=X&ved=0CB0Q6AEwAGoVChMI4JPL1d3eyAIVxu0
eCh0PQQwb#v=onepage&q&f=false

Vous aimerez peut-être aussi