1. PONTIFICIA UIVERSIDAD CATÓLICA DEL ECUADOR
SEDE IBARRA
ESCUELA DE INGENIERÍA
1. DATOS INFORMATIVOS
1.1 Nombre: Edwin Valenzuela
1.2 Carrera: Ingeniería en Sistemas
1.3 Nivel: 5 Nivel
1.4 Tema: Instalación de Flex y Bison
1.5 Fecha: 2016/06/21
2. DESCRIPCION
APLICACIÓN DE LOS LENGUAJES
Los lenguajes de programación hoy en día tienen una infinidad de aplicaciones, básicamente
cualquier objeto electrónico tiene cierto grado de programación. Algunos de los más comunes
son C++ y JAVA, también existe HTML, HTTP, XML, XAML y C#, este último
actualmente es el más utilizado en todos los dispositivos y redes basados en MICROSOFT
(Xbox 350, Windows Mobile, Windows Phone, Windows Cloud, Zune, etc.). Ya que los
lenguajes de programación son informáticamente un puente entre el Hardware y el Software
estos permiten que las computadoras puedan establecer conexión con un celular, una cámara
o una consola portátil de videojuego. Otra de las aplicaciones de los lenguajes de
programación son las matemáticas como las calculadoras, cajas registradoras, cajeros
automáticos, por solo mencionar algunos ejemplos sencillos. Existen también niveles de
programación mucho más complejos como los videojuegos o los pilotos automáticos de los
aviones comerciales o las máquinas de juego de los casinos que siguen un patrón de
probabilidad a partir de un arreglo de números al azar establecido por una programación
numérica. La robótica es la combinación de mecánica, electrónica y programación, la cual
en base a sensores y mecanismos sigue una serie de instrucciones algorítmicas las cuales le
permiten por ejemplo a un brazo robótico montar una rueda, ajustar un tornillo o cortar un
rectángulo de 3 cm cuadrados en una placa de acero. Con el avance de la tecnología los
límites de la programación se vuelven cada vez más distantes.
2. HISTORIA DE LOS LENGUAJES DE PROGRAMACION
la historia de estos lenguajes, desde 1957 hasta el año 2005. Parece que, entre los
numerosos lenguajes de programación que existen hoy en día, los más populares son Java,
C y C++ (datos del año 2005).
1 – Fortran (1957)
FORmula TRANslation es el lenguaje de programación más antiguo y que continúa en uso.
Creada por John Backus, esta herramienta fue desarrollada para la computación científica de
alto nivel, matemática y estadística.
A día de hoy, este lenguaje se sigue usando en la industria automovilística, aeroespacial,
gubernamental y la investigación. Por ejemplo, es muy útil para el pronóstico de los servicios
meteorológicos.
2 – Cobol (1959)
El Common Business Oriented Language está detrás de la mayoría de los sistemas de
transacciones de negocio de los procesos de las tarjetas de crédito, ATMs (Modo de
Transferencia Asíncrona), telefonía, sistemas hospitalarios, gobierno, sistemas
automatizados y señales de tráfico.
El desarrollo de Cobol, creado por Grace Murray Hopper, muestra un lenguaje familiar y
uniforme para transacciones empresariales. Por ejemplo, lo usan en el servicio postal
estadounidense.
3. 3 – Basic (1964)
Creado por estudiantes de Dartmouth College, el denominado Beginners All Purpose
Symbolic Instruction Code fue diseñado como un lenguaje simplificado para aquellos que no
tenían como base fuertes conocimientos técnicos o matemáticos. Una versión modificada,
escrita por Bill Gates y Paul Allen, llegó a ser el primer producto de Microsoft. Fue vendido
al M.I.T.S. para el Altair.
En 1977, fue integrado en el Apple II para su arranque.
4 – C (1969)
Este lenguaje fue desarrollado entre 1969 y 1973 por Dennis Ritchie para los laboratorios
Bell Telephone para usarlos en el sistema Unix. Se le llamó “C” porque sus características
derivaban de un lenguaje anterior llamado “B”.
C llegó a ser tan poderoso que la mayoría del núcleo de Unix fue reescrito con él. De hecho,
hoy en día, Linux está todavía basado en C.
5 – Pascal (1970)
El lenguaje se llamó así en honor de Blaise Pascal, el inventor de las calculadoras
matemáticas, aunque su creador se llamaba Niklaus Wirth, y lo desarrolló como una
herramienta de enseñanza y formación aunque tiene un uso meramente comercial. Este
lenguaje se usa en Skype.
6 – C++ (1983)
4. En los laboratorios Bells, Bjarne Stroustrup modificó el lenguaje C al C++, creando lo que
muchos consideran el lenguaje de programación más popular que ha existido nunca. Además,
ha sido listado en lo alto de los top ten de los lenguajes de programación desde 1986 y
archivado en el Hall of Fame en 2003. Hoy en día es usado por Firefox, Office y Adobe PDF
Reader.
7 – Perl (1987)
Larry Wall, un programador Unix, creó Perl después de intentar extraer datos de un informe
y darse cuenta que Unix no podía llevar a cabo las operaciones que él necesitaba. Practical
Extraction Report Language fue descrito por su inventor como un lenguaje que “consigue
que hagas tu trabajo”. Actualmente es usado por Craigslist.
8 – Python (1991)
Monty Python sirvió de inspiración para nombrar este lenguaje. Guido Van Rossum lo creó
para solucionar problemas en el lenguaje ABC y continúa utilizándose para tal fin. Hoy en
día es usado por la NASA, Google y YouTube.
9 – Ruby (1993)
Fue creado por Yukihiro Matsumoto, conocido como Matz, y utilizando partes de sus
lenguajes de programación favoritos: Perl, Smalltalk, Eiffel, Ada y Lisp. Ahora es usado
por Basecamp.
10 – PHP (1995)
5. Rasmus Lerdoff desarrolló PHP para reemplazar unos scripts de Perl usados para mantener
su web personal. Hoy en día, PHP ha crecido hasta llegar a ser parte de una arquitectura web
integrada en 20 millones de websites. Facebook lo usa actualmente.
11 – Java (1995)
Un grupo de trabajadores de Sun Microsystems, liderado por James Gosling, creó Java para
arrancar los decodificadores de una televisión interactiva. Hoy en día, Java está presente en
más de 1.000 millones de PCs de todo el mundo y muchas websites no pueden funcionar sin
ella. Fue utilizada en 2004 en la misión de la NASA Mars Rovers.
12 – Javascript (1995)
Java y Javascript no están relacionados y tienen muy diferente semántica, aunque no lo
parezca. Javascript fue desarrollada por Brendan Eich, de Netscape, bajo el nombre de
Mocha. Tiene influencia del lenguaje C. Hoy en día es usado en servicios como node.js. De
él depende AJAX.
13 – Ruby On Rails (2005)
Fue extraído por David Heinemeier Hansson de su trabajo en Basecamp, un proyecto dirigido
por 37 señales. Hasson lanzó Ruby On Rails, en principio, como código abierto, en 2004,
pero no compartió los derechos hasta febrero de 2005. Ahora está en su versión 3.0.7 y tiene
más de 1.800
DISEÑO Y CONSTRUCCION DE UN COMPILADOR
7. Flex y Bison es un una herramienta que permite generar analizadores léxicos. A partir de un
conjunto de expresiones regulares, Flex busca concordancias en un fichero de entrada y
ejecuta acciones asociadas a estas expresiones.
Que es Flex y Bison
Flex y Bison, un generador de analizadores léxicos el primero y un generador de analizadores
gramaticales el segundo, son dos herramientas útiles para crear programas que reaccionen a
una entrada de datos con una estructura y un lenguaje predeterminado, como por ejemplo,
podemos crear compiladores, intérpretes y analizadores de línea de comando. Flex es un una
herramienta que permite generar analizadores léxicos. A partir de un conjunto de expresiones
regulares, Flex busca concordancias en un fichero de entrada y ejecuta acciones asociadas a
estas expresiones. Uno de los usos principales de Flex es como acompañante del analizador
de gramáticas Bison (o de Yacc). Los analizadores Bison necesitan una función llamada
‘yylex()’ para devolverles el siguiente token de la entrada. Esa función devuelve el tipo del
próximo token y además puede poner cualquier valor asociado en la variable global yylval.
Para usar Flex con Bison, normalmente se especifica la opción –d de Bison para que genera
el fichero ‘y.tab.h’ que contiene las definiciones de todos los ‘%tokens’ que aparecen el
fuente Bison.
8.
9.
10.
11.
12. COMO SE COMPILA FLEX Y BISON
Como se compila con Flex y Bison Para compilar en Flex y Bison seguimos los siguientes
pasos. Cuando tengas listo podrás llamar a flex/bison desde el símbolo del sistema sin
necesidad de ubicarte en la carpeta donde ha sido instalado flex/bison. Luego de escribir las
especificaciones de flex y bison realizar lo siguiente. Si se desea invocar a flex: