Professional Documents
Culture Documents
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
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
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.
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
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
rid ird
Prefijo sufijo