Trabajo Informatica 2015

14
Natalia Torres 1° Informática E.M.T.I Ignacio Larrosa Rezk

description

trabajo de la historia de la informatica

Transcript of Trabajo Informatica 2015

Page 1: Trabajo Informatica 2015

Natalia Torres

1° Informática E.M.T.I

Ignacio Larrosa Rezk

Page 2: Trabajo Informatica 2015

Í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

Page 3: Trabajo Informatica 2015

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

Page 4: Trabajo Informatica 2015

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

Page 5: Trabajo Informatica 2015

¿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

Page 6: Trabajo Informatica 2015

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”

Page 7: Trabajo Informatica 2015

(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.

Page 8: Trabajo Informatica 2015

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

Page 9: Trabajo Informatica 2015

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

Page 10: Trabajo Informatica 2015

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.

Page 11: Trabajo Informatica 2015

Figura 1.1

Page 12: Trabajo Informatica 2015

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

Page 13: Trabajo Informatica 2015

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.

Page 14: Trabajo Informatica 2015

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