Lenguaje de programacin Conformado por un conjunto de smbolos junto a un conjunto de reglas para combinar dichos smbolos que se usan para expresar programas; este consta de un lxico, una sintaxis y una semntica. Lxico: para de la gramtica que permite trabajar un conjunto de smbolos permitidos o vocabulario. La cadena que contiene cero como componente lxico se escribe con. Sintaxis: Reglas que indican cmo realizar las construcciones del lenguaje. Semntica: Reglas que permiten determinar el significado de cualquier construccin del lenguajes. NOTACIN INFIJO Esta notacin es comn en las frmulas aritmticas y lgicas, donde se escriben los operadores entre los operndose en que estn actuando. Ejemplo. 3 + 3.
NOTACIN POSTFIJA Primero estn los operados y despus viene el operador que va a realizar los clculos sobre ellos. Ejemplo. 33 +
NOTACIN PREFIJO Es una forma de notacin para la lgica, la aritmtica, y e algebra, su caracterstica distintiva es que coloca los operadores a la izquierda de sus operandos. Ejemplo. +33 Ejemplos Expresin que sera escrita en la notacin infijo convencional como: (5 - 6) * 7 Puede ser escrito en prefijo como; * (- 5 6) 7 o simplemente * - 5 6 7 ya que los simples operadores aritmticos son todos binarios (por lo menos, en contextos aritmticos), cualquier representacin prefijo de ellos es inequvoca, y poner signos de agrupamiento a la expresin de prefijo es innecesario. En el ejemplo anterior, los parntesis en la versin de infijo eran requeridos. Si los movemos: 5 - (6 * 7) o simplemente los quitamos: 5 - 6 * 7 cambiara el significado y el resultado de toda la expresin. Sin embargo, la versin correspondiente de prefijo de este segundo clculo sera escrita como: - 5 * 6 7 UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
ESCRITURA DE UN COMPILADOR COMPILADOR Programa que lee un programa escrito en un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto.
Lenguajes de Programacin Arquitectura de Computador Teora de Lenguaje Algoritmo Ingenieria de Software UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
RBOL SINTCTICO DE LA COMPILACIN Posicin:= inicial + velocidad * 60
SISTEMA PARA PROCESAR UN LENGUAJE
UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
ANLISIS LXICO Son secuencias de caracteres que tienen un significado colectivo. Ejemplo anlisis lxico: Posicin := inicial + velocidad * 50 Se agrupan los componentes lxicos siguiente; 1. Identificador Posicin 2. Smbolo de asignacin := 3. Identificador Inicial 4. El signo suma 5. El identificador velocidad 6. El signo multiplicar 7. El numero 50
ANLISIS SINTCTICO Tambin denominado anlisis jerrquico. Agrupa los componentes lxicos del programa fuente en frases gramaticales que el compilador utiliza para sintetizar la salida.
UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
ANLISIS SEMNTICO Verifica si cada operador tiene operandos permitidos por la especificacin del lenguaje fuente. Ejemplos el compilador indica error cada vez que se use un nmero real o el compilador puede necesitar convertir el numero entero a real.
Ejemplos Expresiones formadas por dgitos y signos ms y menos: 9-5+2 dicha expresin se dice es lista de dgitos separados por signos ms o menos. La siguiente expresin gramtica describe la sintaxis de esas expresiones. Lista lista + digito Lista lista - digito Lista digito Digito 0 1 2 3 4 5 6 7 8 9 Las tres anteriores producciones con terminal lista del lado izquierdo se pueden agrupar as: Lista lista + digito lista - digito digito Aqu los componentes lxicos de la gramtica son los smbolos. UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
Combinando la nocin digito y lista en cadena se podra haber escrito la gramtica: cadena cadena + cadena cadena cadena 0 1 2 3 4 5 6 7 8 9 Deducir que 9-5+2 es una lista como sigue: 9 es una lista de produccin, dado que 9 es un digito. 9-5 es una lista de produccin dado que 9 es una lista y 5 es un digito. 9-5+2 es una lista de produccin, dado que 9-5 es una lista y 2 es un digito. Se obtiene el siguiente rbol sintctico segn la gramtica.
La convencin 9+5+2 es equivalente a 9+(5+2); cuando un operador como 5 tiene operadores a su izquierda y derecha, se necesita convenciones para decidir que operador considerar. Se dice que el operador + asocia a la izquierda, porque un operando que tenga un signo ms a ambos lados es tomado por el operador que este a su izquierda. En la mayora de los lenguajes de programacin los cuatro operadores aritmticos son asociativos a la izquierda. 9 es una cadena de produccin, dado que 9 es una cadena. 9+5 es una cadena de produccin dado que 9 es una cadena y 5 es un cadena. 9+5+2 es una cadena de produccin, dado que 9-5 es una cadena y 2 es una cadena. UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
9 es una cadena de produccin, dado que 9 es una cadena. 5+2 es una cadena de produccin dado que 5 es una cadena y 2 es un cadena. 9+(5+2) es una cadena de produccin, dado que 9 es una cadena y 5+2 es un cadena.
En la siguiente figura se visualiza la sintaxis para traducir expresiones formadas por dgitos separados por los signos ms o menos, a notacin postfija.
El rbol del anlisis sintctico con anotaciones correspondientes, donde el valor del atributo t en cada nodo se calcul por regla semntica. UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
Seguimiento de una posicin de un androide.
rbol de anlisis sintctico con anotaciones para comenzar oeste a sur.
UNIVERSIDAD DEL TOLIMA INSTITUTO DE EDUCACION A DISTANCIA CONTROLADORES PROGRAMABLES EL LENGUAJE
Sintaxis de la posicin del androide.
Tarea Convertir las siguientes expresiones en infijo, postfijo y prefijo: 12 34+ (=46) 5 1 2 + 4 * + 3 ((9 + 9) * (8 - 6) ) + 7 1 3 4 * + +- (89)9 Describa las expresiones gramaticales de las siguientes expresiones; y elabore el rbol de anlisis para cada caso. S S S + SS* a S 0 S 1 0 1 S + S S -SS a S S ( S ) S S a S b S b S a S S a S + S S S S * ( S ) Realice una ruta (debe dibujarla teniendo en cuenta X y Y) para poder llegar a la Universidad, asignando un valor inicial e indicando el anlisis sintctico de comenzar, la ubicacin geogrfica. Con base en lo anterior debe realizar el rbol de anlisis sintctico. Realizar una tabla dirigida por la sintaxis de la posicin.