Sei sulla pagina 1di 6

Escner

1.1 Clasificacin de los Tokens


Tokens
Palabras reservadas
Delimitadores
Constantes
Operadores
Relacionales

Identificadores (i)
$
Reglas DDL
Reglas DML

Valor inicial
10
50
60
70
80
99
100
199
200
300

1.2 Tablas de Smbolos.


Palabras Reservadas (1)
Lexema
Smbolo Valor
Select
From
Where
In
And
Or
Create
Table
Char
Numeric
Not
Null

s
f
w
n
y
o
c
t
h
u
e
g

10
11
12
13
14
15
16
17
18
19
20
21

Constraint
Key
Primary
Foreign
References
Insert
Into
values

b
k
p
j
l
m
q
v

22
23
24
25
26
27
28
29

Delimitadores
(5)
,
.
(
)

Valor

Constantes
(6)
r
d
a

Valor

50
51
52
53
54

60
61
62

Operadores
(7)
+
*
/

Valor

Relacionales
(8)
>
<
=
>=
<=

Valor

70
71
72
73

81
82
83
84
85

Notas: Las constantes son: r (operadores relacionales), d (dgitos), a (alfanumricos).

_____________________________________________________________________
1
Lenguajes y Autmatas II
MSC. Martin Agndez Amador

Escner

1.3 Proceso del Escner


1.3.1 Ejemplo de sentencia SQL de entrada
SELECT ANOMBRE, CALIFICACION
FROM ALUMNOS, INSCRITOS, MATERIAS, CARRERAS
WHERE MNOMBRE=PROGSIST AND TURNO = TV
AND CNOMBRE=ITC AND SEMESTRE=2015I AND CALIFICACION > 70

1.3.2 Procesamiento de la sentencia


1) Utilizar las tablas de smbolos estticas.
2) Actualizar las tablas de smbolos dinmicas (identificadores y constantes).

Identificadores (100)
ANOMBRE
CALIFICACION
ALUMNOS
INSCRITOS
MATERIAS
CARRERAS
MNOMBRE
TURNO
CNOMBRE
SEMESTRE
CALIFICACION
.

Valor
101
102
103
104
105
106
107
108
109
110
111

Constantes Valor
PROGSIST
63
TV
64
ITC
65
2015I
66
70
67

Tablas de smbolos dinmicas

_____________________________________________________________________
2
Lenguajes y Autmatas II
MSC. Martin Agndez Amador

U1. AS Escner

1.3.3 Salida del Escner


No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

Lnea
TOKEN
1
SELECT
1
ANOMBRE
1
,
1
CALIFICACION
2
FROM
2
ALUMNOS
2
,
2
INSCRITOS
2
,
2
MATERIAS
2
,
2
CARRERAS
3
WHERE
3
MNOMBRE
3
=
3

3
CONSTANTE
3

3
AND
3
TURNO
3
=
3

3
CONSTANTE
3

4
AND
4
CNOMBRE
4
=
4

4
CONSTANTE
4

4
AND
4
SEMESTRE
4
=
4

4
CONSTANTE
4

4
AND
4
CALIFICACION
4
>
4
CONSTANTE

Tipo
1
100
5
100
1
100
5
100
5
100
5
100
1
100
8
5
62
5
1
100
8
5
62
5
1
100
8
5
62
5
1
100
8
5
62
5
1
100
8
61

Cdigo
10
101
50
102
11
103
50
104
50
105
50
106
12
107
88
54
63
54
14
108
88
54
64
54
14
109
88
54
65
54
14
110
88
54
66
54
14
111
86
67

Tabla Lxica

_____________________________________________________________________
Lenguajes y Autmatas II
M. S. C. Martn Agndez Amador

U1. AS Escner

1.4 Sentencias SQL vlidas


Ejemplo

1.4.1
SELECT *
FROM PROFESORES
WHERE EDAD >45 AND GRADO='MAE' OR GRADO='DOC'

Ejemplo

1.4.2
SELECT DISTINCT ANOMBRE
FROM ALUMNOS,INSCRITOS
WHERE ALUMNOS.A#=INSCRITOS.A# AND
INSCRITOS.SEMESTRE='2010I'

Ejemplo

1.4.3
SELECT DISTINCT ANOMBRE
FROM ALUMNOS,INSCRITOS,CARRERAS
WHERE ALUMNOS.A#=INSCRITOS.A# AND ALUMNOS.C#=CARRERAS.C#
AND INSCRITOS.SEMESTRE='2010I'
AND CARRERAS.CNOMBRE='ISC'
AND ALUMNOS.GENERACION='2010'

