• No se han encontrado resultados

clase2-LP-DefSintaxis

N/A
N/A
Protected

Academic year: 2020

Share "clase2-LP-DefSintaxis"

Copied!
34
0
0

Texto completo

(1)

LENGUAJES DE

PROGRAMACIÓN

CLASE N°2

CLASE N°2

Leissi M. Castañeda León

(2)

¿Que veremos hoy?

1. Introducción

(3)

1.- Introducción

Sintáxis: La forma o estructura de las expresiones,

declaraciones, y unidades de programa.

Semántica: El significado de las expresiones,

declaraciones y unidades de programa. declaraciones y unidades de programa.

La Sintáxis y la Semántica proveen la definición de un

Lenguaje

Usuarios de una definición de Lenguaje

(4)

Ejemplo

Sintáxis de la declaración while (Java)

(5)

2.- El problema general de describir

Sintáxis: Terminología

Una sentencia es una cadena de caracteres sobre

algún alfabeto.

Un lenguaje es un conjunto de sentencias. Un lenguaje es un conjunto de sentencias.

Un lexema es la unidad sintáctica de más bajo nivel del

lenguaje (*, sum, begin,+)

(6)

Ejemplo

index = 2 * count + 17;

(7)

Definición Formal de Lenguajes

Reconocedores

Un reconocedor lee los caracteres de entrada del lenguaje y

decide si las cadenas de entrada pertenecen al lenguaje

Ejemplo: Parte del análisis sintáctico de un compilador.

Generadores

Generadores

Un dispositivo que genera sentencias de un lenguaje.

Se puede determinar si la sintáxis de una sentencia en particular

(8)

3.- Métodos formales para describir

Sintáxis

Notación BNF (Backus-Naur Form) y Gramáticas libres

del Contexto

Método más ampliamente conocido para describir la sintáxis de

un lenguaje de programación

BNF ampliado

Mejora la legibilidad y habilidad de escritura de BNF.

(9)

BNF y Gramáticas Libres del Contexto

Gramáticas Libres del Contexto

Desarrolladas por Noam Chomsky a mitad de 1950 Generadores de Lenguajes, describen la sintáxis de

los lenguajes naturales

Define una clase de lenguaje llamado Lenguajes

Define una clase de lenguaje llamado Lenguajes

(10)

Backus-Naur Form (BNF)

Backus-Naur Form (1959)

Inventada por John Backus para describir Algol 58 BNF es equivalente a gramáticas libres del contexto BNF es un meta-lenguage usado para describir a otro

lenguaje lenguaje

BNF, usa abstracciones para representar clases de

(11)

BNF Fundamentos

No terminales: abstracciones BNF Terminales: lexemas y tokens

Gramática: Una colección de reglas

Ejemplos de reglas BNF:

<ident_list> identifier | identifer, <ident_list>

<if_stmt> if <logic_expr> then <stmt>

(12)

Reglas BNF

Una regla tiene un lado izquierdo (LHS) y un lado

derecho (RHS), y consiste de símbolos terminales y símbolos no terminales.

Una gramática es un conjunto finito no vacío de reglas. Una gramática es un conjunto finito no vacío de reglas.

Una abstracción (o símbolo no terminal) puede tener

más de un lado derecho:

<stmt> → <single_stmt>

(13)

Ejemplos

Declaración if en Ada

<if_stmt> if <logic_expr> then <stmt>

<if_stmt> if <logic_expr> then <stmt> else <stmt>

ó

<if_stmt> if <logic_expr> then <stmt>

(14)

Describiendo Listas

La sintáxis de las listas son descritas usando recursión

<ident_list> → ident

| ident, <ident_list>

Una recursiva si su LHS aparece en su RHS. Una recursiva si su LHS aparece en su RHS.

Una derivación es una aplicación repetitiva de reglas,

(15)
(16)
(17)

Ejemplo de una Gramática

<program> → <stmts> <stmts> → <stmt>

| <stmt> ; <stmts> <stmt> → <var> = <expr>

<var> → a | b | c | d

<expr> → <term> + <term> | <term> - <term> <term> → <var>

(18)

Un ejemplo de derivación

<program> => <stmts> => <stmt>

=> <var> = <expr> => a =<expr>

=> a = <term> + <term>

=> a = <var> + <term>

=> a = b + <term> => a = b + <term>

(19)

Derivación

Cada cadena de símbolos en la derivación es una forma

sentencial.

Una sentencia es una forma sentencial que solamente

tiene símbolos terminales. tiene símbolos terminales.

Una derivación por la izquierda es aquella en la cual el

(20)

Que Tipo de Lenguaje Genera ?

(21)

Parse Tree

Una representación jerárquica de derivación

<program>

<stmts>

<stmt>

a

<var> = <expr>

(22)
(23)

Ambiguedad en las Gramáticas

Una gramática es ambigua si genera una

(24)

Ejemplo: Gramática Ambigua

<expr> → <expr> <op> <expr> | const

<op> → / |

(25)

Ejemplo: Gramática Ambigua

Una manera de solucionar la ambiguedad es usar el

parse tree para indicar los niveles de precedencia de los operadores

<expr> → <expr> - <term> | <term> <term> → <term> / const| const

<term> → <term> / const| const

<expr>

<expr> <term>

<term> <term> / const

(26)
(27)
(28)

Gramática No Ambigua con

Precedencia de Operadores

Ejercicio derivar por la derecha para la

(29)
(30)

Asociatividad de Operadores

La asociatividad de los operadores también puede ser

indicado por una gramática

<expr> -> <expr> + <expr> | const (ambigua)

<expr> -> <expr> + const | const (no ambigua)

(31)

Asociatividad de Operadores

Recursividad por la izquierda

<expr> -> <expr> + const | const (no ambigua)

(32)

BNF Extendido

Partes opcionales son localizadas en y brackets ([ ])

<proc_call> -> ident [(<expr_list>)]

Partes alternativas de RHSs son localizadas entre

parentesis y separadas mediante barras verticales parentesis y separadas mediante barras verticales

<term> <term> (+|-) const

Repeticiones (0 o más) son localizadas entre llaves ({ })

(33)
(34)

Referencias

Referencias

Referencias

Referencias

Bibliográficas

Bibliográficas

Bibliográficas

Bibliográficas

Referencias

Documento similar

Sistema coaxial para un patrón primario empleado en la trazabilidad de fuentes de ruido térmico, que comprende una línea de transmisión coaxial (1) y un anillo (100), estando una

Lomo de salmón glaseado al mango y asado al horno de carbón, servido con un topping de pico de gallo y mango fresco, una guarnición de ensalada mézclum y verdura asada de

“En ese momento pensamos que       estábamos haciendo un buen trabajo porque el petróleo estaba desapareciendo”, recuerda Gerald Boalch, biólogo marino de la      

Assaisonnement/Épices, Fruits, Poisson, Charcuterie, Produits Laitiers, Légumes, Fruits de Mer, Viande.. Légumes Fruits Viande Poisson Frutis de

• Expresar impresiones y juicios personales en un discurso oral o escrito en inglés a fin de elegir entre varias opciones.. • Proporcionar y solicitar información básica de

Con la aplicación de la reforma de la Política Agrícola Común, prórro- ga sobre prórroga, hasta el techo del 15 de mayo fijado por la Unión Europea para solicitar las ayudas y

Los regímenes de certificación de la UE abarcan tanto el cumplimiento de las normas mínimas de producción obligatorias como los requisitos suplementarios relacionados con la

El paso siguiente es escoger de esta columna el menor valor, y en una tabla paralela se le asigna la mayor cantidad posible de unidades, podemos observar como el menor costo es «2»