Práctica #1 - Facultad de Ciencias-UCV

advertisement
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Lenguajes de Programacion
Práctica # 1
Tema 1: Descripción de Lenguajes
BNF (BACKUS NAUS FORM)
1. Dado el alfabeto Σ = {a, b}, sea L el lenguaje de las palabras en las que se
cumplen todas las condiciones siguientes:
✔ Al menos tienen 2 símbolos “b”.
✔ En ningún sitio tienen 2 o más símbolos, “a” consecutivos.
✔ Si la palabra empieza por “b”, no podrá terminar por “a”.
Palabras válidas: bb, bab, babbbabab, abba, abbbaba, abb
Palabras no válidas: b, aabb, bba, baab.
Se desea que se proporcione una gramática que describa el mismo lenguaje
mediante el uso de BNF.
2. Defina una gramática utilizando notación BNF para cada uno de los siguientes
conjuntos :
✔ Identificadores comenzando por una letra seguida de cero o mas letras,
dígitos o caracteres de subrayado. Por ejemplo: Saldo_1.
✔ Las constantes hexadecimales sin signo del Lenguaje C que comienzan con
0x o 0X seguido de uno o más dígitos hexadecimales. Por ejemplo: 0x80,
0X1FA.
✔ Constantes binarias enteras con signo opcional y terminado en la letra B. Por
ejemplo: −101B, +10010B.
✔ Constantes reales hexadecimales con signo opcional. Por ejemplo: −1AF.2
✔ Cadenas de letras minúsculas que contienen las cinco vocales en orden. Por
ej.: lxacdeyyitoputt.
3. Para cada ejemplo del ejercicio 2, muestre el árbol de sintaxis asociado.
4. En el sistema operativo VENTANAS, los archivos se nombran de una forma
muy simple, con varios elementos escritos consecutivamente y sin blancos
intermedios:
✔ Unidad: Es un elemento opcional, que consiste en una letra (normalmente
las primeras del alfabeto: A, B, C...) seguida de dos puntos “:”.
✔ Directorio: Es un elemento opcional encerrado entre dos barras “/”, que
consta de nombres de directorios separados a su vez por barras “/”. El
nombre de un directorio es una secuencia cualquiera de caracteres
alfanuméricos.
✔ Nombre y extensión: El primero es obligatorio, mientras que la segunda es
opcional; en caso de escribirse la extensión, ambos elementos se separan con
un punto. Los dos campos están formados por caracteres alfanuméricos,
aunque el nombre del archivo no tiene restricción de longitud y la extensión
del archivo se limita a un máximo de 3 caracteres.
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Lenguajes de Programacion
Ejemplos:
C:/VENTANAS/TEMP/TRASH
PRACTICA_0.DOC
A:PRACTICA_0.DATA
a) Defina una gramática que describa la sintaxis de los archivos del sistema
operativo VENTANAS, especificada en EBNF.
b) Para la gramática definida en la parte (a) muestre el diagrama sintáctico
equivalente.
5. En una lista de nombres en español, cada elemento se separan entre si con comas
y los dos últimos con la conjunción “y”. En el caso en el que se haga referencia
a un solo nombre, estará excluido de la regla anterior. Por ejemplo:
Ejemplos:
Luis
Luis y Lopy
Juan, Cesar y Sosa
Mata, Gil, Elisa, Sosa y Elisa
Escriba mediante BNF, una gramática que permita describir estas listas.
6. Se tiene un archivo de texto que contiene un conjunto de referencias
bibliográficas usadas con fines académicos. Las referencias bibliográficas se
estructuran de la siguiente manera:
✔ Se inicia con un autor o autores separados por punto y coma entre sí, y
finaliza en punto; seguidamente el título del libro, luego la edición, después
la editorial del libro y por último el año en que fue editado dicho libro.
✔ El autor consta del apellido en letras mayúsculas y la inicial del nombre. El
apellido y la inicial del nombre están separados por una coma.
✔ El título del libro comienza y termina con comillas dobles y está formado por
un conjunto de palabras que empiezan con letra mayúscula. Las palabras
entre sí se separan por espacios en blanco.
✔ La edición consta de un entero positivo seguido de la palabra edición y
finaliza en un punto. La edición y el título se encuentran separados entre sí
por una coma.
✔ La editorial del libro es un conjunto de palabras en letras mayúsculas y
finaliza en coma.
✔ El año de la edición es un entero positivo de cuatro dígitos.
Escriba una gramática usando notación EBNF que permita representar las
referencias del archivo de texto.
7. Escriba una gramática usando BNF, que permita reconocer expresiones
matemáticas de números enteros positivos.
Universidad Central de Venezuela
Facultad de Ciencias
Escuela de Computación
Lenguajes de Programacion
8. Proponga una definición sintáctica en la notación EBNF para denotar URLs. Un
URL (Universal Resource Locator) es una alternativa para especificar recursos
en internet de una manera homogénea. Para efectos de este problema, se
propone un subconjunto de lo que es realmente un URL, el cual es descrito a
continuación:
✔ Un URL puede comenzar con el protocolo mediante el cual se desea ubicar
el recurso (http://, ftp://, file://, news://).
✔ Luego se dispone de una parte opcional donde se especifica la cuenta de
usuario y el password separados entre sí por dos puntos (‘:’). Esta parte
finaliza con ‘@’.
✔ Seguidamente se especifica el identificador del host (ya sea una dirección IP
o un nombre).
✔ Finalmente, restan componentes opcionales que permiten diferenciar el
recurso definido por el URL, los cuales son (en orden):
1. Camino o directorio
2. Nombre del documento
3. Espacio para argumentos: empieza con el carácter ‘?’. La convención
que se sigue para especificar los argumentos es mediante un par,
formado por el nombre del argumento y su valor (separados entre si
por el caracter ‘=’). Los pares de argumentos se separan entre si por
un ‘&’ excepto el último par que se separa con ‘|’.
Nota: Para “Camino o Directorio” y “Nombre del Documento” se usaran las
especificaciones del problema 4 para “Directorio” y “Nombre y Extensión”
respectivamente.
Ejemplos:
https://mail.google.com/mail
ftp://191.168.0.23/
http://localhost:8080/index.jsp
ftp://olp_estud:mi_passwd@ftp.ucv.edu.ve/pub/dos/compiladores/prolog.
zip
http://www.example.com/cgi-bin/count.cgi?display=counter&width=6|
file=olp.dat
Descargar