compilador!!
Publicado por Mar (4 intervenciones) el 02/05/2006 18:19:21
Olvide mencionar que este es mi lenguaje....
***************************************************************************************************
ESPECIFICACIONES DEL LENGUAJE “YAMERO”
NOTA: Las mayúsculas en negritas forman parte de las palabras reservadas del lenguaje.
1.- BLOQUE PRINCIPAL DEL PROGRAMA.
PROGRAMA nombre-programa
[Declaraciones globales]
INICIA
Instrucciones..........
TERMINA
2.-CADA INSTRUCCIÓN ESTARÁ SEPARADA POR UN ;
3.-COMENTARIOS:
- INICIA CON / * Y TERMINA CON * /
- PUEDE INICIAR Y TERMINAR EN CUALQUIER PARTE DE LAS LINEAS DEL PROGRAMA.
4.-IDENTIFICADORES:
- Máximo 12 caracteres. Siguiendo Las siguientes reglas:
- Empieza con letras.
- Los Siguientes pueden ser dígitos, letras y underscore ( _ )
- No puede terminar con ( _ ).
5.-VARIABLES:
-Existen cuatro tipos: ENTERA, REAL, CADENA, LOGICA.
-Ejemplo de declaración de variables:
VAR a,b,c: CADENA;
s,y: REAL;
x(2,10): ENTERA;
tod: ENTERA;
f,g: LOGICA;
FINVAR
6.-OPERADORES ARITMÉTICOS:
+ - * / ++ -- MOD DIV
7.-OPERADORES RELACIONALES:
<= < < > >= > ==
8.-OPERADORES LÓGICOS:
<Y> <O> <NO>
9.- SE PERMITEN LAS SIGUIENTES EXPRESIONES LOGICAS:
a) Operadores lógicos.
b) Variables lógicas.
c) Constantes lógicas( <F> , <V>).
d) Expresiones relacionales que arrojan resultados lógicos.
10.ASIGNACIÓN:
variable :: expresión;
11.-FUNCIONES DE ENTRADA Y SALIDA:
ACEPTA (renglon,columna,variable1, variable2, …. variable n);
IMPRIME (renglon,columna,expresión1, expresion2, … expresión n);
BORRAP (renglon1,columna1,renglon2,columna2); /*
12.- FUNCIONES ARITMÉTICAS.
ABS(x); CUAD(x); TRUNC(x); EXP(x);
RAIZ(x); LN(x); RED(x);
13.-FUNCIONES DE MANEJO DE CADENA:
INSERTA(cadena1,cadena2,pos);
CONCATENA(cadena1,cadena2,.... cadenaN);
BORRAR(cadena,pos,long);
LONGITUD(cadena);
14.-ESTATUTOS CONDICIONALES:
CONDICION ( expresión lógica )
{ Instrucciones.... }
[OTROMODO
{ instrucciones.... } ]
15.-ESTATUTOS DE REPETICIÓN:
REPETIR
{ instrucciones separadas por ;
} ( expresión lógica )
.....................................................
CICLO variable entera :: expresión HASTA expresión [BRINCA expresión] HACER
{ instrucciones separadas por ;
}
16.-PROCEDIMIENTOS:
MODULO nombre [(lista de parámetros formales)]
[declaraciones locales]
{
instrucciones separadas por ;
}
17.-LLAMADAS A PROCEDIMIENTOS:
LLAMAR nombre [ exp1,exp2,exp3,..........]
18.- LAS CADENAS SE FORMAN DE LA SIGUIENTE MANERA:
- INICIA Y TERMINA CON “
- PUEDEN CONTENER CUALQUIER CARÁCTER EXCEPTO “
- DEBE INICIAR Y TERMINAR EN LA MISMA LINEA
“ESFUERZATE POR SER CADA DIA MEJOR, APRENDIENDO SIEMPRE ALGO NUEVO”
***************************************************************************************************
Ya separe las palabras reservadas, hice mi diagrama de estado, le di los tokens correspondientes, ahora me falta lo mas importante y lo bueno, la programacion... Ayudenme por favor!!! Gracias!!
***************************************************************************************************
ESPECIFICACIONES DEL LENGUAJE “YAMERO”
NOTA: Las mayúsculas en negritas forman parte de las palabras reservadas del lenguaje.
1.- BLOQUE PRINCIPAL DEL PROGRAMA.
PROGRAMA nombre-programa
[Declaraciones globales]
INICIA
Instrucciones..........
TERMINA
2.-CADA INSTRUCCIÓN ESTARÁ SEPARADA POR UN ;
3.-COMENTARIOS:
- INICIA CON / * Y TERMINA CON * /
- PUEDE INICIAR Y TERMINAR EN CUALQUIER PARTE DE LAS LINEAS DEL PROGRAMA.
4.-IDENTIFICADORES:
- Máximo 12 caracteres. Siguiendo Las siguientes reglas:
- Empieza con letras.
- Los Siguientes pueden ser dígitos, letras y underscore ( _ )
- No puede terminar con ( _ ).
5.-VARIABLES:
-Existen cuatro tipos: ENTERA, REAL, CADENA, LOGICA.
-Ejemplo de declaración de variables:
VAR a,b,c: CADENA;
s,y: REAL;
x(2,10): ENTERA;
tod: ENTERA;
f,g: LOGICA;
FINVAR
6.-OPERADORES ARITMÉTICOS:
+ - * / ++ -- MOD DIV
7.-OPERADORES RELACIONALES:
<= < < > >= > ==
8.-OPERADORES LÓGICOS:
<Y> <O> <NO>
9.- SE PERMITEN LAS SIGUIENTES EXPRESIONES LOGICAS:
a) Operadores lógicos.
b) Variables lógicas.
c) Constantes lógicas( <F> , <V>).
d) Expresiones relacionales que arrojan resultados lógicos.
10.ASIGNACIÓN:
variable :: expresión;
11.-FUNCIONES DE ENTRADA Y SALIDA:
ACEPTA (renglon,columna,variable1, variable2, …. variable n);
IMPRIME (renglon,columna,expresión1, expresion2, … expresión n);
BORRAP (renglon1,columna1,renglon2,columna2); /*
12.- FUNCIONES ARITMÉTICAS.
ABS(x); CUAD(x); TRUNC(x); EXP(x);
RAIZ(x); LN(x); RED(x);
13.-FUNCIONES DE MANEJO DE CADENA:
INSERTA(cadena1,cadena2,pos);
CONCATENA(cadena1,cadena2,.... cadenaN);
BORRAR(cadena,pos,long);
LONGITUD(cadena);
14.-ESTATUTOS CONDICIONALES:
CONDICION ( expresión lógica )
{ Instrucciones.... }
[OTROMODO
{ instrucciones.... } ]
15.-ESTATUTOS DE REPETICIÓN:
REPETIR
{ instrucciones separadas por ;
} ( expresión lógica )
.....................................................
CICLO variable entera :: expresión HASTA expresión [BRINCA expresión] HACER
{ instrucciones separadas por ;
}
16.-PROCEDIMIENTOS:
MODULO nombre [(lista de parámetros formales)]
[declaraciones locales]
{
instrucciones separadas por ;
}
17.-LLAMADAS A PROCEDIMIENTOS:
LLAMAR nombre [ exp1,exp2,exp3,..........]
18.- LAS CADENAS SE FORMAN DE LA SIGUIENTE MANERA:
- INICIA Y TERMINA CON “
- PUEDEN CONTENER CUALQUIER CARÁCTER EXCEPTO “
- DEBE INICIAR Y TERMINAR EN LA MISMA LINEA
“ESFUERZATE POR SER CADA DIA MEJOR, APRENDIENDO SIEMPRE ALGO NUEVO”
***************************************************************************************************
Ya separe las palabras reservadas, hice mi diagrama de estado, le di los tokens correspondientes, ahora me falta lo mas importante y lo bueno, la programacion... Ayudenme por favor!!! Gracias!!
Valora esta pregunta


0