Upload
ignacio-larrosa-rezk
View
5
Download
0
Embed Size (px)
DESCRIPTION
trabajo de la historia de la informatica
Citation preview
Natalia Torres
1° Informática E.M.T.I
Ignacio Larrosa Rezk
Índice Introducción: ............................................................................................................................... 3
Historia de C: .............................................................................................................................. 4
¿Qué es el lenguaje C? ........................................................................................................... 4
Creación: .................................................................................................................................. 4
¿Por qué decidieron trabajar en un nuevo lenguaje de programación? ....................... 5
Evolución .................................................................................................................................. 6
Actualmente ............................................................................................................................ 8
Características ........................................................................................................................ 8
Desventajas ............................................................................................................................. 9
Los fundamentos del entorno C/C++: ................................................................................ 10
Introducción .......................................................................................................................... 10
Fases de ejecución ............................................................................................................... 10
Compiladores y generadores de archivo: ............................................................................. 12
Compiladores de archivos ................................................................................................... 12
Definición de archivo fuente: ............................................................................................ 12
Definición de compilador:................................................................................................... 12
Conclusión: ................................................................................................................................ 13
Bibliografía: ............................................................................................................................... 14
Introducción:
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 evolución del lenguaje C que fue creado por el
programador Dennis Rithchie, veremos a través de este trabajo como
mediante distintas modificaciones y mejoras nos llega hasta hoy como una
importante herramienta.
Veremos también los fundamentos del entorno con sus fases de ejecución 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 programación de nivel medio ya que combina
los elementos del lenguaje de alto nivel con la funcionalidad del ensamblador.
Creación:
El lenguaje C es una base del lenguaje de programación 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 creación del lenguaje B escrito por Ken Thompson en 1970 con la intención
de recodificar el UNIX, que en su fase de arranque estaba codificado en
lenguaje ensamblador, éste tenía el inconveniente de estar vinculado a
maquinas concretas por lo que se hacía 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 intención: el diseño del sistema operativo
UNIX.
El lenguaje C inicialmente fue creado para la programación de:
Sistemas Operativos
Intérpretes
Editores
Ensambladores
Compiladores
Administradores de base de datos
¿Por qué decidieron trabajar en un nuevo lenguaje de programación?
Existen dos versiones de cuál fue la motivación:
Una de las versiones es que los creadores querían jugar a un juego llamado
“Space Travel” en uno de los mainframes de la compañía, pero, debido a la
carga de este mismo sistema, decidieron llevarse el juego a un PDP-7 que no
se utilizaba ya que no tenía sistema operativo, entonces decidieron llevarse el
de PDP-11 al PDP-7 cosa que no se podía hacer al estar escrito en
ensamblador. Viendo la necesidad de tener la capacidad de llevarlo y ser más
á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 versión original de
UNIX se realizó en ensamblador. Se usó C para rescribir este sistema
operativo.
Evolución
En 1978 Dennis Ritchie y Brian Kernighan publicaron la primera edición del
libro “El lenguaje de programación C”. El lenguaje descrito en esta primera
edición fue conocido como “El C de Kernighan y Ritchie”.
La novedad que proporcionó el lenguaje C sobre el B fue el diseño de tipos y
estructuras de datos. Los tipos estructurados básicos de C son: las estructuras,
las uniones y los arrays. Estos permiten la definición y declaración de tipos de
mayor complejidad.
Los tipos básicos de datos en el lenguaje C eran “CHAR” (carácter), “INT”
(enteros), “FLOAT” (reales en simple precisión), y “DOUBLE” (reales en doble
precisión), más 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 años siguientes a la publicación del mencionado libro, y dado que C era
un lenguaje muy poderoso y flexible, su uso se aplicó muy rápidamente más
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 pequeñas diferencias comenzaron a dar
problemas.
Para resolver esta situación ANSI (American National Stándards) formo un
comité en 1983 para crear una definición estándar del C conocida como ANSI
C.
En este estándar se tomaron muchas de las funciones no oficiales y se
agregaron otras como los prototipos de función, y un procesador 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.
En 1988, basándose en el estándar ANSI Kernighan y Ritchie publicaron la
segunda edición de su libro que hasta hoy es utilizada como una de las
referencias principales del lenguaje.
En el año 1990 la ISO (organización internacional para la estandarización),
publica la estandarización del lenguaje que es básicamente el estándar ANSI
con unas pocas modificaciones el que se conoce como C89 o C90, y que se
trata del mismo lenguaje.
Durante los siguientes años el lenguaje C se mantuvo sin demasiados cambios,
pero como había sucedido anteriormente los distintos compiladores fueron
agregando características adicionales siendo C++ la principal influencia.
Es por esto que a finales de los años 90’, se decide revisar el estándar de C y
se publica el estándar C99.
Este incluye nuevas características como: las funciones inline, las
posibilidades de declarar variables en cualquier parte del código, los
comentarios de una sola línea usando //, los tipos de datos como: long, long
int, bool, complex, entre otras.
Hasta hoy continua el proceso de evolución del lenguaje y desde el 2007 se
está trabajando en un nuevo estándar.
Actualmente
El lenguaje C se ha utilizado mucho para la programación 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 también
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 programación en ensamblador)
Actualmente debido a sus características, 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
Características
Algunas características del lenguaje C:
Es un lenguaje de objetivo general. Este lenguaje se ha utilizado para
el desarrollo de aplicaciones tan distintas como: hojas de cálculos,
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 lógico y no en la máquina física) y a bajo nivel
(con lo que se puede obtener la máxima 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 estándar. 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 rápida y eficiente.
No lleva a cabo comprobaciones de errores en tiempo de ejecución, es
el programador el único responsable de llevar a cabo esas
comprobaciones.
Es un lenguaje potente y eficiente. Usando C, un programador puede
casi alcanzar la eficiencia del código ensamblador junto con la
estructura del Algol o Pascal.
No está orientado a ningún área en especial.
Una de las peculiaridades de C es su riqueza de operadores, Puede
decirse que prácticamente dispone de un operador para cada una de las
posibles operaciones en código máquina.
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 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.
A pesar de todo, C ha demostrado ser un lenguaje extremadamente eficaz y
expresivo.
Los fundamentos del entorno C/C++:
Introducción
Todos los sistemas C consisten, en general, de tres partes: el entorno, el
lenguaje y la biblioteca estándar C. En la siguiente figura 1.1 se explica el
entorno típico de desarrollo de C.
Fases de ejecución
Los programas C casi siempre pasan a través de seis fases para su ejecución
(figura 1.1). Estas fases son: editar, procesar, compilar, enlazar, cargar y
ejecutar. Nos estamos concentrando en este momento en el sistema típico
UNIX, basado en C.
Figura 1.1
Compiladores y generadores de archivo:
Compiladores de archivos
Definición de archivo fuente:
Un archivo de texto que escribimos, usando el lenguaje de programación que
nos interese, se denomina archivo fuente o simplemente fuente. El texto que
escribimos en este archivo fuente se denomina código fuente.
Definición de compilador:
Es un programa que a partir de un archivo fuente, genera otro archivo que
puede ser interpretado, leído o ejecutado por el sistema operativo. Las
instrucciones que contiene este nuevo archivo pueden ser ejecutadas en el
procesador de la máquina, 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 ningún 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 máquina 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 encargarán de tener en cuenta que tipo de
procesador tenemos.
Simplemente debemos tener un compilador apropiado para él.
Por lo tanto, podemos escribir el código fuente de un programa en el lenguaje
que nos interese y hacerlo correr en diferentes tipos de máquina 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 máquinas.
Conclusión: La creación del lenguaje C ha sido un aporte valiosísimo, que ha ido
evolucionando y continuara haciéndolo como hasta ahora en respuesta a las
necesidades que van surgiendo con los avances de la informática y la
programación para facilitar el trabajo y el reducir el tiempo de elaboración de
un programa.
Bibliografía:
-Enrique Espejo González. (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=0CFwQ6AEwCGoVChMIp72SuqTeyAIVSNkeCh22KQD6#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 ). Programación 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 Tecnología: el lenguaje de programación C. 23 octubre 2015, de Hipertextual Sitio web: http://hipertextual.com/2011/10/historia-de-la-tecnologia-lenguaje-c - Paul J. Deitel. (1995). Cómo 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+partes:+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+desarrollo+de+C.&source=bl&ots=P8aahMlhdz&sig=uIKE2nVkkLKoskKtUpVy5OoRNcU&hl=es&sa=X&ved=0CB0Q6AEwAGoVChMI4JPL1d3eyAIVxu0eCh0PQQwb#v=onepage&q&f=false