Está en la página 1de 35

Conceptos bsicos

Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Introduccin al estudio de los lenguajes de


programacin
Amads Antonio Martnez Morales
Departamento de Computacin
Facultad Experimental de Ciencias y Tecnologa
Universidad de Carabobo

Clases 01 y 02

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Agenda
1

Conceptos bsicos
Premisas fundamentales
Definiciones

Evolucin histrica
Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

El arte del diseo de lenguajes


Cantidad de lenguajes
Cualidades de un buen lenguaje
Principios de diseo de lenguajes
Razones para estudiar lenguajes de programacin

Clasificacin de los lenguajes


Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Estrategias para la implementacin de lenguajes


Traduccin e Interpretacin
Preprocesamiento
Linking

Amads Antonio Martnez Morales

university-logo

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Premisas fundamentales

El diseo y la implementacin de lenguajes de programacin


son conceptos fuertemente relacionados
La mayora de los lenguajes de programacin que se han
diseado e implementado, se basan en un pequeo nmero de
conceptos
La mejor manera de aprender a programar es programando, es
decir, utilizar un lenguaje de programacin para resolver
problemas

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Definiciones

Un lenguaje de programacin es una notacin para la escritura


de programas
Un programa es la especificacin de un cmputo
(computation)
Un cmputo es la aplicacin de una secuencia de operaciones
a un valor para obtener otro valor
Los lenguajes de programacin ofrecen estructuras
(denominadas constructores) para organizar los cmputos

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Definiciones

La descripcin completa de un lenguaje de programacin


incluye tres facetas: la sintaxis, la semntica y la pragmtica
La sintaxis se refiere a las maneras en las que se pueden
combinar los smbolos de un lenguaje de programacin para
crear programas
La semntica describe el comportamiento de un computador
cuando ejecuta un programa de un lenguaje de programacin
La pragmtica se refiere a los aspectos de implementacin de
un lenguaje de programacin

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Definiciones: Sintaxis

La sintaxis se enfoca en las notaciones concretas utilizadas


para representar frases de un lenguaje de programacin
Considere una frase que indique la suma del producto de v y
w con el cociente de y y z:
Como expresin matemtica: v w + y /z
En LISP: (+ ( v w) (/ y z))
En una calculadora postfija: v enter w enter y enter z
enter / +
En una hoja de clculo?
Como un rbol binario?

La sintaxis de un lenguaje de programacin especifica cules


notaciones concretas en el lenguaje son legales y cul es la university-logo
estructura abstracta asociada con cada notacin legal
Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Definiciones: Semntica

La semntica especifica la correspondencia (mapping) entre la


estructura abstracta de una frase en un lenguaje de
programacin y el significado de esa frase
Este significado est determinado por el contexto de un
sistema de interpretacin
Una misma frase puede tener varios significados posibles

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Definiciones: Semntica

Considere el rbol de sintaxis asociado con la expresin


matemtica ( (+ 1 11) 10)
Cul es la interpretacin si se utiliza el sistema de numeracin
decimal, + representa al operador suma y denota el operador
multiplicacin?
Cmo se modificara esta interpretacin si:
representase el operador de exponenciacin
Los operandos se interpretasen en un sistema de numeracin
binario
Los nmeros impares representasen el valor verdadero y los
pares el valor falso, considerando + como disyuncin y como
conjuncin

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Premisas fundamentales
Definiciones

Conceptos bsicos
Definiciones: Pragmtica

La pragmtica se enfoca en los detalles de cmo se computa


el significado de una expresin
Se considera el uso efectivo de varios recursos (tiempo,
espacio, acceso a dispositivos)
Una misma expresin puede tener varias estrategias de
evaluacin posibles
La pragmtica est relacionada con aspectos tales como la
usabilidad, aplicabilidad, seguridad y eficiencia
Considere la evaluacin de la siguiente expresin:
(/ ( (+ a b) ( 2 3)) (+ a b))

Amads Antonio Martnez Morales

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

Evolucin histrica
Lenguajes de mquina

Los primeros computadores electrnicos ocupaban gran


