Está en la página 1de 14

Grace Hooper (1906-1992) la MARK I de IBM en 1944

Nada menos que una brillante mujer, la almirante Grace Hooper, conocida como "Amazing Grace"
(la fascinante Grace), una excelente oficial de la Marina de Guerra de los Estados Unidos, entre los
aos 1940 y 1950 se convirti en pionera y propulsora de la programacin en computadoras.
Como innovativa y pensadora fundamentalista,
la almirante Hooper crey firmemente en que
las computadoras podan servir para
aplicaciones de negocios ms all del uso
primordial que se le daban a estos equipos en
los campos cientficos y militar.
Ella cre el lenguaje Flowmatic, con el cual
desarroll muchas aplicaciones y en 1951
produjo el primer compilador, denominado A-0
(Math Matic). En 1960 present su primera
versin del lenguaje COBOL (Common
Business-Oriented Language).
Grace se gradu en matemticas y fsica en el
Vassar College. Complet su maestra y
doctorado en la Universidad de Yale.
Durante la Segunda Guerra Mundial se uni a la
Marina de Guerra de los Estados Unidos,
habiendo trabajado en el Bureau of Ordenance
Computation.
Paradjicamente recibi entre muchos
reconocimientos y condecoraciones, el ttulo
de Hombre del Ao en Ciencia de la
Computacin, otorgado por la Data Processing
Managment Association. Tambin fu la primera
mujer nombrada miembro distinguido de British
Computer Society y fu la primera y nica
mujer nombrada con el grado de Almirante de la
Marina de Guerra de su pais. Grace Hooper
falleci en 1992.

http://colposfesz.galeon.com/hiacomp/primerag.htm

EL PRIMER COMPILADOR
En 1951 Grace Murray Hopper, una oficial de la Marina de EE.UU.,
desarroll el primer compilador, llamado A-0, un programa que poda traducir
enunciados parecidos al ingls en un cdigo BINARIO comprensible para la

mquina. En 1960 construye el compilador llamado COBOL (COmmon


Business-Oriented Languaje).

Grace Murray Hopper

http://helmutsy.homestead.com/files/computacion/historia/historia_computador
es_4.htm

Compilador A-0 1951


Museo virtual

Ao: 1951
Lugar: Estados Unidos

Creador: Grace Hopper

Definicin: El Sistema A-0 fue un conjunto de instrucciones


que se podra traducir el cdigo matemtico simblico en
lenguaje de mquina.

Uso: El A-0 funcionaba ms como un cargador o enlazador que como la nocin moderna de
compilador. Un programa era especificado como una secuencia de subrutinas y argumentos. Las
subrutinas eran identificadas por un cdigo numrico y los argumentos de las subrutinas eran
escritas directamente despus de cada cdigo de subrutinas. El sistema A-0 converta la
especificacin en cdigo mquina que poda ser alimentado a una computadora para ejecutar el
programa.

Grace y su equipo produjeron versiones A-1 y A-2, mejoras sobre la versin anterior. El compilador
de la A-2 fue el primer compilador que se utiliza ampliamente, allanando el camino para el
desarrollo de lenguajes de programacin.

https://books.google.com.mx/books?
id=8wwUowhAp_MC&pg=PA78&lpg=PA78&dq=compilador+a0&source=bl&ots=hD4B1iTDus&sig=HTBHzpR6BLXs0Vbw_x1PRheLKIc&hl=es&
sa=X&ei=HsYVbn_CuHZsASl_oHQDw&ved=0CD0Q6AEwBQ#v=onepage&q=compilador
%20a-0&f=false

