ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PROYECTO DE "COMPILADORES"


Enviado por   •  18 de Julio de 2015  •  Tesis  •  4.063 Palabras (17 Páginas)  •  225 Visitas

Página 1 de 17

PROYECTO DE "COMPILADORES"

Curso 2010/2011

CONTENIDO:

• Generalidades

• Estructura de un Programa

• Comentarios

• Constantes

• Operadores

• Identificadores

• Declaraciones

• Instrucciones de entrada/salida

• Tipos de Datos

• Sentencias

• Funciones

• Clases

• Más información sobre el lenguaje

________________________________________

GENERALIDADES

C++ es el lenguaje de programación multiobjetivo ideado en 1984 por Bjarne Stroustrup a partir del lenguaje C.

C++ es un lenguaje en el que se diferencian las minúsculas y las mayúsculas (case sensitive). También es un lenguaje de formato libre, es decir, que se admiten espacios, tabuladores, saltos de línea y comentarios en cualquier parte del código.

Las palabras clave del lenguaje son reservadas, aunque cada grupo de alumnos sólo ha de tener en cuenta las palabras asignadas al grupo.

C++ es un lenguaje con estructura de bloques, que se definen mediante la utilización de las llaves { }. Los nombres declarados dentro de un bloque son locales a dicho bloque. Los bloques vienen definidos por las funciones, clases y métodos. Los nombres declarados fuera de cualquier función, método o clase son globales y pueden ser utilizados desde cualquier método o función que esté definida con posterioridad.

No se permite la definición de funciones o métodos anidados. C++ es un lenguaje con recursividad, por lo que cualquier función o método puede ser recursivo. El paso de parámetros puede ser por valor o por referencia.

No es necesario considerar para el Proyecto las directivas del preprocesador de C++.

En C++ es necesario declarar previamente todo lo que se utilice. Las declaraciones y sentencias finalizan en punto y coma, a menos que la sentencia finalice con un bloque (entre llaves).

Este resumen presenta las principales características de C++ que hay que implementar para el Proyecto de la asignatura deCompiladores. Solo es necesario considerar los elementos de C++ mencionados en este resumen. Entre corchetes se dan indicaciones sobre la obligatoriedad u opcionalidad de incluir en este Proyecto algunas partes del lenguaje. Con el fin de facilitar la implementación del compilador, las características mostradas en esta página pueden no coincidir al 100% con el estándar del lenguaje, por lo que, en caso de duda, se deberá implementar el comportamiento aquí descrito.

ESTRUCTURA DE UN PROGRAMA

Para el Proyecto de Compiladores debe considerarse que un programa en C++ tiene la siguiente estructura: una serie de clases y funciones, siendo una de ellas la función principal (main); fuera de las funciones y las clases, se declaran las variables globales y se definen los métodos de las clases.

Aquí se tiene un ejemplo de un fichero válido para el Proyecto.

COMENTARIOS

En C++ hay dos tipos de comentarios [solamente hay que implementar uno de ellos]:

1. Se utilizan los caracteres /* para abrir el comentario, y */ para cerrarlo. No se admiten comentarios anidados. Los comentarios pueden ocupar más de una línea y pueden ir colocados en cualquier parte del código donde pueda ir un espacio:

/* Comentario con apertura y cierre */

2. Los comentarios comienzan por los caracteres // y finalizan al acabar la línea. Este tipo de comentario sólo ocupa una línea y puede ir colocado en cualquier parte del código donde pueda ir un espacio:

// Comentario de línea

CONSTANTES

El lenguaje dispone de varios tipos de constantes, de las cuales solamente habrá que tener en cuenta las siguientes:

ENTEROS

Hay tres notaciones: decimal, octal y hexadecimal [sólo es obligatorio implementar los enteros decimales]:

• Decimal: 159

• Octal (usando como prefijo un cero): 052

• Hexadecimal (usando como prefijo un cero y una equis): 0x1E4

El lenguaje impone que los números enteros se representen con 2 bytes (con signo); por tanto, el mayor entero posible será el 32767.

CADENAS DE CARACTERES

Las constantes de cadena van encerradas entre comillas dobles: "Hola, mundo". Se utiliza el carácter nulo (cuyo código ASCII es 0) como carácter de fin de cadena. Puede aparecer cualquier carácter imprimible en la cadena [es obligatorio implementar las cadenas constantes].

Para representar caracteres especiales se utiliza una secuencia de escape. Una secuencia de escape se representa mediante el carácter barra inversa seguido de un determinado carácter. Algunos de estos caracteres son el salto de línea (\n), el tabulador (\t), el carácter nulo (\0), las comillas dobles (\") o el carácter de barra inversa (\\) [la implementación de estos caracteres especiales es opcional].

LÓGICAS

En C++ existen dos constantes lógicas: true y false [es opcional implementar las constantes true y false]. Además, cualquier expresión que se evalúe como 0 se considera como falsa, y cualquier expresión que se evalúe con un valor distinto a 0 se considera verdadera.

OPERADORES

Este lenguaje presenta un rico conjunto de operadores con los que escribir distintas expresiones. Además, se pueden utilizar los paréntesis para agrupar subexpresiones.

OPERADORES ARITMÉTICOS

Son los operadores que permiten realizar la suma, resta, producto, división y módulo: +, -, *, / y % [obligatorio implementar al menos uno]. Se aplican sobre datos enteros, proporcionando un resultado entero.

También existen los operadores más y menos unarios: +, - [implementación opcional].

OPERADORES DE RELACIÓN

Son los operadores que permiten realizar las comparaciones de igual, distinto, menor, mayor, menor o igual, mayor o igual: ==, !=, <, >, <= y >= [obligatorio implementar al menos uno de los operadores]. Se aplican sobre datos enteros y proporcionan un resultado lógico.

OPERADORES LÓGICOS

Representan las operaciones de conjunción, disyunción y negación: &&, || y ! [obligatorio implementar al menos uno]. Se aplican sobre datos lógicos y devuelven un resultado lógico.

AUTO-INCREMENTOS Y AUTO-DECREMENTOS

C++ dispone de operadores para incrementar o decrementar el valor de una variable: ++ y -- (tanto prefijos, como sufijos) [implementación obligatoria para algunos grupos; tendrán que implementar al menos una de las cuatro formas del operador]:

a = j++; // si j valía 5, ahora a == 5 y j == 6

a = ++j; // si j valía 5, ahora a == 6 y j == 6

OPERADOR CONDICIONAL

El operador condicional permite obtener un determinado valor basándose en una condición: condición

...

Descargar como (para miembros actualizados) txt (26 Kb)
Leer 16 páginas más »
Disponible sólo en Clubensayos.com