SlideShare una empresa de Scribd logo
Pontificia Universidad Católica Del Ecuador
Sede Ibarra
Escuela De Ingeniería
Nombre: Espinosa Villarreal Héctor Efrén
Nivel: Quinto de Sistemas
Fecha: 28/05/2013
Tema: Taller de Compiladores
Herramientas para la construcción de procesadores de lenguaje.
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.
Reseña Histórica
Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje
específico conocido como código máquina, el cual la máquina comprende fácilmente, pero
que lo hace excesivamente complicado para las personas. De hecho sólo consiste en
cadenas extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un
traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras
provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para
sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la
misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de
recordar y entender que los números.
La necesidad de recordar secuencias de programación para las acciones usuales llevó a
denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar),
MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le
denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje
ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los
cuales reciben su denominación porque tienen una estructura sintáctica similar a los
lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.
La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella
Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después
de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica.
Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el
trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de
computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como
homenaje a esta programadora.
A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para
desarrollar una alternativa más práctica al lenguaje ensamblador para programar la
computadora central IBM 704. El histórico equipo Fortran de Backus consistió en los
programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy
Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.2
El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer
compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado,
porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su
compilador pudiera generar código cuyo desempeño fuera comparable al de un código
hecho a mano en lenguaje ensamblador.
En 1960, se creó COBOL, uno de los lenguajes usados aún en la actualidad, en informática
de gestión.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba,
se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se
crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los
microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar
dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un
lenguaje de alto nivel bastará una sola sentencia.
Diseño y construcción de un compilador.
Las herramientas Flex y Bison.
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.
Los ficheros de entrada de Flex (normalmente con la extensión .l) siguen el siguiente
esquema:
%%
patrón1 {acción1}
patrón2 {acción2}
...
Dónde:
Patrón: expresión regular
Acción: código C con las acciones a ejecutar cuando se encuentre concordancia del patrón
con el texto de entrada
Que es flex y Bison
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. Es compatible casi al 100% con Lex, una
herramienta clásica de Unix para la generación de analizadores léxicos, pero es un
desarrollo diferente realizado por GNU bajo licencia GPL.
GNU bison es un programa generador de analizadores sintácticos de propósito general
perteneciente al proyecto GNU disponible para prácticamente todos los sistemas
operativos, se usa normalmente acompañado de flex aunque los analizadores léxicos se
pueden también obtener de otras formas.
Como se instala Flex y Bison
1. Descarga el software disponible en el sitio de la cátedra.
2. Instalar el software en la unidad C: (para explicar a partir del punto 4 se tendrá
como hipótesis de que flex y bison han sido instalados en la ruta: C:GnuWin32
donde contiene una subcarpeta llamada bin donde se encuentran los programas
respectivos)
3. Flex y bison son aplicaciones de consola, por lo que se deberá entrar al Símbolo del
sistema y tipear líneas de comando para ejecutar Flex. Una alternativa es crear un
archivo de proceso por lotes (*.bat) que contenga las líneas de comando para la
ejecución de Flex y Bison y/o la compilación del archivo generado.
4. Si deseas que flex y bison se integren al conjunto de variables del entorno (esto te
va a permitir llamar a flex/bison desde cualquier ubicación en la línea de
comandos) debes hacer lo siguiente:
 Clic derecho en “Mi PC”.
 Selecciona “Propiedades”
 Clic en la pestaña “Opciones Avanzadas”
 Presiona el botón “Variables de entorno”
En la ventana de variables de entorno, ubicarse en la sección “Variables del sistema” luego
haz clic en PATH y luego en el botón “Modificar” (si no está hacer clic en “Nueva” y agregar
PATH)
En la nueva ventana, escribir la ruta completa al directorio “bin” de la aplicación
flex/bison. Si existe otro valor, separarlos con comas.
Aceptar los cambios y luego reiniciar el sistema operativo.
Si deseas instalar un compilador de C como MinGwin, deberás integrar la ruta de acceso al
compilador a las variables de entorno para facilitar la llamada al programa. Por ejemplo si
se instaló MingWin en “C:Mingw” y dentro de la carpeta “bin” se encuentra “gcc.exe” que
es el ejecutable, entonces de deberá agregar (análogo a los pasos anteriores) lo siguiente:
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:
Flex y bison   héctor espinosa

Más contenido relacionado

La actualidad más candente

Innovaciones realizadas a los programas
Innovaciones realizadas a los programasInnovaciones realizadas a los programas
Innovaciones realizadas a los programasCahydeSwaan
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y BisonShirlid .n
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y BisonSteven Tabango
 
Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Raul Hernandez Mayo
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosDIEGO BAROJA
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex bysonJhon Alexito
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladorespaulina8
 
Conceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de LenguajesConceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de LenguajesGrace Laguna
 
Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de LenguajesGLORIABELEN3
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladoresCJAO
 
Taller de investigacion
Taller de investigacionTaller de investigacion
Taller de investigacionJoel Cordoba
 

La actualidad más candente (20)

Cuaderno2
Cuaderno2Cuaderno2
Cuaderno2
 
Innovaciones realizadas a los programas
Innovaciones realizadas a los programasInnovaciones realizadas a los programas
Innovaciones realizadas a los programas
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y Bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex byson
 
Presentación1
Presentación1Presentación1
Presentación1
 
INTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISONINTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISON
 
C:\fakepath\compiladores
C:\fakepath\compiladoresC:\fakepath\compiladores
C:\fakepath\compiladores
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex y Bison
Flex y BisonFlex y Bison
Flex y Bison
 
Conceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de LenguajesConceptos Básicos acerca de Procesadores de Lenguajes
Conceptos Básicos acerca de Procesadores de Lenguajes
 
Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de Lenguajes
 
