practica2 compi1

9
Universidad de San Carlos de Guatemala Facultad de Ingeniería Organización de Lenguajes y Compiladores 1 Ing. Mario Bautista Aux. David Lopez PRACTICA 2 OBJETIVOS   Que el estudiante sea capaz de poner en práctica los conocimiento adquiridos en el tema de Análisis Sintáctic o mediante una aplicación  Que el estudiante sea capaz de construir gramáticas complejas y funcionales.  Que el estudiante comprenda y utilice la herramienta Irony DESCRIPCION  La práctica consiste en que el estudiante desarrolle una herramienta que de formato a una entrada de texto similar a la sintaxis de ANSI C debido a que no existen muchos de código libre a disposición de los desarrolladores de este lenguaje. SINTAXIS A continuación se definirán las reglas del lenguaje INCLUDES   Include Se utilizara la siguiente sintaxis: #include '<identificador> .h' Ejemplo: #include 'stdio.h' IDENTIFICADORES Y VARIABLES   Identificadores  o Consta de uno o más caracteres. o El primer carácter debe ser una letra o el carácter subrayado (_), mientras que, todos los demás pueden ser letras, dígitos o el carácter subrayado (_). Las letras

Upload: william-pereira

Post on 06-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

practica

TRANSCRIPT

Page 1: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 1/9

Universidad de San Carlos de GuatemalaFacultad de IngenieríaOrganización de Lenguajes y Compiladores 1Ing. Mario BautistaAux. David Lopez

PRACTICA 2 

OBJETIVOS 

  Que el estudiante sea capaz de poner en práctica los conocimiento adquiridos en el tema

de Análisis Sintáctico mediante una aplicación

  Que el estudiante sea capaz de construir gramáticas complejas y funcionales.

 

Que el estudiante comprenda y utilice la herramienta Irony

DESCRIPCION 

La práctica consiste en que el estudiante desarrolle una herramienta que de formato a una

entrada de texto similar a la sintaxis de ANSI C debido a que no existen muchos de código libre a

disposición de los desarrolladores de este lenguaje.

SINTAXIS 

A continuación se definirán las reglas del lenguaje

INCLUDES 

  Include 

Se utilizara la siguiente sintaxis:#include '<identificador>.h'

Ejemplo:#include 'stdio.h'

IDENTIFICADORES Y VARIABLES 

  Identificadores 

Consta de uno o más caracteres.

o  El primer carácter debe ser una letra o el carácter subrayado (_), mientras que,

todos los demás pueden ser letras, dígitos o el carácter subrayado (_). Las letras

Page 2: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 2/9

pueden ser minúsculas o mayúsculas del alfabeto inglés. No está permitido el uso

de las letras 'ñ' y 'Ñ'.

  Tipos de Dato 

Los tipos de datos son los siguientes

Tipo  Entrada 

int Numero entero cualquiera : 5, 45, 984,etc.

char Carácter: ‘3’, ‘a’, ‘3’, etc.

float Numero flotante: 5.6, 9.3

char* Cadena: “hola es una cadena” 

  Declaración de Variables 

Las variables serán declarables de la siguiente forma, las opciones dentro de corchetes son

opcionales.

<nombre_del_tipo_de_dato> <nombre_de_la_variable> [ = <expresión> ];

También de la forma

<nombre_del_tipo_de_dato> <nombre_de_la_variable_1> [= <expresión_1>],

<nombre_de_la_variable_2> [= <expresión_2>],...,

<nombre_de_la_variable_n> [= <expresión_n>];

Ejemplo:

int var1;

int var1 = 5+6*5;

char m= ‘a’;

int var1=2,var2=5*6,var3;

Page 3: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 3/9

TIPOS DE OPERADORES 

  Operadores Aritméticos 

Operador  Aplicacion 

+ 5+var2- Var3-var2

/ Var3/var2

* Var3*var6*5.5

% 5%var

- -var+2

+ +var2*5

  Operadores Relacionales 

Operador  Aplicación < 5.5<5*var3

> Var1>5*var2

<= 5<=5*var3

>= Var1>=5*var2