https://prezi.com/zatjeyl6fkf8/evolucion-de-los-compiladores/
La programacin de los primeros ordenadores.
La perseverancia fue uno de los rasgos de su personalidad que hizo de ella una
gran lder. A su llegada al Laboratorio Cruft se encontr inmediatamente con el
ordenador Mark I. Para ella, se trataba de un artilugio simptico, parecido a los
despertadores de su juventud; estaba impaciente por desarmarlo y descubrir
como funcionaba. La almirante Hopper se convirti en la tercera persona en
programar el Mark I. Recibi el Premio al desarrollo de la artillera de Marina por
su precoz xito en la programacin de aplicaciones en los ordenadores Mark I,
Mark II y Mark III.
Como una autntica visionaria, Hopper se dio cuenta de que un ordenador
sera accesible para un pblico mucho mas amplio en el caso de que existieran
herramientas que fueran, fciles de programar y de utilizar. En la bsqueda de
esta visin, arriesg su carrera profesional en 1949 para entrar en la EckertMauchly Computer Corporation y entrar en el negocio de los ordenadores. All,
comenz un nuevo esfuerzo pionero con UNIVAC I, el primer ordenador digital
electrnico a gran escala. Para facilitar sus tareas, la almirante Hopper anim a
los programadores a que recogieran y compartieran las partes comunes de sus
programas. Aunque estas primeras bibliotecas de cdigo compartidas tenan
que copiarse a mano, reducan el nmero de errores, el tedio y la duplicacin
del esfuerzo.
En 1949, los programas contenan ayudas mnemotcnicas que se
transformaron en instrucciones de cdigos binarios ejecutables por el

ordenador. Hopper y su equipo ampliaron sus mejoras en el cdigo binario con


el desarrollo de su primer compilador, el A-O. La serie de compiladores A-O
traduca un cdigo matemtico simblico a un cdigo mquina y permita
especificar el nmero de llamadas que se asignaban a las rutinas de
programacin almacenadas en cinta magntica. Bastaba especificar el nmero
de las llamadas de las rutinas deseadas y el ordenador las "encontraba en la
cinta, las llevaba al ordenador y haca las sumas. Este fue el primer
compilador", segn sus propias palabras.
Hopper pensaba que el principal obstculo para los ordenadores, en las
aplicaciones no cientficas y en las empresas, era la escasez de programadores
para dichas mquinas que distaban mucho de ser de dificil manejo. La clave
para abrir nuevos mundos a la computacin era el desarrollo y la mejora de los
lenguajes de programacin, lenguajes que pudieran ser entendidos y utilizados
por personas que no fueran expertas ni en matemticas ni en ordenadores. Le
llev varios aos demostrar que esta idea era factible.
Los primeros compiladores y validacin.
En la persecucin de su creencia de que los programas de ordenador podan
escribirse en ingls, Hopper fue mas lejos con el desarrollo del compilador B-O
para Univac, mas tarde conocido como FLOW-MATIC. Se dise para traducir un
idioma que se pudiera utilizar para tareas empresariales clsicas, como la
facturacin automtica y el clculo de nminas. Utilizando FLOW-MATIC,
Hopper y su equipo pudieron hacer que el Univac I y II "entendieran" veinte
frases en ingls. Sin embargo, cuando recomend que todo el lenguaje de
programacin se desarrollara utilizando palabras en ingls, "se le dijo
inmediatamente que no poda hacerlo porque los ordenadores no entendan
ingls". Esto sucedi tres aos antes de que su idea fuera finalmente aceptada;
public su primer documento compilador en 1952.
La almirante Hopper particip activamente en las primeras reuniones en las
que se formularon instrucciones precisas para un lenguaje empresarial comn.
Fue uno de los dos consejeros tcnicos del resultante CODASYL Executive
Committee, y varios de los empleados a su cargo fueron miembros del
CODASYL Short Range Committee, encargados de definir el diseo bsico del
lenguaje COBOL. El diseo tena grandes influencias de FLOW-MATIC. Como
declar un miembro del Short Range Committee, "FLOW-MATIC era el nico
lenguaje de programacin orientado a los negocios utilizado en el momento en
que comenz el desarrollo de COBOL...Sin FLOW-MATIC probablemente nunca
podramos haber tenido un COBOL". Las primeras instrucciones en COBOL
aparecieron en 1959.
Hopper dedic gran cantidad de su tiempo a convencer a los directores de

empresas de que los compiladores de lenguajes en ingls, como FLOW-MATIC y


COBOL, eran factibles. Particip en una demostracin pblica de compiladores
COBOL realizada por la Sperry Corporation y RCA, donde quedaba probada la
independencia de la mquina. Despus de su breve retiro de la Marina, la
almirante Hopper dedic sus esfuerzos en el estandarizar COBOL y convencer a
toda la Marina para que utilizara este lenguaje de programacin de alto nivel.
Con sus aptitudes tcnicas, llev a su equipo a desarrollar tiles manuales y
herramientas COBOL. Con sus aptitudes discursivas, convenci a directores de
empresas de que deban aprender a utilizarlos.
Otro gran esfuerzo en la vida de Grace Hopper fue la estandarizacin de los
compiladores. Bajo su direccin, la Marina desarroll una seria de programas y
procedimientos para validar los compiladores COBOL. Este concepto de
validacin ha tenido amplia repercusin en otros lenguajes y organizaciones de
programacin; acab dando lugar a estndares nacionales e internacionales y
a funciones de validacin para la mayora de los lenguajes de programacin .

