30 mar 2011

Introducción a la Compilación

A medida que los lenguajes de programación evolucionan para tratar de imitar las habilidades humanas, las arquitecturas de las computadoras mas recientes son cada vez mas complejas de programar.

En teoria es posible construir una computadora para ejecutar directamente programas escritos en cualquier lenguaje de programacion en particular  pero no resulta económico costruir una maquna asi, es por eso que se opto por la creacion de un "compilador" cuyo producto puede ser ejecutado en cualquier o casi cualquier hardware.

En la actualidad la programacion del software se hace en lenguajes de "Alto Nivel" muy alejado  del lenguaje maquina mismo del hardware:

Los principapes lenguajes de Alto Nivel en la actualidad son:
  •     Ada
  •     ALGOL
  •     BASIC
  •     C++
  •     C#
  •     COBOL
  •     Fortran
  •     Java
  •     Lisp
  •     Modula-2
  •     Pascal
  •     Perl
  •     PHP
  •     PL/SQL
  •     Python
Compilador
Un compilador es un complejo programa informatico que lee un progra escrito en un lenguaje de "Alto Nivel" y lo traduce a un programa equivalente en  lenguaje de "Bajo Nivel" (Lenguaje Maquina) lenguaje el cual la computadora es capaz de interpretar y ejecutar.

Al compilar un programa y producir el programa objeto el compiladores:
  • Traduce cada una de las sentencias del lenguaje a sus equivalentes en codigo maquina.
  • Incorpora al programa objeto cualquier subrutina de las bibliotecas solicitadas por el usuario
  • Establece enlaces de interconexion entre las partes de los programas.
Pero para que el compilador realice el trabajo de traduccion, este necesita informacion  de:
  • Las especificaciones del numero, orden y tipo de parametros que espera cualquier subprograma llamado, esto permite al compilador comprobar si una invocacion del subprograma externo es valida
  • El lenguaje en el que los subprogramas estan codificados para que el compilador pueda establecer la adecuada secuencia de llamado de instrucciones para transferir datos  e informacion de control al subprograma externo durante la ejecucion  en la forma esperada por ese subprograma
  • La declaracion de tipos de datos para cualquier variable referida es necesaria para que el compilador pueda terminar la representacion de almacenamiento de la variable externa de manera que la referencia se pueda compilar usando la formula de acceso apropiada para la variable
  • La definicion de un tipo de datos que se define externamente pero se usa para declarar cualquier variable local dentro del subprograma  se necesita para permitir al compilador asignar almacenamiento y computar formulas de acceso pra datos locales

0 comentarios:

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cna certification