Grace Hooper (1906-1992) la MARK I de IBM en 1944Nada menos que una brillante mujer, la almiranteGrace 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 lenguajeFlowmatic, 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 lenguajeCOBOL(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 deHombre del Aoen 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 COMPILADOREn 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 cdigoBINARIOcomprensible para la mquina. En 1960 construye el compilador llamado COBOL (COmmon Business-Oriented Languaje).Grace Murray Hopperhttp://helmutsy.homestead.com/files/computacion/historia/historia_computadores_4.htmCompilador A-0 1951Museo virtualAo: 1951Lugar: Estados UnidosCreador:Grace HopperDefinicin: 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 uncargador 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+a-0&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 Eckert-Mauchly 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=34http://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*5Luego 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+c1: + b c T12:= a T1Optimizacin de Cdigo:Consiste en realizar uuna mejora en el cdigo intermedio, para reducir el nmero de lneas y hacer que la ejecucin sea ms rpidaa=b+c1: + b c aGeneracin de Codigo:Llegamos a la generacin de cdigo ensamblador o cdigo mquina del procesador que nos interese por ejemplo:a:=b+cLOAD BADD CSTORE ABibliografia: Aho Alfred, Compiladores principios tcnicas y herramientas Garrido Alicia, Diseo de Compiladores, 2002LENGUAJE 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/Supercomputo/Fortran.pdfQu es Fortran PorGuillermo Aedo Contreras 01 de julio de 2004 3 Comentarios DesarrolloFortran 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 90Un sencillo ejemplo
Caractersticas
Tipos de datos soportados: Numricos (enteros, reales, complejos y doble precisin). Booleanos (logical) Arreglos Cadenas de caracteres ArchivosFORTRAN 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 ... END TYPE 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 IFELSE IF... Para seleccin mltiple SELECT CASECASE.....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 loteshttp://www.desarrolloweb.com/articulos/1550.php