== Var2==var3

!= Var15!=var2

  Operadores de Incremento/Decremento 

Operador  Aplicación 

++ i++;-- Var1 = var2--;

  Operadores de Asignación 

Operador  Aplicacion 

+= Var1 +=var2 +2;

-= Var1 -=var2 +2;

*= Var1 *=var2 +2;

Page 4: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 4/9

 

FUNCIONES Y METODOS 

  Funciones 

int main()

{

<bloque_de_instrucciones>

}

int suma(int num1, int num2)

{

<bloque_de_instrucciones>

}

TIPOS DE INSTRUCCIONES 

  Instrucción Compuesta 

{

<bloque_de_instrucciones>

}

 

Instruccion de Expresion 

Son aquellas que representan a las acciones más pequeñas (elementales) que se pueden

ejecutar en un programa, y siempre van seguidas de un carácter punto y coma (;), el cual

indica que la instrucción ha terminado:

<instrucción_de_expresión>;

<expresión>;

  Do While 

Para una instrucción repetitiva do while se utiliza la sintaxis:do

{

<bloque_de_instrucciones>

} while ( <expresión_lógica> );

Page 5: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 5/9

  For 

Para una instrucción repetitiva “for” se utiliza la sintaxis:

for ( <expresión_1> ; <expresión_2> ; <expresión_3> )

{

<bloque_de_instrucciones>

}

  While 

Para la instrucción while se utiliza la sintaxis

while ( <expresión_lógica> )

{

<bloque_de_instrucciones>

}

  Switch 

Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite

seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar

de entre varios posibles. En lenguaje C, para escribir una alternativa múltiple se utiliza la

sintaxis:

switch ( <expresión> )

{

case <expresión_1> : [ <bloque_de_instrucciones_1> ]

[ break; ]

case <expresión_2> : [ <bloque_de_instrucciones_2> ]

[ break; ]

...

case <expresión_n> : [ <bloque_de_instrucciones_n> ]

[ break; ][ default : <bloque_de_instrucciones_n+1> ]

}

Page 6: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 6/9

  If  

Para la instrucción If se utiliza la sintaxis

if ( <expresión_lógica> )

{<bloque_de_instrucciones>

}

  If Else 

Para la instrucción If else se utiliza la sintaxis

if ( <expresión_lógica> )

{

<bloque_de_instrucciones_1>

}

else

{

<bloque_de_instrucciones_2>

}

COMENTARIOS 

  Multilinea 

Los comentarios multilinea se escriben entre los caracteres barra-asterisco (/*) y asterisco-

barra (*/).

Ejemplo

/*

Este es un comentario multilinea

*/

  Linea 

Los comentarios de una línea se escriben con los caracteres //

Ejemplo

//este es un comentario de una linea

Page 7: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 7/9

REQUERIMIENTOS DE LA SOLUCION 

Formato de Texto Se deberá de generar el texto que se ingresó identado (se ingresara desordenado, no identado)

siguiendo la estructura del ANSI C.

Ejemplo

Entrada 

Page 8: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 8/9

 

Salida 

Generación del árbol 

Se deberá de generar para la entrada a formatear un grafo del árbol AST con la herramientaGraphviz.

Page 9: practica2 compi1

7/17/2019 practica2 compi1

http://slidepdf.com/reader/full/practica2-compi1 9/9

Consideraciones 

  El proyecto deberá de ser realizado en el lenguaje C# con la herramienta Irony, de lo contrario

no tendrá derecho a calificación.

 

La realización del proyecto es individual, está prohibido que los estudiantes trabajen en grupoy se compartan el proyecto, copias de proyecto tendrán un valor de 0 (cero) y serán

reportados al ingeniero y a la escuela de Sistemas.

  La plataforma de desarrollo deberá de ser Visual Studio.

  El código fuente deberá de estar versionado en su cuenta privada de bitbucket, de lo contrario

no se tendrá derecho a calificación, (Las fuentes se bajaran de la última versión publicada.)

  Los archivos a entregar serán el código fuente de la aplicación.

  Fecha de Entrega Lunes 19 de octubre del 2015