http://www.escobol.com/modules.php?
name=Sections&op=viewarticle&artid=34
http://es.slideshare.net/FARIDROJAS/compilador-presentation#
Las fases de un compilador son:
Anlisis Lxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no al
lenguaje. Es decir realiza un anlisis smbolo por smbolo indicando el token por cada uno de los
elementos reconocidos o el error en caso de no reconocer. Este anlisis no logra detectar muchos
errores por su caracterstica.
Ejemplo:
total=valor*5
Luego del anlisis lxico:
id = id * num
Anlisis Sintctico: En esta fase se analiza la estructura de las expresiones en base a
gramticas. Aqui ya se puede determinar si una extructura por ejemplo una expresin
matemtica mal formada. El anlisis que se realiza es jerarquico es decir en base a rboles de
derivacin que se obtienen de las mismas gramticas. Ejemplo: position:=initial + rate*60

Anlisis Semntico: Este anlisis es ms dificil de formalizar, determina el tipo de los


resultados intermedios, compmrobar que los argumentos que tienen un operador pertenecen al
conjunto de operadores posible, y si son compatibles entre s.

Generacin de Cdigo Intemedio: El cdigo intermedio es una representacin en base a


elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de optimizacin de cdigo.
a=b+c
1: + b c T1
2: = a T1
Optimizacin de Cdigo: Consiste en realizar uuna mejora en el cdigo intermedio, para
reducir el nmero de lneas y hacer que la ejecucin sea ms rpida
a=b+c
1: + b c a
Generacin de Codigo: Llegamos a la generacin de cdigo ensamblador o cdigo mquina del
procesador que nos interese por ejemplo:
a:=b+c
LOAD B

ADD C
STORE A

Bibliografia:
Aho Alfred, Compiladores principios tcnicas y herramientas
Garrido Alicia, Diseo de Compiladores, 2002

LENGUAJE DE PROGRAMACIN FORTRAN


Su nombre proviene del ingles de: FORmula TRANslator. Es un lenguaje de programacin para el desarrollo
de aplicaciones matemticas y cientficas, fue el primer lenguaje de programacin de alto nivel. Estos
lenguajes de alto nivel tienen entre otras las ventajas que pueden utilizarse en cualquier computadora y son
ms afines al lenguaje humano.
Uno de los lenguajes de programacin orientado a procedimientos es el FORTRAN. Un lenguaje orientado a
procedimiento es aquel en el que el programador al escribir el programa lo hace con un orden determinado
para resolver el problema. Estos lenguajes tienen la ventaja de que con una sola instruccin propia hacen
referencia a varias del lenguaje de mquina.
El FORTRAN nace en los aos 50, se utiliza principalmente para aplicaciones cientficas y el anlisis
numrico. Durante toda su vida ha pasado por varias versiones, inicialmente fue un lenguaje imperativo,
actualmente en sus ltimas versiones comprobamos que es un lenguaje de programacin orientado a objetos
y a procedimientos.
El FORTRAN fue bien acogido en la comunidad cientfica por su excelente rendimiento en todo este tipo de
aplicaciones. Por ello lo utilizaron para el desarrollo de programas de cmputo intensivo. Posteriormente se le
incluyo la aritmtica de nmeros complejos lo mejoro notablemente.
Algunos expertos opinan que el FORTRAN se acabar extinguiendo, pero comprobamos que actualmente se
sigue usando. Una de las razones por la que aun no se ha extinguido es porque a las compaas que han
invertido muchsimo dinero en el desarrollo de un determinado software, no les es rentable traducirlo a otro
lenguaje de programacin porque es una labor muy tediosa y cara.
http://www.larevistainformatica.com/FORTRAN.htm

http://pelusa.fis.cinvestav.mx/tmatos/LaSumA/LaSumA2_archivos/Supercomput
o/Fortran.pdf

Qu es Fortran

Por Guillermo Aedo Contreras

01 de julio de 2004

3 Comentarios

Desarrollo

Fortran es el primer lenguaje de alto nivel que sali al


