Automatas
Lenguajes de Programacion
Profesor: Ricardo Soto
Ayudantes: Cristian Diaz
Carlos Castillo
Nombre:
1. Considere la siguiente gram´tica en EBNF:
a
select_sql::=
condicion
nombre_campo
valor
letra
numero
operador_logico
nombre_tabla
::=
::=
::=
::=
::=
::=
::=
’select’[ ’all’|’distinct’] nombre_campo [(’,’ nombre_campo)*]’from’ nombre_tabla [(’,’ nombre_tabla)*]
[’where’ condicion [((’and’|’or’) condicion)*]]
[’group by’ nombre_campo [(’,’ nombre_campo)*]]
[’order by’ nombre_campo [’asc’|’desc’]
[(’,’nombre_campo [’asc’|’desc’])*]]
(nombre_campo| valor)operador_logico(nombre_campo| valor)
letra+
’ ’ ’ letra+ ’ ’ ’| numero+
’a’ ... ’z’|’A’...’Z’
’0’| ’1’ ... ’9
’==’ | ’=< ’| ’>=’ | ’ ’ |’!=’
letra+
En base a lo anterior identifique a lo menos 6 errores en las siguientes
sentencias(4 pts c/u):
select all precio ; cantidad from producto where precio >1000 group by 10
selectall from producto , descripcion where nombreproducto like 1000 order by rut
select distinct precio from producto where 1 XOR 2 and 2 >=3 group by order by desc
2. Defina un aut´mata pormedio de un diagrama de transicion e identifique los elementos de
o
su quintupla(la tabla de transicion puede ser expresada de cualquiera de las 2 formas).
(10 pts cada Diagrama, 1 pt cadaelemento de la quintupla):
L = { w ∈ {0, 1}∗ la cantidad de 0 sea divisible por 5 y la cantidad de 1 sea divisible
por 3 . }
Todas las palabras que tengan entre 3 y 5 letras.
3. Tomando encuenta la implementacion del lenguaje MILE hecho en clases, defina los tokens
(solo palabras reservadas del lenguaje) del lexer para el siguiente lenguaje:(6 pts.)
CONSTANT c 3.14;
VARIABint a,b=0;
VARIAB String nouse;
INIT
SHOW("Hola Mundo");
STOP==>SHOW(" pausa");
WAIT;;
CONTINUE==>SHOW(" ejecucion");
SHOW("Valor a");
ENTER(a);
LOOP(REPEAT::3)
a++
ENDIT...
Regístrate para leer el documento completo.