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

Informatica


Enviado por   •  13 de Mayo de 2013  •  1.473 Palabras (6 Páginas)  •  218 Visitas

Página 1 de 6

Que es Compilación:

Se dice que es el proceso de traducción de un código fuente (escrito en un lenguaje de programación de alto nivel) a lenguaje máquina (código objeto) para que pueda ser ejecutado por la computadora. Las computadoras sólo entienden el lenguaje máquina. La aplicación o la herramienta encargada de la traducción se llaman compilador.

El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.

El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, código esté directamente ejecutable por el procesador. A este proceso se le llama compilación.

Habitualmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable.

Fases de la Compilación:

1.- Analizador Léxico:

Realiza un análisis del archivo. La cadena de entrada se lee e izquierda a derecha y se va agrupando en componentes léxicos, que son secuencias de caracteres con un significado colectivo. Por ejemplo, identificadores, palabras reservadas, signos de final de instrucción. Cada componente es asociada a la categoría que pertenece.

2.- Analizador Sintáctico

Realiza un análisis jerárquico agrupado de los componentes léxicos en frases gramaticales que el compilador utiliza.

3.- Analizador Semántico

Busca errores semánticos, reúne información sobre los tipos; identifica operadores en base al árbol sintáctico producido en el análisis anterior Ejemplo de error: operación entre tipos de datos incompatibles, rangos permitidos existencia de variables. En cualquiera de estos tres análisis pueden producirse errores.

4.- Generador de código intermedio

Algunos compiladores generan una representación explicita del programa fuente. Este código es independiente de la máquina y a veces se usa en un conjunto con intérpretes, en lenguajes independientes de la plataforma como JAVA. Esta representación debe ser fácil de producir, ayudar a la optimización y fácil de traducir al programa objeto.

5.-Optimización

Esta fase trata de mejorar el código intermedio, o las estructuras que generaran el código definitivo de modo de que resulte un código de maquina más rápido de ejecutar para guardarlos valores calculados por cada instrucción.

6.- Generador de código

Esta fase final de un compilador. Genera el código objeto, que por lo general consiste en un código de maquina relocalizarle o código ensamblador. Las posiciones de memoria relativas se seleccionan para cada variable. El uso de los registros de la CPU es relevante.

7.- Agrupación lógica de un Compilador:

Es la fase de análisis, depende del lenguaje fuente y son independientes de las maquinas. Controla la corrección del programa fuente, manejando errores en cada etapa. Produce las estructuras necesarias para la generación del código.

Fase de generación, depende de la máquina y el lenguaje intermedio. Hace uso intensivo de la tabla de símbolos

BNF:

La notación de Backus-Naur, es una metasintaxis usada para expresar gramáticas libres de contexto: es decir, una manera formal de describir lenguajes formales.

El BNF se utiliza extensamente como notación para las gramáticas de los lenguajes de programación de la computadora, de los sistemas de comando y de los protocolos de comunicación, así como una notación para representar partes de las gramáticas de la lengua natural (por ejemplo, el metro en la poesía de Venpa). La mayoría de los libros de textos para la teoría o la semántica del lenguaje de programación documentan el lenguaje de programación en BNF.

Una especificación de BNF es un sistema de reglas de derivación, escrito como:

<simbolo> ::= <expresión con símbolos>

donde es un no terminal, y la expresión consiste en secuencias de símbolos o secuencias separadas por la barra vertical, '|', indicando una opción, el conjunto es una posible substitución para el símbolo a la izquierda. Los símbolos que nunca aparecen en un lado izquierdo son terminales.

 Nota:

Hay muchas variantes y extensiones de BNF, posiblemente conteniendo algunos o todos los comodines de expresiones regulares como un "*" o "+". El Extended Backus-Naur form (EBNF) es una variante común. De hecho el ejemplo anterior no es la forma pura inventada para el informe del ALGOL 60. La notación de los corchetes "[ ]" fue introducida algunos años más tarde en la definición de PL/I de la IBM pero ahora se reconoce universal. La ABNF es otra extensión usada comúnmente para describir protocolos del IETF.

Las expresiones gramaticales

...

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