Академический Документы
Профессиональный Документы
Культура Документы
TRABAJO DE
LENGUAJES
[Subttulo del documento]
ESPECIFICACIN SINTCTICA:
Ejemplos de programa en el lenguaje Clau2
1) void main() {
Mostrar(hola mundo);
}
2) entero suma(entero : a , entero : b) {
entero : c;
c=a+b;
return(c);
}
3) real divisin(){
real : a,b,c;
Leer(a,b);
Si(b0){
c=a/b;
}
Sino{
return(-1);
}
return ( c );
}
A partir de estos ejemplos construimos la sintaxis.
Programa
void main()
{
Bloque}
Funcion
Introduccion
Detalles
Nombre del lenguaje
Esp. Sintactica
tipo
id(parametros){
Esp. Lexicografica
Bloque}
Operador Aritmetico :
e.r. L ( r ) = {+,-,/,*,mod}
Automata :
Operador Logico :
e.r.
r=and|or|not
L( r ) = {and,or,not}
Automata :
Operador Relacional:
e.r.
r= <|>|<=|>=|<>
L( r )= {<|>|<=|>=|<> }
Automata:
Identificador:
e.r. r=letra(letra|digito)*
Automata:
Sentencia final:
e.r. r=
L(r )={;}
Automata:
Separador de ID:
e.r. r=,
L( r)= {,}
Automata:
Numero:
e.r. r = digito(digito)*
Automata:
Parentesis Izquierdo:
e.r. r=(
L( r )={ ( }
Automata:
Parentesis derecho:
e.r. r=)
L( r ) = { ) }
Automata:
Corchete izquierdo:
e.r. r= [
L(r )={ [}
Corchete derecho:
e.r. r=]
L(r )= { ] }
Llave izquierda:
e.r. r= {
L( r )={ { }
Automata:
Llave derecha:
e.r. r=}
L( r ) = { } }
Automata:
Palabras reservadas:
e.r. r=entero|natural|real|constante|struct|boolean|verdadero|
falso|cadena|fun|void|main|return|para|si|sino|mientras|Hacer|
Leer|Mostrar|clase
L( r ) = { entero|natural|real|constante|struct|boolean|
verdadero|falso|cadena|fun|void|main|return|para|si|sino|
mientras|Hacer|Leer|Mostrar|clase }
Automata:
Ejemplo del autmata el identificador:
E= ( 0 ,
1 , 2 )
=(Letra,digito)
F=( E j )
M(E, ,
, 0 , F)