cantidad de superficie (en m2 ), consuman mucha energa
elctrica y eran muy costosas
Los programadores trabajaban directamente en lenguaje de
mquina
Un lenguaje de mquina es una secuencia de bits que controla
directamente el funcionamiento de un procesador
La especificacin de programas a este nivel de detalle es una
tarea tediosa y complicada

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

Evolucin histrica
Lenguajes de mquina

Considere el programa que calcula el mximo comn divisor


de dos enteros utilizando el algoritmo de Euclides, escrito en
lenguaje de mquina (expresado en notacin hexadecimal)
para el conjunto de instrucciones del procesador x86
55 89 e5 53
00 00 39 c3
75 f6 89 1c

83 ec 04 83
74 10 8d b6
24 e8 6e 00

e4 f0 e8 31
00 00 00 00
00 00 8b 5d

00 00 00 89
39 c3 7e 13
fc c9 c3 29

c3 e8 2a 00
29 c3 39 c3
d8 eb eb 90

A medida que comenzaron a requerirse programas ms


grandes, se hizo evidente la necesidad de utilizar otra notacin
university-logo
para la escritura de programas
Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

Evolucin histrica
Lenguajes ensamblador

Los lenguajes ensamblador fueron inventados para permitir


que las operaciones sean expresadas utilizando mnemnicos
Los lenguajes ensamblador fueron diseados como una
correspondencia uno a uno entre mnemnicos e instrucciones
de lenguaje de mquina
La traduccin de mnemnicos a lenguaje de mquina se
convirti en tarea de un programa de sistema denominado
assembler
Sin embargo, la programacin continu siendo una labor
orientada a las mquinas
Cada tipo de computador tena su propio lenguaje
ensamblador
Amads Antonio Martnez Morales

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

Evolucin histrica
Lenguajes ensamblador

Considere el programa que calcula el mximo comn divisor


de dos enteros utilizando el algoritmo de Euclides, escrito en
lenguaje ensamblador del procesador x86
pushl
movl
pushl
subl
andl
call
movl
call
cmpl
je
A: cmpl

%ebp
%esp, %ebp
%ebx
$4, %esp
$-16, %esp
getint
%eax, %ebx
getint
%eax, %ebx
C
%eax, %ebx

jle
subl
B: cmpl
jne
C: movl
call
movl
leave
ret
D: subl
jmp

Amads Antonio Martnez Morales

D
%eax, %ebx
%eax, %ebx
A
%ebx, (%esp)
putint
-4(%ebp), %ebx

%ebx, %eax
B

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

Evolucin histrica
Lenguajes de alto nivel

Dadas las limitaciones de los lenguajes ensamblador, los


usuarios comenzaron a requerir lenguajes independientes de
las mquinas, especialmente en clculo numrico
Este requerimiento llev al desarrollo de Fortran a mediados
de 1950s, el primer lenguaje de programacin de alto nivel.
Fortran fue seguido inmediatamente por Lisp y Algol
La traduccin de un lenguaje de alto nivel a lenguaje de
mquina o ensamblador se convirti en tarea de un programa
de sistema denominado compilador

