Sie sind auf Seite 1von 4

Instituto Tecnológico Superior de

Tantoyuca
Docente:
M.C.C. Manuel Hernández Hernández

Alumnos:
Ismael Herbert Hernández
Jesús Santiago Antonio
Ángel Alberto Villanueva Santiago

Materia:
Lenguajes y Autómatas II

Carrera:
Ingeniería en Sistemas Computacionales

Semestre:
7° B

Fecha:
08 de Octubre de 2018
Lenguaje.
Nombre: GATSAMHP.
Extensión: Nombre_Archivo.jai
Paradigma de programación.
• Imperativo (Compilador)
Alfabeto.

Σ={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, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /, %, =, (, ),

[, [, {, }, ,, ;, :, ‘, ’, “ , ”, ^, &, |, <, >, ! }


Tabla Tokens.

Token Ejemplo Lexema Expresión Regular


COMENTARIO # Comentario Simple #( Letras | Digitos |
Caracteres)*
COMENTARIO_B /# /# Comentario de #/ ( (Letras | Digitos |
bloque Caracteres)* ) /#
Tipo de Dato
TIPO_INT int Valor numérico int
entero
TIPO_DOUBLE double Valor numérico double
decimal
TIPO_STRING String Cadena de [a-zA-Z0-9.]*
caracteres
TIPO_BOOLEAN boolean Valor verdadero o boolean
falso
TIPO_CHAR char Caracteres char
Palabras Reservadas
PR_START START Palabra reservada START
PR_END END Palabra reservada END
PR_IF if Palabra reservada if
PR_ELSE else Palabra reservada else
PR_FOR for Palabra reservada for
PR_WHILE while Palabra reservada while
PR_SWITCH switch Palabra reservada switch
PR_CASE case Palabra reservada case
PR_PUBLIC public Palabra reservada public
PR_VOID void Palabra reservada void
PR_RETURN return Palabra reservada return
PR_PRINT print Palabra reservada print
PR_ASSING assing Palabra reservada assing
PR_CLASS class Palabra reservada class
PR_CLOSE close Palabra reservada close
PR_LENGTH length Palabra reservada length
Identificadores
Nombre de clase,
ID Identificador Letra(Letra|Dígito)*
método y archivo
Operadores Aritméticos
OP_SUM + Suma +
OP_RES - Resta -
OP_MUL * Multiplicación *
OP_DIV / División /
OP_MOD % Modulo %
OP_POT ^ Potencia ^
Operadores Lógicos
OPL_OR | or |
OPL_AND & and &
OPL_NEL <> Negación <>
Operadores Relacionales
OR_MENOR < Menor que <
OR_MAYOR > Mayor que >
OR_MENOR_IGUAL <= Menor igual <=
OR_MAYOR_IGUAL >= Mayor igual >=
OR_IGUAL == Igual ==
OR_DIFERENTE != Diferente !=
Números
NUM_ENTEROS 1, 21,465, 1024 Número entero (0 - 9)*
NUM_REALES 1.1232, 789.123... Número real (0 – 9)* + “.” + (0 - 9)*
Símbolos
( Paréntesis de (
S_PARENTESIS_A
apertura
) Paréntesis de )
S_PARENTESIS_C
Cierre
[ Corchete de [
S_CORCHETE_A
apertura
S_CORCHETE_C ] Corchete de cierre ]
S_LLAVE_A { Llave de apertura {
S_LLAVE_C } Llave de cierre }
“ Comillas doble de “
S_COMILLA_DOBLE_A
apertura
’ Comilla simple de ’
S_COMILLA_C
cierre

Gramática del lenguaje.

Gramática
Programa: START Secuencia_Instrucciones END
Secuencia_Instrucciones: Instrucción Secuencia_Instrucciones | Instrucción
Instruccion: Declaración | Asignación | Metodo | InstSI | InstSINO | InstMIENTRAS |
InstPARA | Switch_case | Print
Declaracion: Tipo_d Variable;
Parametro: Tipo_d Variable, Parametro | Tipo_d Variable
Asignacion: Variable = Exp;
Exp: Exp Operadores Factor | Factor
Factor: Exp | Numero | Variable
Metodo: Tipo_d | void id ( ) {Secuencia_Instrucciones} | Tipo_d | void id (Parametro)
{Secuencia_Instrucciones}
Operadores: + | - | * | / | < | <= | > | >= | == | != | | | & | <>
Tipo_d: int | boolean | String | double | char
InstSI: if (Exp) { Secuencia_Instrucciones }
InstSINO: if (Exp) { Secuencia_Instrucciones } else { Secuencia_instrucciones }
InstMIENTRAS: while (Exp) { Secuencia_Instrucciones }
InstPARA: for (Exp) { Secuencia_Instrucciones }
Switch_case: switch (Variable) { Casos }
Casos: Casos Caso | Caso
Caso: case{Secuencia_Instrucciones};
Print: print Concatenacion | Cadena | Variable
Cadena: TIPO_STRING
Concatenacion: Cadena + Variable | Variable + Variable
Variable: id
Numero: Numero Dígito | Digito
Digito: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Das könnte Ihnen auch gefallen