Concepto 1 (análisis sintáctico) Todo lenguaje de programación tiene reglas que prescriben la estructura sintáctica de programas bien formados

. En Pascal, por ejemplo, un programa se compone de bloques, un bloque de proposiciones, una proposición de expresiones, una expresión de componentes léxicos, y así sucesivamente. Se puede describir la sintaxis de las construcciones de los lenguajes de programación por medio de gramáticas independientes del contexto o notación BNF (Forma de Backus ± Naur). Las gramáticas ofrecen ventajas significativas a los diseñadores de lenguajes y programadores de compiladores. Una gramática da una especificación sintáctica precisa y fácil de entender de un lenguaje de programación. A partir de algunas clases de gramáticas se puede construir automáticamente un analizador sintáctico eficiente que determine si un programa fuente está sintácticamente bien formado. Una gramática diseñada adecuadamente imparte una estructura a un lenguaje de programación útil para la traducción de programas fuente a código objeto correcto y para la detección de errores. Los lenguajes evolucionan con el tiempo, adquiriendo nuevas construcciones y realizando tareas adicionales. Estas nuevas construcciones se pueden añadir con más facilidad a un lenguaje cuando existe una aplicación basada en una descripción gramatical del lenguaje CONCEPTO 2 (ANALISIS SINTACTICO) El análisis sintáctico es el análisis de las funciones sintácticas o relaciones de concordancia y jerarquía que guardan las palabras agrupándose entre sí en sintagmas, oraciones simples y compuestas de proposiciones o nexus Análisis sintáctico escolar El análisis sintáctico escolar: forma parte de un intento didáctico de enseñar gramática y mejorar el conocimiento metalingüístico de una lengua mediante un análisis basado en la gramática tradicional. Dicho análisis está lejos de poder servir de un instrumento de investigación lingüística apropiado, ya que es un hecho reconocido que difícilmente existen algoritmos que permitan analizar unívocamente cualquier oración de una lengua. De hecho gran parte del avance de la sintaxis moderna ha surgido de la discusión de análisis alternativos y en general discutidos y estudiados por diferentes enfoques de la teoría lingüística. SE DETERMINA LA FUNCION DE LA PALABRA EN LA ORACCION PONIENDO DEBAJO DE ELLA LA FUNCION DE ESA PALABRA

no ser a válido . Semántica de un lenguaje de programación es el conjunto de reglas que especifican el significado de cualquier sentencia sintácticamente válida. Finalmente. Entre los elementos básicos de una expresión existen los identificadores y las constantes enteras sin signo (entre otros). es el proceso de analizar una secuencia de entrada para determinar su estructura gramatical según una determinada gramática formal. Un registro en C.CONCEPTO 3 (ANALISIS SINTACTICO) Análisis sintáctico puede hacer referencia a: Análisis sintáctico. o en alguno de sus ámbitos (bloques2) previos. Que a los tipos de los identificadores base y altura se les pueda aplicar el operador de multiplicación. es decir. por ejemplo. en lingüistica. Entre los operadores. divididos por dos (la superficie de un triángulo). Es por tanto la fase posterior a la de análisis sintáctico y la última dentro del proceso de síntesis de un lenguaje de programación Sintaxis de un lenguaje de programación es el conjunto de reglas formales que especifican la estructura de los programas pertenecientes a dicho lenguaje. tras haber analizado correctamente que la sintaxis es válida. en informática. Ejemplo 1: Dado el siguiente ejemplo de código en C: Superficie = base * altura / 2. una vez que la estructura sintáctica de un programa haya sido obtenida. Su semántica 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. con sintaxis binaria infija. el análisis semántico del procesador de lenguaje. el análisis semántico1 de un procesador de lenguaje es la fase encargada de detectar la validez semántica de las sentencias aceptadas por el analizador sintáctico. ANÁLISIS SEMÁNTICO EN PROCESADORES DE LENGUAJE La fase de análisis semántico de un procesador de lenguaje es aquélla que computa la Información adicional necesaria para el procesamiento de un lenguaje. es el análisis de las funciones sintácticas o relaciones de concordancia y jerarquía que guardan las palabras agrupándose entre sí en sintagmas u oraciones. que sea un lvalue3. se encuentran la asignación. Que la subexpresión de la izquierda sea semánticamente válida. deberá comprobar que se satisfacen las siguientes condiciones: Que todos los identificadores que aparecen en la expresión hayan sido declarados en el ámbito actual. Finalmente. Análisis sintáctico. La sintaxis del lenguaje C indica que las expresiones se pueden formar con un conjunto de operadores y un conjunto de elementos básicos. el producto y la división.

