Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gramática de Expresiones Matemáticas
Gramática de Expresiones Matemáticas
Gramática de Expresiones Matemáticas
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INFORMÁTICA
Tarea 2:
Expresiones
matemáticas
POR: JOAQUÍN BAHAMONDE B.
Concepción, Chile.
Algunas definiciones…
Uno de los campos más importantes estudiados en el curso, es la
comprensión de las gramáticas, las cuales, tienen como fin el generar algún
lenguaje en específico. Lenguaje es toda combinación de strings de algún largo
determinado que son válidos para una máquina. El generar un lenguaje es algo de
suma importancia, ya que, bastantes arquetipos usados por los informáticos hoy en
día son producto de esto. Sin ir más lejos, todos los lenguajes de programación
compilados, son producto de un lenguaje generado. Sabida la importancia que
conllevan estos, es interesante recalcar que existen distintas gramáticas que van a
permitir generar distintos lenguajes. Entre las más destacadas, se encuentran las
gramáticas independientes del contexto. Estas, tienen como peculiaridad, que son
relativamente fáciles de originar y permiten generar lenguajes bastante interesantes
y útiles. Toda gramática libre de contexto, al igual que todas las gramáticas,
presentan una estructura formal que las definen. Esta es, siendo G la gramática:
𝐺 = ( 𝑉, Ʃ, 𝑆, 𝑅)
En donde:
𝐴 = ( 𝑄, Ʃ, 𝛤, 𝛥, 𝑞0 , 𝑧0 , 𝐹)
En donde:
Se pidió generar una gramática independiente del contexto que genere cada una
de estos tipos de expresiones matemáticas y a la vez su autómata de pila
correspondiente que las reconozca.
Cada una de estas expresiones matemáticas pueden llevar solo dígitos entre 0
y 9, además de las operaciones +, -, * y /. Solo las expresiones infijo deben aceptar
paréntesis.
Gramáticas libres de contexto
Se procederán a definir, de manera formal, cada una de las gramáticas de
libre contexto que generarán los distintos tipos de expresiones matemáticas
mencionadas anteriormente. Notar que todas las gramáticas pueden generar un
único dígito, esto es así dado que a un único número se le puede considerar una
expresión matemática.
𝐺 = ( 𝑉, Ʃ, 𝑆, 𝑅)
Con:
- 𝑅 ={
}
b) Expresión matemática con prefijo:
𝐺 = ( 𝑉, Ʃ, 𝑆, 𝑅)
Con:
- 𝑅 ={
1,2 S → OP SS | DIG
3,4,5,6 OP → + | - | * | /
7,8,9,10,11,12,13,14,15 DIG → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
16
}
c) Expresión matemática con sufijo:
𝐺 = ( 𝑉, Ʃ, 𝑆, 𝑅)
Con:
- 𝑅 ={
1,2 S → SS OP | DIG
3,4,5,6 OP → + | - | * | /
7,8,9,10,11,12,13,14,15 DIG → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
16
}
DEFINICIÓN AUTÓMATAS DE PILA
Se procederán a definir, de manera formal, cada uno de los autómatas de
pila que reconocerán los distintos tipos de expresiones matemáticas mencionadas
anteriormente. Cada uno de estos autómatas se generaron a partir de las reglas de
conversión de gramática de libre contexto a autómata de pila, es por esto que en
general estos autómatas son no deterministas.
𝐴 = ( 𝑄, Ʃ, 𝛤, 𝛥, 𝑞0 , 𝑧0 , 𝐹)
Con:
- 𝑄 = {𝑞1 , 𝑞2 , 𝑞3 }
- Ʃ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /, ( , ) }
- 𝛤 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, / , ( , ), S, OP, DIG, 𝑧0 }
- 𝑞0 = 𝑞1
- 𝑧0 = 𝑧0
- 𝐹 = {𝑞3 }
- 𝛥 ={
1) 𝛥(𝑞1, 𝜀, 𝑧0 ) = {(𝑞2 , 𝑆𝑧0 )}
2) 𝛥(𝑞2, 𝜀, 𝑆) = {(𝑞2 , S OP S), (𝑞2 , (S)), (𝑞2, 𝐷𝐼𝐺)}
3) 𝛥(𝑞2, 𝜀, 𝑂𝑃) = {(𝑞2 , +), (𝑞2 , −), (q2 ,∗), (𝑞2 ,/)}
4) 𝛥(𝑞2, 𝜀, 𝐷𝐼𝐺 ) =
{(𝑞2 , 0), (𝑞2 , 1), (q2 , 2), (𝑞2 , 3), (𝑞2 , 4), (𝑞2 , 5), (q2 , 6), (𝑞2 , 7)(𝑞2 , 8), (𝑞2 , 9)}
5) 𝛥(𝑞2,0,0) = {(𝑞2 , 𝜀)}
6) 𝛥(𝑞2,1,1) = {(𝑞2 , 𝜀)}
7) 𝛥(𝑞2,2,2) = {(𝑞2 , 𝜀)}
8) 𝛥(𝑞2,3,3) = {(𝑞2 , 𝜀)}
9) 𝛥(𝑞2,4,4) = {(𝑞2 , 𝜀)}
10) 𝛥(𝑞2,5,5) = {(𝑞2 , 𝜀)}
11) 𝛥(𝑞2,6,6) = {(𝑞2 , 𝜀)}
12) 𝛥(𝑞2,7,7) = {(𝑞2 , 𝜀)}
13) 𝛥(𝑞2,8,8) = {(𝑞2 , 𝜀)}
14) 𝛥(𝑞2,9,9) = {(𝑞2 , 𝜀)}
15) 𝛥(𝑞2, +, +) = {(𝑞2 , 𝜀)}
16) 𝛥(𝑞2, −, −) = {(𝑞2 , 𝜀)}
17) 𝛥(𝑞2,∗,∗) = {(𝑞2 , 𝜀)}
18) 𝛥(𝑞2,/,/) = {(𝑞2 , 𝜀)}
19) 𝛥(𝑞2, (, () = {(𝑞2 , 𝜀)}
20) 𝛥(𝑞2, ), )) = {(𝑞2 , 𝜀)}
21) 𝛥(𝑞2, 𝜀, 𝑧0 ) = {(𝑞3 , 𝜀)}
}
b) Expresión matemática prefijo:
𝐴 = ( 𝑄, Ʃ, 𝛤, 𝛥, 𝑞0 , 𝑧0 , 𝐹)
Con:
- 𝑄 = {𝑞1 , 𝑞2 , 𝑞3 }
- Ʃ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, / }
- 𝛤 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, / , S, OP, DIG, 𝑧0 }
- 𝑞0 = 𝑞1
- 𝑧0 = 𝑧0
- 𝐹 = {𝑞3 }
- 𝛥 ={
1) 𝛥(𝑞1, 𝜀, 𝑧0 ) = {(𝑞2 , 𝑆𝑧0 )}
2) 𝛥(𝑞2, 𝜀, 𝑆) = {(𝑞2 , OP SS), (q2 , 𝐷𝐼𝐺)}
3) 𝛥(𝑞2, 𝜀, 𝑂𝑃) = {(𝑞2 , +), (𝑞2 , −), (q2 ,∗), (𝑞2 ,/)}
4) 𝛥(𝑞2, 𝜀, 𝐷𝐼𝐺 ) =
{(𝑞2 , 0), (𝑞2 , 1), (q2 , 2), (𝑞2 , 3), (𝑞2 , 4), (𝑞2 , 5), (q2 , 6), (𝑞2 , 7)(𝑞2 , 8), (𝑞2 , 9)}
5) 𝛥(𝑞2,0,0) = {(𝑞2 , 𝜀)}
6) 𝛥(𝑞2,1,1) = {(𝑞2 , 𝜀)}
7) 𝛥(𝑞2,2,2) = {(𝑞2 , 𝜀)}
8) 𝛥(𝑞2,3,3) = {(𝑞2 , 𝜀)}
9) 𝛥(𝑞2,4,4) = {(𝑞2 , 𝜀)}
10) 𝛥(𝑞2,5,5) = {(𝑞2 , 𝜀)}
11) 𝛥(𝑞2,6,6) = {(𝑞2 , 𝜀)}
12) 𝛥(𝑞2,7,7) = {(𝑞2 , 𝜀)}
13) 𝛥(𝑞2,8,8) = {(𝑞2 , 𝜀)}
14) 𝛥(𝑞2,9,9) = {(𝑞2 , 𝜀)}
15) 𝛥(𝑞2, +, +) = {(𝑞2 , 𝜀)}
16) 𝛥(𝑞2, −, −) = {(𝑞2 , 𝜀)}
17) 𝛥(𝑞2,∗,∗) = {(𝑞2 , 𝜀)}
18) 𝛥(𝑞2,/,/) = {(𝑞2 , 𝜀)}
19) 𝛥(𝑞2, 𝜀, 𝑧0 ) = {(𝑞3 , 𝜀)}
}
c) Expresión matemática sufijo:
𝐴 = ( 𝑄, Ʃ, 𝛤, 𝛥, 𝑞0 , 𝑧0 , 𝐹)
Con:
- 𝑄 = {𝑞1 , 𝑞2 , 𝑞3 }
- Ʃ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, / }
- 𝛤 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, / , S, OP, DIG, 𝑧0 }
- 𝑞0 = 𝑞1
- 𝑧0 = 𝑧0
- 𝐹 = {𝑞3 }
- 𝛥 ={
1) 𝛥(𝑞1, 𝜀, 𝑧0 ) = {(𝑞2 , 𝑆𝑧0 )}
2) 𝛥(𝑞2, 𝜀, 𝑆) = {(𝑞2 , SS OP), (q2 , 𝐷𝐼𝐺)}
3) 𝛥(𝑞2, 𝜀, 𝑂𝑃) = {(𝑞2 , +), (𝑞2 , −), (q2 ,∗), (𝑞2 ,/)}
4) 𝛥(𝑞2, 𝜀, 𝐷𝐼𝐺 ) =
{(𝑞2 , 0), (𝑞2 , 1), (q2 , 2), (𝑞2 , 3), (𝑞2 , 4), (𝑞2 , 5), (q2 , 6), (𝑞2 , 7)(𝑞2 , 8), (𝑞2 , 9)}
5) 𝛥(𝑞2,0,0) = {(𝑞2 , 𝜀)}
6) 𝛥(𝑞2,1,1) = {(𝑞2 , 𝜀)}
7) 𝛥(𝑞2,2,2) = {(𝑞2 , 𝜀)}
8) 𝛥(𝑞2,3,3) = {(𝑞2 , 𝜀)}
9) 𝛥(𝑞2,4,4) = {(𝑞2 , 𝜀)}
10) 𝛥(𝑞2,5,5) = {(𝑞2 , 𝜀)}
11) 𝛥(𝑞2,6,6) = {(𝑞2 , 𝜀)}
12) 𝛥(𝑞2,7,7) = {(𝑞2 , 𝜀)}
13) 𝛥(𝑞2,8,8) = {(𝑞2 , 𝜀)}
14) 𝛥(𝑞2,9,9) = {(𝑞2 , 𝜀)}
15) 𝛥(𝑞2, +, +) = {(𝑞2 , 𝜀)}
16) 𝛥(𝑞2, −, −) = {(𝑞2 , 𝜀)}
17) 𝛥(𝑞2,∗,∗) = {(𝑞2 , 𝜀)}
18) 𝛥(𝑞2,/,/) = {(𝑞2 , 𝜀)}
19) 𝛥(𝑞2, 𝜀, 𝑧0 ) = {(𝑞3 , 𝜀)}