¡Hola! Llegaste a mi compilador realizado en Java y ASM para la materia de Lenguajes y Autómatas 1 y 2. El presente documento corresponde a la documentación del lenguaje JASCI, lenguaje compilado basándome en el lenguaje de programación Java.
Nota: Este repositorio es para uso educativo y no pretende remplazar algún lenguaje actual en la industria.
Al momento de declarar variables se deberá tener en cuenta lo siguiente:
- El nombre debe contener únicamente caracteres del tipo letra ASCII (en mayúsculas y/o minúsculas)
- No se aceptan números, caracteres de subrayado ni caracteres especiales.
- No debe contener espacios.
- El nombre de una variable no puede ser una palabra reservada.
En JASCI se pueden incluir comentarios de dos maneras diferentes:
-
/* comentario de una o más lineas /
-
// cometario de una sola linea
Entiéndase como <variable>
un nombre de variable, <val>
como un valor, que bien puede ser numérico, booleano o de cadena y <tipo>
como el tipo de dato que se va a definir esa variable.
Palabra | Descripción | Ejemplo |
---|---|---|
crea | Su función es reservar espacios de memoria, dicho de otra manera, definir variables. | crea <tipo> <variable> |
crea entero <variable> |
||
crea booleano <variable> |
||
crea cadena <variable> |
||
crea entero <variable> = <variable> + <val> + <val> + <variable> |
||
crea entero vara = varb + 2 + 34 + varc |
||
lea | Su función leer de teclado un valor y asignarlo a una variable ya declarada | lea <variable> |
lea var |
||
imprime | Su función es imprimir en consola algún valor o variable. Nota: Para concatenar se utiliza el símbolo . | imprime <variable> |
imprime <val> |
||
imprime "Hola_este_lenguaje_es_genial!" |
||
imprime "Hola_este_lenguaje_es_genial!" . "_estoy_concatenando" |
||
imprime vara . varb |
||
asigna | Su función es darle valor a las variables ya declaradas | asigna <variable> = 20 |
asigna <variable> = 20 + 234 -343 |
||
asigna <variable> = "Hola_JASCI" |
||
asigna <variable> = verdadero |
||
ciclo | Realiza iteraciones siempre y cuando se cumpla la condición o condiciones que se determinen como parámetros. Se puede agregar mas de una condición utilizando los símbolos y &&. Los operadores relacionados aceptados son: < Menor que, > Mayor que, == Igual, != No igual que. | ciclo ( <variable> ) |
`ciclo ( == | ||
ciclo ( <variable > && < variable > == <val> ) |
||
ciclo ( varA ) |
||
ciclo ( varA == 10 && varB < 5 ) |
||
ciclo ( varA != 10 ) |
||
compara_si | Evalúa la condición o las condiciones y de cumplir ejecuta una vez el código siguiente. Se puede agregar mas de una condición utilizando los símbolos y &&. Los operadores relacionados aceptados son: < Menor que, > Mayor que, == Igual, != No igual que. | compara_si ( <variable> ) |
`compara_si ( == | ||
compara_si ( <variable > && < variable > == <val> ) |
||
compara_si ( varA ) |
||
compara_si ( varA == 10 && varB < 5 ) |
||
compara_si ( varA != 10 ) |
Entiéndase como <variable>
un nombre de variable y <val>
un valor, que bien puede ser numérico, booleano o de cadena.
Tipo | Descripción | Ejemplo |
---|---|---|
entero | Recibe números enteros que van desde el-32768 al 32767. | crea entero <variable> |
crea entero var = 2 |
||
crea entero var = 2 + 200 |
||
crea entero <var> = <var> + <val> |
||
crea entero var = varb + 33 |
||
booleano | Recibe dos valores: verdadero ó falso | crea booleano <variable> |
crea booleano var = verdadero |
||
crea booleano var = falso |
||
cadena | Recibe cualquier carácter o caracteres. Importante: Los espacios en blanco deben ser sustituidos por guion bajo '_' | crea cadena <variable> |
crea cadena var = “Hola_JASCI” |
||
crea cadena var = “Hola_esta_es_cadena” |
A continuación se muestran todos los simbolos aceptados dentro de las condiciones, aplica para ciclos y comparacion.
Símbolo | Descripción | Ejemplo |
---|---|---|
< | Menor que. | varA < varB |
varA < 10 |
||
> | Mayor que. | varA > varB |
varA > 101 |
||
== | Idéntico que. | varA == varB |
varA == 5 |
||
!< | No igual que. | varA != varB |
varA != 15 |
||
` | ` | |
&& | Y | varA != varB && varE < 0 |
El siguiente fragmento de código es una muestra de como se pueden definir variables, definir y asignar un valor en un mismo renglón, muestra también las dos formas de agregar comentarios, impresiones de variables asi como de concatenación con alguna otra variable o un valor directo, por ultimo muestra como se puede leer desde teclado un valor y almacenarlo en una variable.
crea entero varA
crea cadena saludo = "Hola_mundo_JASCI!"
crea booleano cond = verdadero
/*
Comentario de
más de una linea
/
imprime saludo . 2332 . "puedo_concatenar_cadenas"
imprime 223 . "_es_tu_resultado"
imprime "Hola_JASCI"
imprime varA
// comentario de una sola linea
lea varA
crea cadena despedida = "Gracias_por_usarme"