String. Este patrón es una descripción del texto que se está buscando y JavaScript encontrará las subcadenas que concuerdan con ese patrón o definición. focal /(vocal)/ /escrib[aoe]/ Busca vocal Vale escriba. local..search y String. Descripción * + Ejemplo Resultado Valen 234.. escribo. tallla Repetir 0 o más veces /l*234/ Repetir 1 o más veces /a*mar/ /a?mar/ /p{2}sado/ /(m){2}ala/ /tal{1. Valen amar.3}a/ ? 1 o 0 veces {n} Exactamente n veces {n. aaamar..match.n} entre m y n veces .bat cuando queremos encontrar los ficheros con extensión bat). es el de buscar y/o substituir una subcadena de texto dentro de otra cadena. (algo parecido a buscar archivos con nombre *. mar.. Valen amar. presente en el mundo el UNIX y el lenguaje Perl. Vale tala. Cualquierlínea) salto de | Indica opciones ( Agrupar caracteres ) [ Conjunto de caracteres ] opcionales Ejemplo /\$ftp/ /^-/ /s$/ /\b.} Al menos n veces {m..split. Vale ppsado Vale mmala.. String. En la tabla que sigue se muestran los caracteres comodín usado para crear los patrones y su significado.replace. mmmala. es en estos casos cuando tenemos que utilizar las expresiones regulares. pero el problema surge cuando no tenemos una subcadena fija y concreta sino que queremos buscar un texto que responda a un cierto esquema. Las expresiones regulares se usan con el objeto Regular Expresion y también dentro de los métodos String. La subcadena que buscamos en el texto es lo que se llama un patrón y se construye encerrando entre dos barras inclinadas ( / ) una serie de caracteres normales y símbolos especiales llamados comodines o metacaracteres..\b/ Resultado Busca la palabra $ftp Líneas que comienzan por Líneas que terminan por s Palabras de una sóla letra /(L|l|f|)ocal/ Busca Local. escribe La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrón. Significado \ Marca de carácter especial ^ Comienzo de una línea $ Final de una línea carácter (menos . El proceso para el que se usan estas expresiones. etc. 1234. 11234. En principio esto puede hacerse usando los métodos del objeto string. o buscar palabras que contengan una serie de números consecutivos. junto a un pequeño ejemplo de su utilización.. como por ejemplo: buscar aquellas palabras que comienzan con http: y finalizan con una \. aamar.Expresiones Regulares Las expresiones regulares constituyen un mecanismo bastante potente para realizar manipulaciones de cadenas de texto. Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior. talla.

Los siguientes son caracteres especiales o metacaracteres para indicar caracteres de texto no imprimibles.) Significado \b \B \d \D \O \t Ejemplos Resultado Encuentra ver en "ver de". pero no en "Digo Sientate" El tabulador Encuentra la A (ASCII Hex41) en "letra A" .) Encuentra Si en "Digo Si ". pero no en "verde" Empareja ver con "Valverde" pero no con "verde" No falla en "A4" Fallaría en "A4" Principio o final de palabra /\bver\b/ Frontera entre no-palabras /\Bver\B/ /[A-Z]\d/ /[A-Z]\D/ Un dígito Alfabético (no dígito) Carácter nulo Caracter ASCII 9 (tabulador) \f Salto de página \n Salto de línea \w Cualquier alfanumérico..". (punto).. [a-zA-Z0-9_ ] \W Opuesto a \w ([^a-zA-Z0-9_ ]) \s Carácter tipo espacio (como tab) \S Opuesto a \s \cX Carácter de control X \oNN Carácter octal NN \xhh El hexadecimal hh /\w+/ /\W/ /\sSi\s/ \c9 /\x41/ Encuentra frase en "frase. pero no el . Hallaría sólo el punto (. numéricos. etc. o grupos predefinidos de caracteres (alfabéticos. como puedan ser el fín de línea o un tabulador.

While not fin de expresión do inicio 1.NOTACIÓN POLACA  A + B se dice infija (el operador + está entre los operando)  AB+ postfija (el operador está después de los operando)  +AB prefija  (Operador ³ antes de los operando) Prioridad de ejecución     Paréntesis ^ (Potencia) */ % Multiplicación. 2.leer car //un carácter 2. división y Mod +Suma y resta Ejemplos de conversión: 1. car) sino // es operador inicio while prioridad (tope (aux)) >= prioridad (car) do inicio c n pop (aux) push (pila.pila y aux: dos pilas vacías 2.V XZ + W*/ TY^.V XZ + W*TY^/-V XZ + W*TY^/ V- Algoritmo de conversión de una expresión aritmética Normal a Polaca Expresión sin paréntesis 1.si car es operando entonces push (pila.V XZ + *W/ TY ^. c) fin push (aux. car) fin fin . Pasos 1 2 3 4 5 a) x + z * w xzw*+ b) (x+z) * w / t ^ y-v XZ + *W/T ^Y .

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 raíz ‡ recorrer el subárbol izquierdo ‡ recorrer el subárbol derecho Estas tres acciones llevadas a cabo en distinto orden proporcionan los distintos recorridos del árbol.3. Recorrido en PRE-ORDEN: ‡ Visitar el raíz ‡ Recorrer el subárbol izquierdo en pre-orden ‡ Recorrer el subárbol derecho en pre-orden Recorrido EN-ORDEN ‡ Recorrer el subárbol izquierdo en en-orden ‡ Visitar el raíz ‡ Recorrer el subárbol derecho en en-orden Recorrido en POST-ORDEN ‡ Recorrer el subárbol izquierdo en post-orden ‡ Recorrer el subárbol derecho en post-orden ‡ Visitar el raíz .

después los nodos de T2 en preorden. todos ellos seguidos de n. 6. 10. entonces. . . 10. 4. 20. 10. Recorreremos el Árbol Siguiente: ³ Recorrido Pre Orden (RID) El recorrido en Pre Orden del árbol es el siguiente: 15. . seguidos por los nodos de T2. 22 Recorrido En Orden(IRD) El recorrido en En Orden del árbol es el siguiente: 4. cada grupo. y así. seguidos de los nodos de T2 en post-orden. 6. 15. 17. .Recorridos Si T es un árbol con raíz n y subárboles T1. Tk. Tk. 20. 22. 17. T2. 6. . y así hasta los nodos de Tk en post-orden. El listado en-orden de los nodos de T es los nodos de T1 en-orden. seguidos por n. 22 Recorrido Post Orden(IDR) El recorrido en Post Orden del árbol es el siguiente: 4. 17. hasta los nodos de Tk en pre-orden. . El listado pre-orden de los nodos de T es la raíz n. 20. El listado post-orden de los nodos de T es los nodos de T1 en postorden. seguida por los nodos de T1 en pre-orden. 15 . . .

9. 35 En Orden (IRD) 5. 12. 20. 28. 9. 5. 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 . 28. 20. 35 Post Orden (IDR) 9. 12. 12. 20. 35.Comparemos Otros Recorridos Pre Orden (RID) 18. 18. 28. 5.