Ejemplo

1.4.4
SELECT DISTINCT ANOMBRE
FROM ALUMNOS A,INSCRITOS I,CARRERAS C
WHERE A.A#=I.A# AND A.C#=C.C# AND I.SEMESTRE='2010I'
AND C.CNOMBRE='ISC' AND A.GENERACION='2010'

Ejemplo

1.4.5
SELECT DISTINCT MNOMBRE, CNOMBRE
FROM CARRERAS C,DEPARTAMENTOS D,MATERIAS M
WHERE C.C#=M.C# AND C.D#=D.D# AND D.DNOMBRE='CIECOM'
ORDER BY 2,1

Ejemplo

1.4.6
SELECT M#,MNOMBRE
FROM MATERIAS
WHERE M# IN (SELECT M#
FROM INSCRITOS
WHERE A# IN (SELECT A#
FROM ALUMNOS
WHERE ANOMBRE='MESSI LIONEL'))

_____________________________________________________________________
Lenguajes y Autmatas II
M. S. C. Martn Agndez Amador

U1. AS Escner
Ejemplo

1.4.7
SELECT A#,ANOMBRE
FROM ALUMNOS
WHERE C# IN (SELECT C#
FROM CARRERAS
WHERE SEMESTRES=9)
AND A# IN (SELECT A#
FROM INSCRITOS
WHERE SEMESTRE='2010I')

Ejemplo

1.4.8
SELECT ANOMBRE
FROM ALUMNOS
WHERE A# IN (SELECT A#
FROM INSCRITOS
WHERE SEMESTRE='2010I'
AND M# IN (SELECT M#
FROM MATERIAS
WHERE MNOMBRE='ESTDAT'))

Ejemplo

1.4.9
SELECT ANOMBRE
FROM ALUMNOS
WHERE A# IN(SELECT A#
FROM INSCRITOS
WHERE P# IN (SELECT P#
FROM PROFESORES
WHERE GRADO='MAE'))
AND C# IN (SELECT C#
FROM CARRERAS
WHERE CNOMBRE='ISC')

Ejemplo

1.4.10
SELECT ANOMBRE
FROM ALUMNOS
WHERE A# IN (SELECT A#
FROM INSCRITOS
WHERE CALIFICACION < 70
AND M# IN (SELECT M#
FROM MATERIAS
WHERE C# IN (SELECT C#
FROM CARRERAS
WHERE D# IN (SELECT D#
FROM DEPARTAMENTOS
WHERE DNOMBRE =
'CIECOM'))))

_____________________________________________________________________
Lenguajes y Autmatas II
M. S. C. Martn Agndez Amador

U1. AS Escner

1.5 Caractersticas del Escner


Para la revisin y evaluacin del escner, se hace necesario que el programa cumpla con los
requisitos siguientes:
Caractersticas:
1. Contiene la primera fase de un traductor de consultas de un subconjunto del lenguaje
SQL.
2. La aplicacin, internamente har uso de los siguientes mdulos: de entrada, de anlisis,
de resultados y de errores.
Mdulo de entrada. El traductor recibir como entrada sentencias del siguiente
tipo:
SECCION TIPO DESCRIPCION
1.4.
DML Sentencias SELECT (completas)
Mdulo de anlisis. Es la primera fase del proceso de traduccin y determina si la
sentencia analizada se encuentre libre de errores lxicos. Si se encuentra libre de
errores llamar al Mdulo de resultados, en caso contrario, al Mdulo de errores.
Mdulo de resultados. En este avance, solamente indicar que la consulta se
encuentra libre de errores.
Mdulo de errores. Comprende el desplegado de los diferentes tipos de mensajes
generados en el mdulo de anlisis y sealan la parte del anlisis lxica, el nmero
de lnea y tipo de error.
3. Bajo ninguna circunstancia, el traductor terminar de forma abrupta su ejecucin. En
todo momento estar disponible al usuario (nueva consulta) y/o atrapar e indicar el
tipo de error generado en el mdulo de anlisis o de resultados).
4. Fecha de revisin y entrega.
Fecha

Oportunidad

27/AGO

03/SEP

Revisin
1
2
3
1
2
3

Valor
100
95
90
80
75
70

_____________________________________________________________________
Lenguajes y Autmatas II
M. S. C. Martn Agndez Amador

Potrebbero piacerti anche