Está en la página 1de 3

Asignatura: Técnicas de Compilación

Tema 1 y 2: Conceptos básicos necesarios

-Teoría de Lenguajes de programación

-Introducción a Compiladores. Tipos de Compiladores

Algunos de los lenguajes más difundidos

BASIC: Buen lenguaje para comenzar a aprender por su sencillez, aunque tiende a crear
programas pocos legibles. A pesar de la sencillez hay versiones muy portátiles incluso para
programar en entornos gráficos como Windows es (es el caso de Visual Basic)

COBOL: Fue utilizado para negocios aunque últimamente está en deshuso

FORTRAN: Concebido para ingeniería, operaciones matemáticas etc., también va quedando


desplazado

Ensamblador: Muy cercano al consigo maquina, pero sustituye las secuencias de ceros y unos
(bit) por palabras fáciles de recordar como MOV, ADD, CALL o JMP.

C : Es el mejor considerado actualmente porque no es difícil y permite un grado de control de


ordenador muy alto, combinando características de lenguaje de alto nivel y bajo nivel, además
es muy transportable: existe un estándar, el ANSIC, lo que asegura que se puede convertir
programas en C de un ordenador a otro o de un Sistema Operativo a otro con bastante menos
esfuerzo que en otro lenguaje.

Pascal : Lenguaje estructurado por excelencia y que en algunas versiones tiene una potencia
comparable a la del lenguaje C como es el caso de Turbo Pascal en programación para DOS y
Windows.

¿Para qué se utilizan los lenguajes de Programación?

-Permiten dar instrucciones a un ordenador. El más directo es el propio del ordenador llamado
lenguaje de máquina .

Concepto: Es una notación formal para describir algoritmos o funciones que serán ejecutados
en el ordenador.

Hay distintos tipos de lenguaje que nos permiten dar instrucciones a un ordenador el mas
directo es el propio ordenador llamado lenguaje de maquina o código maquina formado por
secuencia de ceros y unos. Este lenguaje es muy poco intuitivo para nosotros y difícil de usar.
Por ello se recurre a otros programas más avanzados, más cercanos al propio lenguaje humano
(lenguaje de alto nivel) y entonces el ordenador es que se encarga de convertirlo o algo que
pueda manejar directamente.
Se puede distinguir dos tipos de lenguajes según se realice esta conversión

Interpretes: Cada instrucción que contiene el programa se va convirtiendo a código maquina


antes de ejecutarla, lo que hace que sean más lentas.

Compiladores: Se convierte todo el programa en bloque a código maquina y después se


ejecuta. Así hay que esperar más que en el interprete para comenzar a ver trabajar el
programa, pero después este funciona mucho más rápido.

La mayoría de los lenguajes actuales son Compiladores y suelen incluir:

-Un editor para escribir o revisar los programas.

-El compilador propiamente dicho que los convierte a código maquina

-Otros módulos auxiliares como enlazadores (linkers) para unir distintos subprogramas y
depuradores (debuggen) para ayudar a descubrir errores.

Tipos de Compiladores

Compilador Cruzado: genera un código objeto ejecutable en un ordenador distinto de aquel


en que se realiza la compilación:

Compilación Montaje Ejecución en las aplicaciones grandes es conveniente fragmentar el


programa a realizar en módulos que se compilan por separados, y una sola vez que estos estén
compilados unirlos mediante un programa denominado montador para formar el modulo
ejecutable. El montador se encarga a su vez de incluir las librerías donde están guardados las
funciones predefinidas de uso común.

Compilador incremental. Actúa. Compila un programa fuente.En caso de detectar errores, al


volver a compilar el programa corregido solo compila las modificaciones que se han hecho
respecto al primero.

Auto compilador: Es el que está escrito en el mismo lenguaje que se pretende compilar.

Meta compiladores: es un traductor que tiene como entrada la definición de un lenguaje y


como salida el compilador para dicho lenguaje 2 .

Descompilador: es el que traduce el código maquina a lenguaje de alto nivel. Los mas
utilizados son los desensambladores que traducen un programa en lenguaje maquina a otro
ensamblador.

Bootstrapping: es una técnica muy usada actualmente para el desarrollo de Compiladores de


lenguaje de alto ni8vel en especial si se quiere obtener un compilador que se compile a si
mismo.
Para describir el proceso de auto compilación se emplea la notación en T que representa
gráficamente los 3 lenguajes aplicados en el proceso de Compilación.

Lenguaje fuente (LF)

Lenguaje objeto (LO)

Lenguaje de Implementación (LI)

*Los compiladores pueden ser escrito y de hecho se han escrito en casi todos los lenguajes de
programación pero el aconsejable uso de las técnicas de programación Estructurada y de
Portabilidad implica a su vez el uso de lenguajes que permitan esas técnicas.

Un programa escrito en un lenguaje de alto nivel, no puede ser ejecutado directamente por el
ordenador, sino que debe ser traducido a lenguaje maquina.

¿Qué es un programa?

Es un algoritmo (secuencia finita y ordenada de instrucciones para la resolución de un


determinado problema) traducido a un lenguaje de programación de modo que un ordenador
sea capaz de ejecutarlo.

Programación: Elaboración de un programa de manera que sea:

Correcto (si hace lo que debe hacer)

Eficiente (debe consumir la menor cantidad de recursos tiempo y memoria)

Claro

Modular: Los programas suelen subdividirse en subprogramas (módulos) para reducir la


complejidad de aquella parte que se está implementando y facilitar la reutilización de código.

Para la elaboración de un programa hay que distinguir entre las siguientes dos frases.

-Fase de Compilación y linKado (Link, montador o enlace)

-Fase de ejecución de un programa

También podría gustarte