GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Folien

Lenguajes

Jafet A. R. Informática Spanisch 22 Folien

Compiladores (Lenguajes)

Folien in diesem Satz (22)

  1. Compiladores (Lenguajes)

    • Compiladores (Lenguajes)
  2. Lenguaje

    • Un lenguaje (del provenzal lenguatge y del latín lingua) es un sistema de comunicación estructurado para el que existe un contexto de uso y ciertos principios combinatorios formales. Existen contextos tanto naturales como artificiales.
  3. Gramatica o Sintaxis

    • Cada lenguaje muestra una estructura llamada su gramática o sintaxis. Por ejemplo, una oración correcta siempre consiste en un sujeto seguido de un predicado, correcto aquí significa bien formado. Este hecho puede ser descrito por la siguiente fórmula: oración = predicado del sujeto.
    • Gramatica o Sintaxis
  4. Folie 4

    • Si añadimos a la formula algunos elementos...
    • sujecto-->>Juan|Mary
    • predicado-->>come|habla
    • ...entonces podemos definir aqui exactamente 4 posibles oraciones:
    • Juan come Mary come
    • Juan habla Mary habla
  5. Folie 5

    • Llamamos a estas fórmulas reglas de sintaxis, producciones o simplemente ecuaciones sintácticas. El sujeto y el predicado son clases sintácticas. Una notación más corta para lo anterior omitiendo identificadores significativos:
    • O=SP
    • S="a"|"b" L={ac,ad,bc,bd}
    • P="c"|"d"
    • El conjunto L de oraciones que puede generarse de esta manera, es decir, mediante la sustitución repetida de los lados izquierdos por los lados derechos de las ecuaciones, se llama el lenguaje.
  6. Folie 6

    • El ejemplo anterior evidentemente define un lenguaje que consta de solo cuatro oraciones, sin embargo, un el lenguaje contiene infinitas oraciones. El siguiente ejemplo muestra que un conjunto infinito puede muy bien definido con un número finito de ecuaciones. El símbolo ∅ representa la secuencia vacía.
    • O=A L={∅,a,aa,aaa,aaa,...}
    • A="a"A|∅
    • El medio para hacerlo es la recursión que permite que una sustitución (aquí de A por "a" A) se repita arbitrariamente a menudo.
  7. Folie 7

    • Nuestro tercer ejemplo se basa nuevamente en el uso de la recursividad. Pero genera no solo frases consistentes de una secuencia arbitraria del mismo símbolo, pero también oraciones anidadas:
    • O = A L = {b, abc, aabcc, aaabccc, ... }
    • A = "a" A "c" | "b".
    • Está claro que se pueden expresar anidamientos arbitrariamente profundos (aquí de As), una propiedad particularmente importante en la definición de lenguajes estructurados.
  8. Folie 8

    • Nuestro cuarto y último ejemplo exhibe la estructura de expresiones. Los símbolos E, T, F y V representan expresión, término, factor y variable.
    • E = T | A "+" T.
    • T = F | T "*" F.
    • F = V | "(" E ")".
    • V = "a" | "b" | "c" | "d".
    • A partir de este ejemplo, es evidente que una sintaxis no solo define el conjunto de oraciones de un idioma, sino también les proporciona una estructura.
  9. Folie 9

    • La sintaxis descompone oraciones en sus componentes.
    • Las representaciones gráficas se llaman árboles estructurales o árboles sintácticos.
    • La sintaxis descompone oraciones en sus componentes. Las representaciones gráficas se llaman árboles estructurales o…
  10. Caracteristicas

    • 1. El conjunto de símbolos de terminal. Estos son los símbolos que ocurren en sus oraciones. Se dice que son terminal, porque no pueden ser sustituidos por ningún otro símbolo. El proceso de sustitución se detiene con símbolos terminales.
    • 2. El conjunto de símbolos no terminales. Denotan clases sintácticas y pueden ser sustituidas.
  11. Folie 11

    • 3. El conjunto de ecuaciones sintácticas (también llamadas producciones). Estos definen las posibles sustituciones de símbolos no terminales Se especifica una ecuación para cada símbolo no terminal.
    • 4. El símbolo de inicio. Es un símbolo no terminal.
  12. Folie 12

    • Un lenguaje es, por lo tanto, el conjunto de secuencias de símbolos terminales que, comenzando con el símbolo de inicio, puede generarse mediante la aplicación repetida de ecuaciones sintácticas, es decir, sustituciones.
    • También deseamos definir rigurosa y precisamente la notación en la que se especifican las ecuaciones sintácticas. Deje que los símbolos no terminales sean identificadores como los conocemos de los lenguajes de programación, es decir, como secuencias de letras (y posiblemente dígitos), por ejemplo, expresión, término. Deje que los símbolos terminales sean secuencias de caracteres entre comillas (cadenas), por ejemplo, "=", "|".
  13. Forma Backus-Naur

    • Para la definición de la estructura de estas ecuaciones es conveniente usar la herramienta que acaba de definirse:
    • syntax = production syntax | ∅.
    • production = identifier "=" expression "." .
    • expression = term | expression "|" term.
    • term = factor | term factor.
    • factor = identifier | string.
    • identifier = letter | identifier letter | identifier digit.
    • string = stringhead """.
    • stringhead = """ | stringhead character.
    • letter = "A" | ... | "Z".
    • digit = "0" | ... | "9".
  14. Folie 14

    • Esta notación fue introducida en 1960 por J. Backus y P. Naur en forma casi idéntica para el descripción de la sintaxis del lenguaje Algol 60. Por lo tanto se llama Forma Backus Naur (BNF) (Naur, 1960).
    • Utilizar la recursión para expresar repeticiones simples es bastante perjudicial para legibilidad. Por lo tanto, ampliamos esta notación por dos constructos para expresar repetición y opcionalidad. Además, permitimos que las expresiones se encierren entre paréntesis. Por lo tanto, una extensión de BNF llamado EBNF (Wirth, 1977) se postula, que de nuevo usamos inmediatamente para su propia definición precisa:
  15. Folie 15

    • Lenguajes
    • Lenguajes
  16. Folie 16

    • syntax = {production}.
    • production = identifier "=" expression "." .
    • expression = term {"|" term}.
    • term = factor {factor}.
    • factor = identifier | string | "(" expression ")" | "[" expression "]" | "{" expression "}".
    • identifier = letter {letter | digit}.
    • string = """ {character} """.
    • letter = "A" | ... | "Z".
    • digit = "0" | ... | "9".
  17. Folie 17

    • Uno se pregunta por qué una definición exacta de las oraciones pertenecientes a un idioma debe ser de gran importancia. De hecho, no es realmente. Sin embargo, es importante saber si una oración está bien o no formado. Pero incluso aquí uno puede pedir una justificación. En definitiva, la estructura de un (bien formado) la oración es relevante, porque es instrumental para establecer el significado de la oración. Debido a la estructura sintáctica, las partes individuales de la oración y su significado pueden ser reconocidas independientemente, y juntos producen el significado del todo.
  18. Folie 18

    • Vamos a ilustrar este punto usando el siguiente ejemplo trivial de una expresión con el símbolo de suma. Deje que E represente la expresión y N el número:
    • E = N | E "+" E.
    • N = "1" | "2" | "3" | "4" .
  19. Folie 19

    • Evidentemente, "4 + 2 + 1" es una expresión bien formada. Incluso se puede derivar de varias maneras, cada correspondiente a una estructura diferente, como se muestra en la Figura:
    • Evidentemente, "4 + 2 + 1" es una expresión bien formada. Incluso se puede derivar de varias maneras, cada correspondiente…
  20. Folie 20

    • Las dos estructuras diferentes también se pueden expresar con paréntesis apropiados, a saber, como (4 + 2) + 1 y como 4 + (2 + 1), respectivamente. Afortunadamente, gracias a la asociatividad de la suma, ambos producen el mismo valor 7. Pero esto no siempre es necesario. El mero uso de la resta en lugar de la suma produce un ejemplo contrario que muestra que las dos estructuras diferentes también producen una interpretación diferente y resultado: (4 - 2) - 1 = 1, 4 - (2 - 1) = 3.
  21. Folie 21

    • El ejemplo ilustra dos hechos:
    • 1. La interpretación de las oraciones siempre descansa en el reconocimiento de su estructura sintáctica.
    • 2. Cada oración debe tener una estructura única para ser inequívoca. Si no se cumple el segundo requisito, surgen oraciones ambiguas
  22. Conclusión

    • Los lenguajes cuentan con normas y reglas las cuales dan un significado a la oración si estas se cumplen, de no ser así, se podrían interpretar otros significados produciendo la ambigüedad, que, en los lenguajes de programación, ocasionaría un problema.
    • Ademas, cabe destacar, que un lenguaje ambiguo puede llegar a ser inútil.

Informationen

Beschreibung
Informática Folienset am Lenguajes, erstellt von Jafet A. R. am 07/09/2018.
Erstellt von
Jafet A. R.
Aufrufe
18
Tags
compiladoreslenguajessistemas
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck