Está en la página 1de 8

Nomenclatura

En JMG se utiliza la indentacin (sangrado), por lo tanto no se utiliza ; (punto y coma)


para finalizar instrucciones o {} (llaves) para declaracin de mtodos o para limitar las
estructuras de control (Las llaves solo se utilizaran para creacin de arreglos)
Ejemplo:
n = 10
i=0
mientras i < n
imprimeL Numero .i++
imprime Esos fueron todos los valores
Los parntesis se utilizan para pasar parmetros a las funciones (aunque no sean
necesario pasar parmetros a una funcin se tendr que poner los parntesis para indicar
que es una funcin a la que se esta mandando llamar y no a un atributo). Las funciones
imprime, leer, incluir y funcin no requieren de parntesis.
Para concatenacin se utiliza el carcter . (punto), si el tipo de dato que se est
concatenando no es de tipo cadena ser convertido a tipo cadena.
Ejemplo:
nombre = Juan
edad = 19
imprimeL Hola .nombre
imprimeL Tu edad es .edad
Los comentarios de una sola lnea se hacen con // y puede iniciar despus de una
instruccin
Ejemplo:
// Programa para saludar
nombre = Juan//Declaracion de nombre
edad = 19//Declaracion de edad
imprimeL Hola .nombre//Imprimiendo saludo
imprimeL Tu edad es .edad//Imprimiendo edad
Los comentarios de varias lneas empiezan con /* y terminan con */ , despus de terminar
el comentario no se puede poner ninguna instruccin
Ejemplo (bien):
/* Programa para saludar
Autor: Juan Manuel Gutierres Valdez
*/
nombre = Juan//Declaracion de nombre

Ejemplo (mal):
/* Programa para saludar
Autor: Juan Manuel Gutierrez Valdez
*/nombre = Juan//Declaracion de nombre
Este lenguaje ser no tipado por lo que no se tendr que declarar el tipo de dato para
poder asignarle un valor a una variable.
Ejemplo de otro lenguaje (java):
int n;
n= 10;

int n=10;
Ejemplo de JMG:
n = 10
Al momento de ejecucin se asignara el tipo de dato segn al valor que se le este
asignando para utilizar menos memoria, para saber el tipo de dato se utilizara la funcin
tipo(variable) , el tipo de dato puede cambiar si se le asigna otro valor.
Ejemplo:
n = 10
imprime tipo(n)// corto
n = hola como estas
imprime tipo(n)// cadena
n = 234.4252
imprime tipo(n)//flotante
La asignacin es con el signo = como se ha mostrado en los ejemplos anteriores
Operadores Aritmeticos
+ suma
- resta
* multiplicacin
/ divisin
% residuo
Operadores de Comparacin
== igual
!= diferente
> mayor que
< menor que
>= mayor o igual
<= menor o igual
Operadores de Incremento y Decremento
++ incremento
-- decremento
Operadores Lgicos

& Y
| O
! negativo
Palabra
Reservada
entero
corto
flotante
doble
caracter
cadena
booleano

si

otroCaso

mientras

hacerMientra
s
para

Descripcin
Representa a los nmeros enteros en el rango -2,147,483,648 y
2,147,483,647
Representa a los nmeros enteros en el rango-32,768 y 32,767
Representa a los nmeros reales en el rango 1.18e-38 <= |X| <=
3.40e38
Representa a los nmeros reales en el rango 2.23e-308 <= |X| <=
1.79e308
Juegos de carateres ASCII
Este representa a un arreglo de caracteres de longitud n
Este tipo de dato almacena verdadero y falso, en realidad
verdadero y falso son constantes y el valor para cada uno son:
verdadero 1 y falso 0
Esta palabra se utilizara para hacer condiciones del tipo si, su
estructura es la siguiente:
si Condicion
cuerpo
ejemplo:
si i==1
imprime si se cumplio la condicion
no es necesario poner parntesis como en otros lenguajes, se
tendr que dejar un salto de lnea para escribir que es lo que se
realizara en caso de que la condicin sea verdadera y se tendr
que respetar la indentacin (sangrado)
Esta palabra es para complementar al si, en esta parte se
declarara lo que se realizara en caso de que la condicin
declarada en el si sea falsa e igual que en el si, se tiene que
respetar la indentacin
Ejemplo:
otroCaso
imprime no se cumplio la condicion
Se declara igual que el si y sirve para hacer un ciclo mientras que
:
mientras Condicion
ejemplo:
mientras i<10
saludar(i++)
Funciona igual que mientras solo que entra la primera vez aunque
no se cumpla la condicin
Este tiene dos funcionalidades:
Sirve para hacer ciclos de forma que se inicia una variable

se pone condicin y una operacin a realizar separados por


una coma cada uno de estos, ejemplo:
para i=2,i<10,i++
imprime
Tambin se puede utilizar para recorrer un arreglo (la
palabra en se utilizara para decir en que variable se
guardara el valor que se obtuvo), ejemplo:
saludos = {
0 : hola
1 : Buenos das
2 : buenas tardes
}
para saludos en saludo
imprime saludo
Si se desea obtener la posicin aparte del valor se tendran
que poner 2 nombres de variables despus de en separadas
por : del lado izquierdo ira la llave (posicin) y del lado
derecho el valor, ejemplo:
saludos = {
0 : hola
1 : Buenos das
2 : buenas tardes
}
para saludos en numSaludo : saludo
imprime El saludo numero .numSaludo. es
.saludo
leer
imprime

imprimeL
existe

destruye
tipo
incluir

Esta es una funcin y se encarga de leer un dato a travs del


teclado
Se encarga de mandar a imprimir en consola la cadena que se le
est pasando por parmetro (si no es una cadena el mtodo se
encarga de convertirla)
Hace la misma accin que imprime pero al final de la cadena
imprime un salto de lnea
Retorna verdadero si es que la variable que se le est pasando por
parmetros ha sido declarada (si se destruye una variable no
existir para el resto del programa despus de que se haya
destruido)
Esta se encarga de destruir la variable que se le haya pasado por
parmetros dejndola inexistente del resto del programa
Funcin que retorna el tipo de dato de la variable que se le esta
pasando por parametros
Se encarga de ejcutar el archivo que se est pasando por
parmetros y posteriormente continuar con lo del archivo en el
que se mand llamar

tiempo

constante

Salir

funcion

Devuelve la fecha del sistema en el formato que se hay pasado


por parmetros
Nomenclatura del formato:
a ao (99)
A ao(1999)
m mes(01)
M mes(enero)
d dia del mes(12)
D dia de la semana(lunes)
h hora(24)
H hora(12)
a am o pm
A minuto
s
segundo
S milsimas
Los caracteres mostrados en la nomenclatura se sustituirn por su
correspondiente, los caracteres no incluidos en la nomenclatura se
dejaran tal cual, ejemplo:
imprime tiempo(A-M-d H:A.s a)// 2016-febrero-12 11:23.34
am
Para poner alguno de los caracteres marcados de la nomenclatura
sin que sean modificados se necesita poner \ seguida del carcter,
as mismo para poner \ se necesitara poner \\
Se encarga de declarar una constante y se manda llamar igual que
una variable solo que no se puede modificar su valor, ejemplo:
constante(pi, 3.1416)
imprime pi// 3.1416
pi = 2113// va marcar un alerta que no se pueda asignar un
nuevo valor
Obliga al programa a salir de la estructura de control en la que se
encuentre actualmente (si esta dentro de un si se sale un nivel
mas)
Se encarga de declarar una nueva funcin, si la funcin que se
desea declarar existe se marcara un error indicando que ya existe,
la forma de declarar la funcin es la siguiente:
funcion nuevaFuncion(parametro1, parametro2,
.parametroN)
Cuerpo de la funcin
Lo que retorna la funcion(no es forzoso que devuelva
un dato)
Ejemplo 1:
funcion saluda(nombre)
imprime Hola .nombre., como estas?
Ejemplo 2:
funcion eleva(num, potencia)
si potencia < 0
retorna 0

retorna
global

elevado = 1
para i=0,i<potencia,i++
elevado = elevado * num
retorna elevado
Se utiliza para retornar un dato en una function al momento de
que se retorna un dato el resto del cuerpo de la funcin se omite
Las variables utilizadas dentro de una funcion son solamente
locales, es decir si se declara una variable a fuera de una funcion y
al mandar llamar a la funcion se dice que se imprime a va a
marcar un error si dentro de la funcion no se inicio la variable a,
para esto se utiliza global, para que se indique que se va a utilizar
la variable global y toda modificacin que se le haga a esta
variable se le har en el entorno global no solo local.
Ejemplo 1:
funcion imprimeA()
imprime A
A = 10
imprimeA()//aqu marcaria error porque diria que no se ha
declarado la //variable A
Ejemplo 2:
funcion imprimeA()
global A
imprime A
A = 10
imprimeA()//imprime 10
Ejemplo 3:
funcion cambiaValorA()
global A
A = 15
A = 10
imprime A//imprime 10
cambiaValorA()
imprime A//imprime 15
Palabras Reservadas

Tipo de Dato
entero
cadena
flotante
booleano
caracter

Estructuras de
Control
si - otroCaso
mientras
hacerMientras
para

Funciones

Funciones

leer
imprime
imprimeL
existe
tipo
destruye
incluir

constante
salir
funcion
global
retorna
tiempo

Tabla de Tokens
Tokens Fijos
Conponente Lexico
entero
cadena

Lexema
123, 450, 0, 54
hola mundo

flotante
caracter

12.21, 345.65, 0.1, .98


a, p, $

arreglo
booleano
si
otroCaso
mientras
hacerMientras
para
leer
imprime
imprimeL
existe
tipo
destruye
incluir
tiempo
constante
salir
funcion
global
retorna

Patron
[0-9]+
"([\w\s\{\}\[\]\.\\\$!?'\
+\*\^`:;<>\|%&\(\)=#\-]|\\")
+"
[0-9]*\.[0-9]+
'(["\w\s\{\}\[\]\.\\\$!?\
+\*\^`:;<>\|%&\(\)=#\-]|\\')'