Está en la página 1de 2

LP – curso 2021-2022 Lic.

Roberto Cabrera Alvarez

Lenguajes de Programación0
Actividad 03: Clase Práctica sobre Lenguajes de Programación (LP) y su procesamiento.

Objetivos
1- Caracterizar los problemas sintácticos y semánticos en un LP.
2- Escribir segmentos de la sintaxis de algún LP usando BNF o EBNF.
3- Escribir la semántica asociada a alguna sentencia de un LP, usando lenguaje
natural o semántica denotacional.

Bibliografía
Sethi, R., 2009. En: Lenguajes de programación conceptos y constructores. La Habana: Felix Varela,
p. 493. Epigrafes 1.4, 1.5 y 1.6 páginas de la 14 a la 23.

Ejercicios
Ejercicio 1: Sean las siguientes reglas BNF de los identificadores de un lenguaje:
<identificador> ::= <c><m><resto>
<resto> ::= <c> | <c><resto>
<c> ::= <n> | <m>
<n> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<m> ::= A | B | C
a) Indica si las siguientes ocurrencias de símbolos son identificadores del lenguaje:
a1) 1AB a2) ABAc a3) 4278 a4) 1B
b) Pasa dichas reglas al formalismo EBNF.

Ejercicio 2: Dada la sintaxis de expresiones sobre enteros siguiente (expresada en el formalismo


EBNF):
Expresión ::= Término {[“+” | “-”] Término }
Término ::= Factor { [ “*” | “div”] Factor }
Factor ::= ‘(’ Expresión ‘)’ | Variable | Constante
Indica si la expresión (9 div 3) – 4 es sintácticamente correcta, suponiendo que 9, 3 y 4 son
constantes.

Ejercicio 3: Obtén los diagramas sintácticos correspondientes a los siguientes ejemplos en


notación
EBNF:
3.1) Entero ::= Dígito{Dígito}
3.2) Cabprograma ::= “program” Ident ‘(’Ident {“,” Ident} ‘)’ ”;”
3.3)
Programa ::= Cabecera “;” Bloque “.”
Cabecera ::= “program” Identificador [‘(’Listaident‘)’]
Listaident : := Identificador {“,”Identificador}
3.4)

1
LP – curso 2021-2022 Lic. Roberto Cabrera Alvarez

Término ::= Factor {Multiplicador Factor}


Multiplicador ::= “*” | “/” | “div” | “mod” | “and”

Ejercicio 4: Obtén reglas en EBNF correspondientes a los siguientes diagramas sintácticos:


4.1)

4.2)

4.3)

4.4)

4.5)

También podría gustarte