mercado. Ya que sigue siendo til en Fsica, vamos a
estudiarlo.
Un poco de historia

Este lenguaje procedural fue el primero de alto nivel (1957)

Desarrollado por IBM para el IBM 704.

Orientado a la eficiencia en la ejecucin.

Se cre la definicin estndar del lenguaje en el 66.

Otras versiones:

FORTRAN 77

FORTRAN 90

Un sencillo ejemplo

Caractersticas

Tipos de datos soportados:

Numricos (enteros, reales, complejos y doble precisin).

Booleanos (logical)

Arreglos

Cadenas de caracteres

Archivos

FORTRAN 90 ya es estructurado, y no requiere sentencias GOTO. Slo admite dos


mbitos para las variables: local y global.
Veamos ahora un ejemplo ms extenso:

Variables y constantes

FORTRAN no es sensible a maysculas y minsculas. Los nombre de variables tienen

de 6 a 31 caracteres mximo y deben comenzar por una letra. Los blancos son
significativos.

Declaracin explicita de variables.

Enteras (I-N), el resto reales. (se modifica con IMPLICIT).

Punteros: en los primeros FORTRAN no hay punteros y todas las variables se


almacenan en memoria esttica. En FORTRAN 90 se declaran INTEGER, POINTER::P.
Para memoria dinmica ALLOCATE y DEALLOCATE

Tipos de datos

Arrays, pueden tener hasta 7 dimensiones y se guardan por colummnas.

REAL M(20),N(-5:5)

DIMENSION I(20,20) (tipo por nomenclatura implcita)


Cadenas de caracteres, el primer carcter es el 1, el operador // permite concatenar

cadenas.

CHARACTER S*10, T*25


Almacenamiento de datos. Se usa COMMON para datos compartidos y

EQUIVALENCE cuando almacenamos una variable con dos posibles tipos en la misma
posicin de memoria (como union en C). Se usa DATA para inicializar datos estticos.

DATA X/1.0/,Y/3.1416/,K/20/
Tipos definidos por el usuario, con TYPE <nombre>... END TYPE <nombre>

Control de secuencia
EL conjunto de estructuras de control es limitado:

Expresiones, prioridad de operadores

Enunciados

Asignacin, cuando se hace entre cadenas hay ajuste de tamao con blancos
o truncamiento.

Condicional. Permite IF ELSE IF... Para seleccin mltiple SELECT

CASE CASE.....CASE DEFAULT.... END SELECT

Iteracin. DO....END DO

Nulo, se usa solo para la etiqueta. CONTINUE.


Control de subprogramas. CALL invoca al subprograma y RETURN devuelve un valor

al programa llamante.
Construcciones propensas a error: GOTO.

Entrada y salida

Tipos de archivos:

Secuenciales

De acceso directo
Comandos: READ, WRITE, PRINT, OPEN , CLASE, INQUIRE (propiedades o estado

del archivo) REWIND y ENDFILE (para ubicar el puntero del fichero).


Para el tratamiento de excepciones en las sentencias READ/WRITE se puede

introducir la posicin de la rutina de dicho tratamiento (ERR=90).

Subprogramas

Hay tres tipos de subprogramas:

Function, devuelven un solo valor de tipo numrico, lgico o cadena de

caracteres.

Subroutine, devuelve valores a travs de variables no locales COMMON.

Funcin de enunciado, permite calcular una sola expresin aritmtica o lgica.

FN(X,Y)=SIN(X)**2-COS(Y)**2
Gestin de almacenamiento.

Las variables son locales o globales (COMMON)

Recursividad: RECURSIVE FUNCTION FACTORIAL(X)

Parmetros de subprograma. Paso por referencia.

Abstraccin y encapsulacin. Evaluacin del lenguaje

La abstraccin es posible mediante los subprogramas y el uso de variables COMMON,


aunque su uso es propenso a errores.

FORTRAN sigue siendo utilizado en el mbito cientfico y es muy eficiente realizando


clculos.

La estructura del programa suele ser dificil de entender.

En FORTRAN 90 se incluye la recursividad y la memoria dinmica.

Las etiquetas de las sentencias ya no son necesarias, ni el GOTO, pues se


ha transformado en un lenguaje estructurado.

El aspecto de los programas sigue siendo de procesamiento por lotes


http://www.desarrolloweb.com/articulos/1550.php