Interprete de ejemplo. Laboratorio OLC1 1s 2021
- master: Contiene la implementación completa
- interfaz-grafica: Contiene solamente la interfaz gráfica en java
- gramatica: Contiene la implementación de la gramática.
Este lenguaje es de tipado fuerte, es decir, se debe especificar el tipo de dato de una variable y este no puede cambiar en tiempo de ejecución.
Este lenguaje es case insensitive, es decir, no hace distinciones entre mayúsculas y minúsculas.
El caracter de finalización de sentencias es el punto y coma.
Para encapsular sentencias dadas por los ciclos, métodos, funciones, etc, se utilizarán las llaves.
Los Tipos de datos primitivos soportados por el lenguaje son los siguientes:
Nombre | Uso | Valor por Defecto |
---|---|---|
Entero o Decimal | number | 0 |
Booleano | boolean | false |
Cadena | string | "" |
Una variable debe de ser declarada antes de ser utilizada. Todas las variables tendrán un tipo de dato que se mantiene a lo largo de la ejecución. Las variables podrán ser declaradas global y localmente.
< TIPO > < identificador > ;
Una variable puede cambiar su valor a lo largo de la ejecución, para esto se utilizan las asignaciones. Se puede asignar cualquier tipo de expresión siempre y cuando los tipos de datos sean compatibles.
< identificador > = < EXPRESION >;
El lenguaje provee un soporte para las siguientes operaciones:
Son operaciones entre valores cuantitativos. Cuentan con dos operadores y un signo que identifica la operación a realizar.
Las operaciones soportadas son las siguientes.
- Suma
- Resta
- Multiplicación
- División
< EXPRESION > < SIGNO > < EXPRESION >
Son operaciones que se utilizan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa.
Las operaciones soportadas son las siguientes:
- Igual
- Diferente
- Mayor
- Menor
< EXPRESION > < SIGNO > < EXPRESION >
Estas sentencias modifican el flujo del programa de acuerdo a ciertos criterios a evaluar.
Evalúa una expresión y modifica el flujo con base en si se cumple o no la condición.
if ( <CONDICION>) {
// lista de sentencias
}
if ( <CONDICION>) {
// lista de sentencias
} else {
// lista de sentencias
}
Son funciones y métodos que el lenguaje provee para facilitar el desarrollo.
Muestra en consola el valor de una lista de expresiones.
print ( < LISTA_EXPRESIONES > );
Son sentencias que ejecutan un bloque de sentencias de forma ciclica hasta que se cumpla una condición.
Sentencia que ejecuta el bloque de sentencias con respecto a una variable inicializada y aumentada en la misma sentencias. Solo se pueden utilizar variables ya declaradas. El incremento es de uso exclusivo para el for.
for( < ASIGNACION > ; < CONDICION > ; < INCREMENTO > ){
}
INCREMENTO -> < identificador > ++
Sentencia que ejecuta el bloque de sentencias si y solo si la condición evaluada es verdadera.
while (< CONDICION > ){
}
Un método es una subrutina de código que se identifica con un nombre. No retorna ningún valor ni recibe nigun parámetro.
func < identificador > (){
// lista de sentencias
}
Es la sentencia que invoca la ejecución de una función. Por medio de esta se asignan valores a los parámetros si es que los hay.
< identificador > ( );