Hoy existen miles de lenguajes de alto nivel (1442 de ellos


categorizados en http://www.99-bottles-of-beer.net/),
university-logo
y continan emergiendo otros nuevos
Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Lenguajes de mquina
Lenguajes ensamblador
Lenguajes de alto nivel

Evolucin histrica
Lenguajes de alto nivel

Considere el programa que calcula el mximo comn divisor


de dos enteros utilizando el algoritmo de Euclides, escrito en
lenguaje C
#include <stdio.h>
int gcd(int a, int b) {
while (a != b) {
if (a > b) a = a - b;
else b = b - a;
}
return a;
}
int main() {
int i, j;
scanf("%d %d", &i, &j);
printf("%d\n", gcd(i, j));
}
Amads Antonio Martnez Morales

university-logo

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Cantidad de lenguajes
Cualidades de un buen lenguaje
Principios de diseo de lenguajes
Razones para estudiar lenguajes de programacin

Diseo de lenguajes
Cantidad de lenguajes

Por qu hay tantos lenguajes de programacin?


Esta pregunta tiene varias respuestas posibles:
Evolucin: la constante bsqueda de mejores maneras para
hacer las cosas
Propsitos especficos: los lenguajes de programacin pueden
ser utilizados para varias tareas, pero algunos fueron diseados
para fines especficos en los que se destacan
Preferencias personales: los gustos de los usuarios influyen
en el lenguaje de programacin que utilizan. Es poco probable
lograr un lenguaje de programacin de aceptacin universal

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Cantidad de lenguajes
Cualidades de un buen lenguaje
Principios de diseo de lenguajes
Razones para estudiar lenguajes de programacin

Diseo de lenguajes
Cualidades de un buen lenguaje

Qu hace que un lenguaje de programacin sea exitoso?


Esta pregunta tambin tiene varias respuestas posibles:
Poder expresivo
Facilidad de uso para el usuario principiante
Simplicidad en su implementacin
Estandarizacin
Cdigo abierto (open source)
Excelentes compiladores
Libreras y herramientas de desarrollo
Economa, patrocinio e inercia

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Cantidad de lenguajes
Cualidades de un buen lenguaje
Principios de diseo de lenguajes
Razones para estudiar lenguajes de programacin

Diseo de lenguajes
Principios de diseo de lenguajes

Completitud computacional: un lenguaje de programacin


debe ser diseado para facilitar la lectura y escritura por parte
de sus usuarios y garantizar la ejecucin eficiente en el
hardware disponible
Claridad: los conceptos utilizados por un lenguaje de
programacin deberan ser bien definidos, y el resultado de
una seccin particular de cdigo fcilmente predecible
Simplicidad: un lenguaje de programacin debera estar
fundamentado en la menor cantidad de conceptos bsicos
posibles

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Cantidad de lenguajes
Cualidades de un buen lenguaje
Principios de diseo de lenguajes
Razones para estudiar lenguajes de programacin

Diseo de lenguajes
Principios de diseo de lenguajes

Ortogonalidad: un conjunto relativamente pequeo de


conceptos bsicos pueden ser combinados en un nmero
relativamente pequeo de maneras para generar las
estructuras de datos y de control de un lenguaje
Regularidad: un conjunto de elementos es regular con
respecto a una condicin si y slo si esa condicin es aplicable
a cada elemento del conjunto
Extensibilidad: los nuevos elementos sintcticos de un
lenguaje de programacin deberan ser generados de una
manera sistemtica a partir de los conceptos bsicos definidos

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Cantidad de lenguajes
Cualidades de un buen lenguaje
Principios de diseo de lenguajes
Razones para estudiar lenguajes de programacin

Diseo de lenguajes
Razones para estudiar lenguajes de programacin

Mejorar las bases para la seleccin adecuada de lenguajes de


programacin, de acuerdo con la tarea a resolver
Incrementar la habilidad para el aprendizaje de nuevos
lenguajes de programacin
Entendimiento de caractersticas oscuras
Seleccionar entre distintas alternativas para expresar una idea
Hacer buen uso de debuggers, assemblers, linkers y
herramientas relacionadas
Simular caractersticas tiles en lenguajes de programacin
que carecen de ellas
Mejor uso de la teora de lenguajes, cuando se requiera
Amads Antonio Martnez Morales

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Clasificacin de los lenguajes


Modelos de programacin

Un modelo de programacin:
Representa un enfoque particular o filosofa para la
construccin de software
Define una manera de conceptualizar lo que significa realizar
un cmputo y cmo deberan estar organizadas y estructuradas
las tareas que sern llevadas a cabo en un computador

Los modelos de programacin difieren entre s en los conceptos


utilizados para representar los elementos de un programa y las
operaciones que utiliza para definir un cmputo
En computacin existen tres modelos bsicos de
programacin: imperativo, funcional y lgico

Amads Antonio Martnez Morales

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Clasificacin de los lenguajes


Modelo de programacin imperativa

El modelo imperativo consiste de un estado y la operacin de


asignacin para modificar ese estado
Los programas consisten de secuencias de comandos y los
cmputos son cambios de estado
Es el modelo que toma ms en cuenta las consideraciones del
hardware en el cual se ejecutan los programas

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Clasificacin de los lenguajes


Modelo de programacin funcional

El modelo funcional consiste de un conjunto de valores,


funciones y la operacin de aplicacin de funcin
Las funciones pueden ser compuestas con otras funciones,
pueden recibir otras funciones como argumentos y pueden
retornar funciones como resultado
Los programas consisten de definiciones de funciones y los
cmputos son aplicaciones de funciones a valores
Desde el punto de vista terico, es el modelo con ms tiempo
en desarrollo

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Clasificacin de los lenguajes


Modelo de programacin lgica

El modelo lgico consiste de un conjunto de relaciones y la


operacin de inferencia lgica
Los programas consisten de definiciones de relaciones y los
cmputos son inferencias
Este modelo es importante porque formaliza el proceso de
razonamiento

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Clasificacin de los lenguajes


Paradigmas de programacin

Paradigmas (modelos secundarios) de programacin: orientado


a objetos y concurrente
Los programas en el paradigma orientado a objetos consisten
de un conjunto de objetos que intercambian mensajes para
realizar los cmputos
Cada objeto est conformado por valores y operaciones que
determinan los mensajes a los que responde
El paradigma orientado a objetos puede ser implementado en
cualquiera de los modelos bsicos de programacin

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Modelos de programacin
Modelo de programacin imperativa
Modelo de programacin funcional
Modelo de programacin lgica
Paradigmas de programacin

Clasificacin de los lenguajes


Paradigmas de programacin

El paradigma concurrente est relacionado con mecanismos


para la sincronizacin y comunicacin entre procesos
Los programas en el paradigma concurrente consisten de
mltiples procesos o tareas que intercambian informacin
Los cmputos pueden realizarse de manera concurrente o en
cualquier orden
El paradigma concurrente puede ser implementado en
cualquiera de los modelos bsicos de programacin

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Traduccin e Interpretacin

Bajo el enfoque de traduccin, un programa escrito en un


lenguaje S es reescrito en un programa equivalente escrito en
un lenguaje T
Esta reescritura es realizada por un traductor, un programa
escrito en un lenguaje de implementacin
Un traductor se denomina compilador cuando traduce de un
lenguaje de alto nivel a un lenguaje de bajo nivel

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Traduccin e Interpretacin

Figura: Enfoque de traduccin

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Traduccin e Interpretacin

Bajo el enfoque de interpretacin, un programa escrito en un


lenguaje S es ejecutado directamente por un intrprete o
interpretador
Un interpretador es un programa escrito en un lenguaje de
implementacin
Un interpretador generalmente ejecuta, comando por
comando, el programa escrito en el lenguaje S, traduce si es
necesario, pero no almacena el resultado de esta traduccin
Un interpretador implementa una mquina virtual, cuyo
lenguaje de mquina es el lenguaje S

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Traduccin e Interpretacin

Figura: Enfoque de interpretacin

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Traduccin e Interpretacin

Algunos lenguajes de programacin implementan un enfoque


hbrido, que consiste en una combinacin de traduccin con
interpretacin

Figura: Enfoque hbrido


Amads Antonio Martnez Morales

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Preprocesamiento

Un preprocesador es un traductor inicial que se encarga de:


Eliminar comentarios y espacios en blanco
Agrupar caracteres en tokens (palabras clave, identificadores,
nmeros y smbolos)
Expandir macros
Identificar estructuras sintcticas de alto nivel (ciclos y
subrutinas)

El objetivo del preprocesador consiste en producir cdigo


intermedio que pueda ser compilado o interpretado de manera
ms eficiente

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Preprocesamiento

Figura: Enfoque de preprocesamiento


Amads Antonio Martnez Morales

Introduccin

university-logo

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Linking

Existen programas que incluyen libreras de subrutinas que no


son parte del programa original
Las libreras de subrutinas pueden verse como una extensin
del conjunto de instrucciones de hardware
En estos casos, el compilador se apoya en un programa
separado, que se denomina linker
El linker se encarga de incluir las libreras requeridas en el
programa final

university-logo

Amads Antonio Martnez Morales

Introduccin

Conceptos bsicos
Evolucin histrica
El arte del diseo de lenguajes
Clasificacin de los lenguajes
Estrategias para la implementacin de lenguajes

Traduccin e Interpretacin
Preprocesamiento
Linking

Estrategias para la implementacin de lenguajes


Linking

university-logo

Figura: Enfoque de linking


Amads Antonio Martnez Morales

Introduccin