Práctica 6 - UTN

Anuncio
Sintaxis y Semántica del Lenguaje
Práctica Nº 6
AUTOMATAS FINITOS – GRAMATICAS REGULARES
Esta práctica deberá resolverse en las semanas del 13/06/2016
1º Parte: AUTÓMATAS FINITOS DETERMINISTAS (AFD)
1) Dado el lenguaje ∑={a,b}, construir un AFD que acepte las palabras que contienen un
par de a.
2) Dado el lenguaje ∑={0,1}, construir un AFD que acepte las palabras con a lo sumo un
par de unos consecutivos.
3) Dado el lenguaje ∑={a,b}, construir un AFD que acepte las palabras que tienen un n°
impar de ocurrencias de la subcadena ab.
4) Dado el lenguaje ∑={a,b}, construir un AFD que acepte las palabras que al menos
contengan una o más ‘a’ seguidas por una única ‘b’. Escribir la definición formal del
Autómata.
5) Dado el lenguaje ∑={a,b}, construir un AFD que acepte el lenguaje formado por las
palabras que tienen un n° impar de ocurrencias de la subcadena ab. Escribir la
definición formal del Autómata.
2º Parte: GRAMÁTICAS REGULARES.
1) Definir la gramática para la siguiente sentencia Pascal: <iden>:= <expresión>;
considerando que en <expresión> pueden aparecer además de identificadores,
elementos de vectores y campos de registros.
2) Escribir una gramática para definir un arreglo multidimensional de Pascal.
3) Escribir una gramática para definir la sentencia while de Pascal.
4) Escribir la gramática correspondiente para definir el encabezamiento de un
procedimiento en un lenguaje Pascal-like considerando los 5 pasajes de parámetros
posibles.
5) Escribir la gramática que permita validar la declaración de variables en Pascal (sección
VAR).
Sintaxis y Semántica del Lenguaje
1
6) Dada la siguiente instrucción del lenguaje C:
for (lista de expresiones; una expresión; lista de expresiones)
{
cuerpo (conjunto de sentencias)
}
donde todas las expresiones y el cuerpo pueden ser opcionales. Escriba una
gramática que me permita definir esta instrucción.
Algunos ejemplos de su uso son:
for (i=0 , x=0 ; i<4 ; i=i+1 )
x=x + i;
………..
for( ; i<4 ; )
{
x= x + i;
i= i + 1;
}
………..
for ( ; ; ) ; -> loop infinito
7) En el lenguaje C, una variable se declara:
tipo nombre_variable;
tipo nombre_variable1, nombre_variable2;
y además es posible inicializarlas en la declaración:
tipo var1= valor1;
tipo var4= valor4, var5= valor5;
tipo var2, var3= valor3; -> Sólo se inicializa la variable 3
Escriba una gramática para la declaración de variables en C.
Sintaxis y Semántica del Lenguaje
2
Descargar