Cap2 compiladores
Cap2 compiladoresCap2 compiladores
Cap2 compiladores
 
Taller de investigacion
Taller de investigacionTaller de investigacion
Taller de investigacion
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 

Similar a Flex y bison héctor espinosa

Similar a Flex y bison héctor espinosa (20)

COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex y brison
Flex y brisonFlex y brison
Flex y brison
 
Taller
TallerTaller
Taller
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Software1
Software1Software1
Software1
 
Software1
Software1Software1
Software1
 
Flex y-bison
Flex y-bisonFlex y-bison
Flex y-bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Capítulo 0 Qbasic generalidades
Capítulo 0 Qbasic generalidadesCapítulo 0 Qbasic generalidades
Capítulo 0 Qbasic generalidades
 
FLEX Y BISON
FLEX Y BISONFLEX Y BISON
FLEX Y BISON
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compilador
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
Flex y Bison
Flex y Bison Flex y Bison
Flex y Bison
 
Edison caicedo
Edison caicedoEdison caicedo
Edison caicedo
 

Más de Hector Espinosa

Analizador léxicográfico
Analizador léxicográficoAnalizador léxicográfico
Analizador léxicográficoHector Espinosa
 
El papel del analizador sintáctico
El papel del analizador sintácticoEl papel del analizador sintáctico
El papel del analizador sintácticoHector Espinosa
 
Clasificación de los lenguajes de programación según la
Clasificación de los lenguajes de programación según laClasificación de los lenguajes de programación según la
Clasificación de los lenguajes de programación según laHector Espinosa
 

Más de Hector Espinosa (7)

Estado fiancieros
Estado fiancierosEstado fiancieros
Estado fiancieros
 
Analizador léxicográfico
Analizador léxicográficoAnalizador léxicográfico
Analizador léxicográfico
 
El papel del analizador sintáctico
El papel del analizador sintácticoEl papel del analizador sintáctico
El papel del analizador sintáctico
 
Bootstrapping
BootstrappingBootstrapping
Bootstrapping
 
Compilar mediante dos
Compilar mediante dosCompilar mediante dos
Compilar mediante dos
 
Clasificación de los lenguajes de programación según la
Clasificación de los lenguajes de programación según laClasificación de los lenguajes de programación según la
Clasificación de los lenguajes de programación según la
 
DV Decompiler
DV DecompilerDV Decompiler
DV Decompiler
 

Flex y bison héctor espinosa

  • 1. Pontificia Universidad Católica Del Ecuador Sede Ibarra Escuela De Ingeniería Nombre: Espinosa Villarreal Héctor Efrén Nivel: Quinto de Sistemas Fecha: 28/05/2013 Tema: Taller de Compiladores Herramientas para la construcción de procesadores de lenguaje. 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. Reseña Histórica Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de números 0 y 1. Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números. La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel. La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después
  • 2. de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora. A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar la computadora central IBM 704. El histórico equipo Fortran de Backus consistió en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.2 El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador. En 1960, se creó COBOL, uno de los lenguajes usados aún en la actualidad, en informática de gestión. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará una sola sentencia. Diseño y construcción de un compilador.
  • 3. Las herramientas Flex y Bison. 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. Los ficheros de entrada de Flex (normalmente con la extensión .l) siguen el siguiente esquema: %% patrón1 {acción1} patrón2 {acción2} ... Dónde: Patrón: expresión regular Acción: código C con las acciones a ejecutar cuando se encuentre concordancia del patrón con el texto de entrada Que es flex y Bison 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. Es compatible casi al 100% con Lex, una herramienta clásica de Unix para la generación de analizadores léxicos, pero es un desarrollo diferente realizado por GNU bajo licencia GPL. GNU bison es un programa generador de analizadores sintácticos de propósito general perteneciente al proyecto GNU disponible para prácticamente todos los sistemas operativos, se usa normalmente acompañado de flex aunque los analizadores léxicos se pueden también obtener de otras formas. Como se instala Flex y Bison 1. Descarga el software disponible en el sitio de la cátedra. 2. Instalar el software en la unidad C: (para explicar a partir del punto 4 se tendrá como hipótesis de que flex y bison han sido instalados en la ruta: C:GnuWin32 donde contiene una subcarpeta llamada bin donde se encuentran los programas respectivos) 3. Flex y bison son aplicaciones de consola, por lo que se deberá entrar al Símbolo del sistema y tipear líneas de comando para ejecutar Flex. Una alternativa es crear un archivo de proceso por lotes (*.bat) que contenga las líneas de comando para la ejecución de Flex y Bison y/o la compilación del archivo generado.
  • 4. 4. Si deseas que flex y bison se integren al conjunto de variables del entorno (esto te va a permitir llamar a flex/bison desde cualquier ubicación en la línea de comandos) debes hacer lo siguiente:  Clic derecho en “Mi PC”.  Selecciona “Propiedades”  Clic en la pestaña “Opciones Avanzadas”  Presiona el botón “Variables de entorno” En la ventana de variables de entorno, ubicarse en la sección “Variables del sistema” luego haz clic en PATH y luego en el botón “Modificar” (si no está hacer clic en “Nueva” y agregar PATH) En la nueva ventana, escribir la ruta completa al directorio “bin” de la aplicación flex/bison. Si existe otro valor, separarlos con comas.
  • 5. Aceptar los cambios y luego reiniciar el sistema operativo. Si deseas instalar un compilador de C como MinGwin, deberás integrar la ruta de acceso al compilador a las variables de entorno para facilitar la llamada al programa. Por ejemplo si se instaló MingWin en “C:Mingw” y dentro de la carpeta “bin” se encuentra “gcc.exe” que es el ejecutable, entonces de deberá agregar (análogo a los pasos anteriores) lo siguiente: 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: