Este documento describe la historia y aplicaciones de los lenguajes de programación. Explica que los lenguajes como C++ y Java se usan comúnmente en dispositivos electrónicos y que HTML, HTTP y XML son importantes para la programación de sitios web y aplicaciones. También resume brevemente el desarrollo de lenguajes de programación tempranos como Fortran y COBOL.
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: