You are on page 1of 8

Concepto 1 (anlisis sintctico) Todo lenguaje de programacin tiene reglas que prescriben la estructura sintctica de programas bien formados.

En Pascal, por ejemplo, un programa se compone de bloques, un bloque de proposiciones, una proposicin de expresiones, una expresin de componentes lxicos, y as sucesivamente. Se puede describir la sintaxis de las construcciones de los lenguajes de programacin por medio de gramticas independientes del contexto o notacin BNF (Forma de Backus Naur). Las gramticas ofrecen ventajas significativas a los diseadores de lenguajes y programadores de compiladores. Una gramtica da una especificacin sintctica precisa y fcil de entender de un lenguaje de programacin. A partir de algunas clases de gramticas se puede construir automticamente un analizador sintctico eficiente que determine si un programa fuente est sintcticamente bien formado. Una gramtica diseada adecuadamente imparte una estructura a un lenguaje de programacin til para la traduccin de programas fuente a cdigo objeto correcto y para la deteccin de errores. Los lenguajes evolucionan con el tiempo, adquiriendo nuevas construcciones y realizando tareas adicionales. Estas nuevas construcciones se pueden aadir con ms facilidad a un lenguaje cuando existe una aplicacin basada en una descripcin gramatical del lenguaje CONCEPTO 2 (ANALISIS SINTACTICO) El anlisis sintctico es el anlisis de las funciones sintcticas o relaciones de concordancia y jerarqua que guardan las palabras agrupndose entre s en sintagmas, oraciones simples y compuestas de proposiciones o nexus Anlisis sintctico escolar El anlisis sintctico escolar: forma parte de un intento didctico de ensear gramtica y mejorar el conocimiento metalingstico de una lengua mediante un anlisis basado en la gramtica tradicional. Dicho anlisis est lejos de poder servir de un instrumento de investigacin lingstica apropiado, ya que es un hecho reconocido que difcilmente existen algoritmos que permitan analizar unvocamente cualquier oracin de una lengua. De hecho gran parte del avance de la sintaxis moderna ha surgido de la discusin de anlisis alternativos y en general discutidos y estudiados por diferentes enfoques de la teora lingstica. SE DETERMINA LA FUNCION DE LA PALABRA EN LA ORACCION PONIENDO DEBAJO DE ELLA LA FUNCION DE ESA PALABRA

CONCEPTO 3 (ANALISIS SINTACTICO)


Anlisis sintctico puede hacer referencia a: Anlisis sintctico, en lingistica, es el anlisis de las funciones sintcticas o relaciones de concordancia y jerarqua que guardan las palabras agrupndose entre s en sintagmas u oraciones. Anlisis sintctico, en informtica, es el proceso de analizar una secuencia de entrada para determinar su estructura gramatical segn una determinada gramtica formal.

ANLISIS SEMNTICO EN PROCESADORES DE LENGUAJE


La fase de anlisis semntico de un procesador de lenguaje es aqulla que computa la Informacin adicional necesaria para el procesamiento de un lenguaje, una vez que la estructura sintctica de un programa haya sido obtenida. Es por tanto la fase posterior a la de anlisis sintctico y la ltima dentro del proceso de sntesis de un lenguaje de programacin Sintaxis de un lenguaje de programacin es el conjunto de reglas formales que especifican la estructura de los programas pertenecientes a dicho lenguaje. Semntica de un lenguaje de programacin es el conjunto de reglas que especifican el significado de cualquier sentencia sintcticamente vlida. Finalmente, el anlisis semntico1 de un procesador de lenguaje es la fase encargada de detectar la validez semntica de las sentencias aceptadas por el analizador sintctico. Ejemplo 1: Dado el siguiente ejemplo de cdigo en C: Superficie = base * altura / 2; La sintaxis del lenguaje C indica que las expresiones se pueden formar con un conjunto de operadores y un conjunto de elementos bsicos. Entre los operadores, con sintaxis binaria infija, se encuentran la asignacin, el producto y la divisin. Entre los elementos bsicos de una expresin existen los identificadores y las constantes enteras sin signo (entre otros). Su semntica identifica que en el registro asociado a la identificadora superficie se le va a asociar el valor resultante del producto de los valores asociados a base y altura, divididos por dos (la superficie de un tringulo). Finalmente, el anlisis semntico del procesador de lenguaje, tras haber analizado correctamente que la sintaxis es vlida, deber comprobar que se satisfacen las siguientes condiciones: Que todos los identificadores que aparecen en la expresin hayan sido declarados en el mbito actual, o en alguno de sus mbitos (bloques2) previos. Que la subexpresin de la izquierda sea semnticamente vlida, es decir, que sea un lvalue3. Que a los tipos de los identificadores base y altura se les pueda aplicar el operador de multiplicacin. Un registro en C, por ejemplo, no ser a vlido

Expresiones Regulares
Las expresiones regulares constituyen un mecanismo bastante potente para realizar manipulaciones de cadenas de texto. El proceso para el que se usan estas expresiones, presente en el mundo el UNIX y el lenguaje Perl, es el de buscar y/o substituir una subcadena de texto dentro de otra cadena. En principio esto puede hacerse usando los mtodos del objeto string, pero el problema surge cuando no tenemos una subcadena fija y concreta sino que queremos buscar un texto que responda a un cierto esquema, como por ejemplo: buscar aquellas palabras que comienzan con http: y finalizan con una \, o buscar palabras que contengan una serie de nmeros consecutivos, etc.; es en estos casos cuando tenemos que utilizar las expresiones regulares. La subcadena que buscamos en el texto es lo que se llama un patrn y se construye encerrando entre dos barras inclinadas ( / ) una serie de caracteres normales y smbolos especiales llamados comodines o metacaracteres, (algo parecido a buscar archivos con nombre *.bat cuando queremos encontrar los ficheros con extensin bat). Este patrn es una descripcin del texto que se est buscando y JavaScript encontrar las subcadenas que concuerdan con ese patrn o definicin. Las expresiones regulares se usan con el objeto Regular Expresion y tambin dentro de los mtodos String.match, String.replace, String.search y String.split. En la tabla que sigue se muestran los caracteres comodn usado para crear los patrones y su significado, junto a un pequeo ejemplo de su utilizacin. Significado
\ Marca de carcter especial ^ Comienzo de una lnea $ Final de una lnea carcter (menos . Cualquierlnea) salto de | Indica opciones ( Agrupar caracteres ) [ Conjunto de caracteres ] opcionales

Ejemplo
/\$ftp/ /^-/ /s$/ /\b.\b/

Resultado
Busca la palabra $ftp Lneas que comienzan por Lneas que terminan por s Palabras de una sla letra

/(L|l|f|)ocal/ Busca Local, local, focal /(vocal)/ /escrib[aoe]/ Busca vocal Vale escriba, escribo, escribe

La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrn. Cada modificador acta sobre el carcter o el parntesis inmediatamente anterior. Descripcin
* +

Ejemplo

Resultado
Valen 234, 1234, 11234... Valen amar, aamar, aaamar... Valen amar, mar. Vale ppsado Vale mmala, mmmala.... Vale tala, talla, tallla

Repetir 0 o ms veces /l*234/ Repetir 1 o ms veces /a*mar/ /a?mar/ /p{2}sado/ /(m){2}ala/ /tal{1,3}a/

? 1 o 0 veces {n} Exactamente n veces {n,} Al menos n veces {m,n} entre m y n veces

Los siguientes son caracteres especiales o metacaracteres para indicar caracteres de texto no imprimibles, como puedan ser el fn de lnea o un tabulador, o grupos predefinidos de caracteres (alfabticos, numricos, etc...) Significado \b \B \d \D \O \t Ejemplos Resultado Encuentra ver en "ver de", pero no en "verde" Empareja ver con "Valverde" pero no con "verde" No falla en "A4" Fallara en "A4"

Principio o final de palabra /\bver\b/ Frontera entre no-palabras /\Bver\B/ /[A-Z]\d/ /[A-Z]\D/

Un dgito Alfabtico (no dgito) Carcter nulo Caracter ASCII 9 (tabulador) \f Salto de pgina \n Salto de lnea \w Cualquier alfanumrico, [a-zA-Z0-9_ ] \W Opuesto a \w ([^a-zA-Z0-9_ ]) \s Carcter tipo espacio (como tab) \S Opuesto a \s \cX Carcter de control X \oNN Carcter octal NN \xhh El hexadecimal hh

/\w+/ /\W/ /\sSi\s/ \c9 /\x41/

Encuentra frase en "frase.", pero no el . (punto). Hallara slo el punto (.) Encuentra Si en "Digo Si ", pero no en "Digo Sientate" El tabulador Encuentra la A (ASCII Hex41) en "letra A"

NOTACIN POLACA  A + B se dice infija (el operador + est entre los operando)  AB+ postfija (el operador est despus de los operando)  +AB prefija  (Operador antes de los operando) Prioridad de ejecucin     Parntesis ^ (Potencia) */ % Multiplicacin, divisin y Mod +Suma y resta

Ejemplos de conversin: 1. 2. Pasos 1 2 3 4 5 a) x + z * w xzw*+ b) (x+z) * w / t ^ y-v XZ + *W/T ^Y - V XZ + *W/ TY ^- V XZ + W*/ TY^- V XZ + W*TY^/-V XZ + W*TY^/ V-

Algoritmo de conversin de una expresin aritmtica Normal a Polaca Expresin sin parntesis 1- pila y aux: dos pilas vacas 2- While not fin de expresin do inicio 1- leer car //un carcter 2- si car es operando entonces push (pila, car) sino // es operador inicio while prioridad (tope (aux)) >= prioridad (car) do inicio c n pop (aux) push (pila, c) fin push (aux, car) fin fin

3- While aux no est vacia do // revolver a la pila original inicio c n pop (aux) push (pila, c) fin

Los algoritmos de recorrido de un rbol binario presentan tres tipos de actividades comunes: visitar el nodo raz recorrer el subrbol izquierdo recorrer el subrbol derecho Estas tres acciones llevadas a cabo en distinto orden proporcionan los distintos recorridos del rbol. Recorrido en PRE-ORDEN: Visitar el raz Recorrer el subrbol izquierdo en pre-orden Recorrer el subrbol derecho en pre-orden Recorrido EN-ORDEN Recorrer el subrbol izquierdo en en-orden Visitar el raz Recorrer el subrbol derecho en en-orden Recorrido en POST-ORDEN Recorrer el subrbol izquierdo en post-orden Recorrer el subrbol derecho en post-orden Visitar el raz

Recorridos
Si T es un rbol con raz n y subrboles T1, T2, . . . , Tk, entonces, El listado pre-orden de los nodos de T es la raz n, seguida por los nodos de T1 en pre-orden, despus los nodos de T2 en preorden, y as, hasta los nodos de Tk en pre-orden. El listado post-orden de los nodos de T es los nodos de T1 en postorden, seguidos de los nodos de T2 en post-orden, y as hasta los nodos de Tk en post-orden, todos ellos seguidos de n. El listado en-orden de los nodos de T es los nodos de T1 en-orden, seguidos por n, seguidos por los nodos de T2, . . . , Tk, cada grupo.

Recorreremos el rbol Siguiente:

Recorrido Pre Orden (RID) El recorrido en Pre Orden del rbol es el siguiente: 15, 6, 4, 10, 20, 17, 22 Recorrido En Orden(IRD) El recorrido en En Orden del rbol es el siguiente: 4, 6, 10, 15, 17, 20, 22 Recorrido Post Orden(IDR) El recorrido en Post Orden del rbol es el siguiente: 4, 10, 6, 17, 22, 20, 15

Comparemos Otros Recorridos

Pre Orden (RID) 18, 12, 5, 9, 28, 20, 35 En Orden (IRD) 5, 9, 12, 18, 20, 28, 35 Post Orden (IDR) 9, 5, 12, 20, 35, 28, 18 A+B SUFIJO +AB PREFIJO AB+ POSFIJO El arbol normal (a+b) * c
* A+b + c

Ab I pre orden d entre orden r pos orden


idr posfijo

rid ird

Prefijo sufijo

You might also like