Академический Документы
Профессиональный Документы
Культура Документы
_________________________________________________
LENGUAJE LMS
Ciencias de la Computación IV
ALUMNAS
Carrasco, Herrera, Luz Pilar 11140343
Martel Solís, Leyla Katiuska 12140487
Perales Apaico, Flor Amalia 11140366
CICLO 2018-II
INDICE
Resumen
Introducción
Objetivos
Marco teórico
Descripción del Lenguaje
Análisis Lexicográfico
Análisis Sintáctico
Conclusión
Referencias bibliográficas
Glosario
RESUMEN
El lenguaje LMS, como cualquier otro lenguaje, tiene definido sus componentes
léxicos en base a letras, números y símbolos, las cuales han sido especificados. Luego
de las especificaciones, se realiza un análisis lexicográfico cuya función es verificar
que cada lexema corresponde a un componente léxico definido, luego se realiza un
análisis sintáctico cuya función es verificar que las expresiones cumplan con las
reglas gramaticales.
INTRODUCCION
En estos tiempos, los lenguajes de programación se han puesto de moda a nivel
mundial, debido a la demanda por sus diferentes funcionalidades y beneficios en los
respectivos campos de trabajos, es así que ahora crearemos un lenguaje partiendo de
lo más básico, que es con las especificaciones, claramente está que es un proceso; por
lo cual se ira avanzando con las indicaciones respectivas hasta culminarlo y lograr
obtener un compilador.
Esto es parte de un proyecto del curso Ciencias de la Computación IV a cargo del Prof.
Augusto Cortez Vásquez.
OBJETIVOS
Especificar un lenguaje formal de manera clara y sencilla
Especificar e implementar un compilador
1. MARCO TEORICO
LENGUAJE NATURAL
LENGUAJE FORMAL
Es una especialización del lenguaje natural, como el conjunto finito de palabras que
están formadas por caracteres o símbolos. Con estos se construye los lenguajes de
programación.
LENGUAJES DE PROGRAMACIÓN
TRADUCTOR
COMPILADOR
Este lenguaje es parte del proyecto del curso Ciencias de la Computación IV 2018-II,
cuyo fin es obtener un compilador; los avances que se realicen se plasmaran en este
informe, trataremos de ser lo más claras posible.
ESPECIFICACIONES
Letras mayúsculas A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T,
U, V, W, X, Y, Z.
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y,
Letras minúsculas
z
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Numéricos
Caracteres especiales {}, (), [], * ,+ ,- ,/, : ,; ,< ,> ,= , “”, ‘’,! ,$ ,% , | ,<= , >=,.
2.2 Operaciones:
+
Adición
-
Sustracción
*
Multiplicación
/
División
Operador
Operaciones lógicas
$
Conjunción
|
Disyunción
Negación
=
Igual
<
Menor
>
Mayor
<=
Menor que
>=
Mayor que
==
Igual
Diferente
2.3 Sentencias:
Sentencia de entrada
INGRESAR
SI
Sentencia condicional
SINO
FIN
PARA
Sentencia iterativa
MOSTRAR
Sentencia de salida
Pi=3.1416
Constante numérica real
ENTERO
REAL
BOOLEANO
CADENA
CARACTER
FUNCION
INICIO
FIN
INGRESAR
SI
SINO
PARA
MOSTRAR
2.7 Identificadores:
o Son símbolos léxicos que nombran entidades, para denominar algo en el lenguaje.
o El primer símbolo del identificador será un carácter alfabético (a,…,z,A,…Z,’_’).
Después de ese primer carácter podremos poner caracteres alfanuméricos (a,….,z) o
(1,…,9) y el guion subrayado (‘_’).
o Las mayúsculas y las minúsculas se consideran diferentes.
o Los identificadores no pueden coincidir con las palabras reservadas.
Ejemplos válidos:
a, jose, total, cte_luz
Ejemplos no válidos:
34, cte Luz, _suma
2.8 Comentarios:
o Cualquier secuencia de caracteres que comienzan con /*
o El comentario termina cuando se encuentra el par */
o No es posible introducir comentarios dentro de otro.
2.10 Delimitadores
o Se utilizan símbolos de agrupamiento como paréntesis, llaves o corchetes para
agrupar expresiones.
FUNCION Nombre_de_la_funcion()
INICIO
{
SENTENCIA DE DECLARACION:
SENTENCIAS DE ENTRADAS: Cuerpo del programa
(instrucciones)
OPERACIONES:
SENTENCIAS DE SALIDAS:
}
FIN
Ejemplo:
FUNCION perimetro()
INICIO
{
ENTERO a, b, c, p:
INGRESAR a:
INGRESAR b:
INGRESAR c:
p = a +b + c:
MOSTRAR p:
}
FIN
2.12 Sintaxis
3. ANÁLISIS
3.1. ANALIZADOR LEXICOGRÁFICO
SD ; SP ; SD
CUERPO
D / D ; SD
SD
TIPO LISTA_ID
D
ENTERO
TIPO
ID / ID , LISTA_ID
LISTA_ID
P / P ; SP
SP
SL / SE / SA
P
SL INGRESAR LISTA_ID
ID = E
SA
E / E OP E
E
MOSTRAR E
SE
+
OP
Diagrama de Conway
CUERPO
SD : SP :
SD
D : SD
TIPO LISTA_ID
TIPO
ENTERO
Lista_ID
ID
ID , SP
SP
P _: SP
SL SE SA
SL
INGRESAR LISTO_ID
SA
ID = E
E OP E
SE
MOSTRAR E
OP
+
CONCLUSION