módulo 1 lenguajes de programación comparados [modo de …€¦ · programación distribuida...

36
Lenguajes de Programación d Comparados OBJETIVO: El alumno conocerá las formas y criterios de El alumno conocerá las formas, y criterios de clasificación de lenguajes de programación, los elementos básicos que los constituyen y las herramientas necesarias para la creación y herramientas necesarias para la creación y reconocimiento de lenguajes de programación.

Upload: others

Post on 29-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

Lenguajes de Programación dComparados

OBJETIVO:

El alumno conocerá las formas y criterios deEl alumno conocerá las formas, y criterios declasificación de lenguajes de programación,los elementos básicos que los constituyen y lasherramientas necesarias para la creación yherramientas necesarias para la creación yreconocimiento de lenguajes deprogramación.

Page 2: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

Módulo 1: IntroducciónMódulo 1: Introducción

Page 3: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

¿Qué es un Lenguaje de Programación?¿Qué es un Lenguaje de Programación?

“El propósito primario de un lenguaje de programación es ayudar al programadorprogramación es ayudar al programador en la práctica de su arte.” Charles Hoare.

C tit id Sí b l• Constituido por Símbolos.• Reglas Sintácticas y Semánticas.Reglas Sintácticas y Semánticas.

Page 4: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.1.1 Estudio de los lenguajes de programación desde el punto de vista de las áreas de aplicación

• Científicos• Ingeniería• Ingeniería• De Gestión (negocios)( g )• De Inteligencia Artificial• Programación de sistemas

M lti ó it• Multipropósito

1.1 Clasificación de los lenguajes de programación

Page 5: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.1.2 Estudio de los lenguajes de programación desde el punto de vista de su nivel

AltAlto

M diMedio

BajoBajoLenguaje MáquinaLenguaje Máquina

1.1 Clasificación de los lenguajes de programación

Page 6: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.1.3 Estudio de los lenguajes de programación desde el punto de vista de los paradigmas de desde el punto de vista de los paradigmas de

programación• Paradigma: “Logros científicos universalmente reconocidos que durante un

tiempo proporcionan problemas y soluciones modelo para una comunidad de profesionales.” Kuhn.

i l iImperativo: Declarativo:Estructurado en bloques Programación LógicaBasados en objetos Programación funcionalBasados en objetos Programación funcionalProgramación distribuida Lenguajes para bases de datos

1.1 Clasificación de los lenguajes de programación

Page 7: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.1.3 Estudio de los lenguajes de programación desde el punto de vista de los paradigmas de desde el punto de vista de los paradigmas de

programaciónI iImperativo

cambios de estado en la memoria

Estructurado en bloquesSubrutinasDatos comunesProcedimiento – principal bloque de construcción

Basado en objetosObjeto – procedimientos y datos que comparten un estado

Programación distribuidaDébilmente acoplado – no necesita soportar memoria compartidaFuertemente acoplado – varios procesos en ejecución acceden a la misma ubicación de

memoria

1.1 Clasificación de los lenguajes de programación

Page 8: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.1.3 Estudio de los lenguajes de programación desde el punto de vista de los paradigmas de desde el punto de vista de los paradigmas de

programaciónD l iDeclarativo

No se hacen asignaciones a variables.El intérprete o compilador administra la memoria.

Programación lógicaDeducir nuevos hechos a partir de otros hechos conocidosUn programa se compone de:

Una serie de axiomasReglas de inferenciaTeorema por demostrarse

FuncionalOpera a través de funcionesNo se permiten asignaciones globalesUn programa es una función

1.1 Clasificación de los lenguajes de programación

Page 9: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.1.3 Estudio de los lenguajes de programación desde el punto de vista de los paradigmas de desde el punto de vista de los paradigmas de

programaciónL j b d dLenguajes para bases de datos

PersistenciaAdministración de cambiosDDLDML

1.1 Clasificación de los lenguajes de programación

Page 10: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 2 Lenguajes formales1.2 Lenguajes formalesLenguaje

Estructura lexicográfica (tokens)SintaxisSemántica

GramáticaAlfabetoReglas para formar palabrasReglas para formar declaraciones

1.2 Lenguajes formales 

Page 11: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 2 Lenguajes formales 1.2 Lenguajes formales L j f l F i i d l l b álid l jLenguaje formal: Forma o sintaxis de las palabras válidas en un lenguaje.

Definición de lenguajes formales (L)Alfabeto Σ de símbolos individualesConjunto de reglas P para determinar cuáles cadenas de Σ son válidas en L. Las reglas son de la forma α->β

Al conjunto Alfabeto – Reglas de producción se le conoce como gramática.

Gramática estructurada en frasesG=(Σ, N, P, Inicio)

Σ = Conjunto de símbolos terminalesN = Conjunto de símbolos no terminalesP = Conjunto de reglas de producciónInicio = Símbolo de inicio

1.2 Lenguajes formales 

Page 12: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.3 Características de los lenguajes de programación

i i bi d fi idDescripciones bien definidasBNF y EBNF: Metalenguajes.Semántica: significado de una construcción particular.g p

Comprobabilidad¿El programa cumple con la intención del programador?¿El compilador traduce de manera correcta la sintaxis y semántica?¿El compilador traduce de manera correcta la sintaxis y semántica?¿La máquina funciona correctamente?

ConfiabilidadEl SW se considera confiable si se comporta como es anunciado y produce los resultados esperados.Un lenguaje confiable debe ser capaz de manejar errores en tiempo de ejecución.g j p j p jSe refiere a los mecanismos que promueven la escritura, mantenimiento y depuración de programas correctos además del manejo de excepciones.

1.3 Características de los lenguajes de programación

Page 13: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.3 Características de los lenguajes de programación

d ió á idTraducción rápidaAnálisis lexicográfico.Análisis sintáctico.Análisis semántico.

Código objeto eficienteManejo adecuado de recursosManejo adecuado de recursos.

OrtogonalidadComponentes independientes entre sí que se comportan de la misma manera en cualquier circunstancia.

GeneralidadExistencia de características necesarias del lenguaje.g j

1.3 Características de los lenguajes de programación

Page 14: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1.3 Características de los lenguajes de programación

C i i iConsistencia y notaciones comunesNociones similares deben verse y comportarse de la misma forma.

SubconjuntosjImplementación de sólo una parte del lenguaje, sin características especiales.

ExtensibilidadInverso de los subconjuntosInverso de los subconjuntos.

TransportabilidadUn lenguaje es transportable si sus programas pueden compilarse y ejecutarse en diferentes máquinas si tener que reescribir el código fuente.

1.3 Características de los lenguajes de programación

Page 15: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 1 Jerarquía de Chomsky1.4.1.1 Jerarquía de Chomsky

Tipo 0 Lenguajes recursivamente enumerables reconocidos por lasTipo 0: Lenguajes recursivamente enumerables reconocidos por las máquinas de Turing

Tipo 1: Lenguajes sensibles al contexto reconocidos por autómatas lineales limitados

Tipo 2: Lenguajes libres de contexto reconocidos por autómatas descendentes

Tipo 3: Lenguajes regulares reconocidos por autómatas finitos

1.4 Diseño de un lenguaje de programación

Page 16: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 2 Backus Naur Form1.4.1.2 Backus Naur Form

BNF (Backus – Naur Form)::- Se define como| Alternativamente o| Alternativamente, o<algo> <algo> se reemplaza por su definiciónalgo terminal o token

EBNF (Extended Backus – Naur Form)[ l ] O i l[algo] Opcional{algo} 0 o más ocurrencias de algo(esto | eso) Agrupación(esto | eso) Agrupación

1.4 Diseño de un lenguaje de programación

Page 17: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 3 Árboles de reconocimiento1.4.1.3 Árboles de reconocimiento

ÁÁrbol ordenado y etiquetado tal que:• Todo nodo está etiquetado con un símbolo de• La raíz es el símbolo inicial

N ∪ Σ ∪ {ε}

La raíz es el símbolo inicial• Nodos internos etiquetados con símbolos no terminales• Si un nodo está etiquetado con A y sus k hijos están etiquetados X1 X2 … Xk

(leídos de izquierda a derecha), entonces A → X1X2…Xk es una regla de la gramática

• Si un nodo está etiquetado con ε entonces es el único hijo de un nodoSi un nodo está etiquetado con ε entonces es el único hijo de un nodo

1.4 Diseño de un lenguaje de programación

Page 18: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 4 Diagramas de sintaxis1.4.1.4 Diagramas de sintaxis

Representación alternativa a BNF

No Terminal

T i lTerminal

Flujo

1.4 Diseño de un lenguaje de programación

Page 19: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 1 Autómata finito1.4.1.5.1 Autómata finito

Dada una gramática regular G y una cadena de su alfabeto, ¿Cómo podemos reconocer si esa cadena particular es o no una palabra de L(G)?

Máquina que aceptará palabras válidas y rechazará cadenas inválidas.

Debe funcionar en forma automática y reconocer o rechazar una cadena de entrada en un número finito de pasos.

Dada una cadena para procesar se evalúa mecánicamente, de izquierda a derecha, cada símbolo de la palabra para aceptarla como válida o

h lrechazarla.

1.4.1.5 Autómatas

Page 20: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 1 Autómata finito1.4.1.5.1 Autómata finito

De manea formal, un autómata finito es una 5-tupla (S, ∑, T, Inicio, FS) con:Ejemplo:

S = Un conjunto de estados S = {1 2 3 4}S Un conjunto de estados S {1, 2, 3, 4}∑ = Alfabeto ∑ = {a, …, z, 0, …, 9, #}T = Un conjunto de transiciones T = {1. (1, a, …, z) → 2Inicio = Estado inicial 2. (1, 0, …, 9 | # | otro) → 4FS = Estados finales 3. (2, a, …, z | 0, …, 9) → 2

4 (2 #) 34. (2, #) → 35. (2, otro) → 4}

Inicio = 1Inicio 1FS = {3, 4}

1.4.1.5 Autómatas

Page 21: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 1 Autómata finito1.4.1.5.1 Autómata finito

a, …, z

1 2

0, …, 9#

a, …, z0, …, 9

#

otro

a, …, z 0, …, 9 # otro4 3

#otro

1 2 4 4 4

2 2 2 3 4

3 ‐ ‐ ‐ ‐

4 ‐ ‐ ‐ ‐

1.4.1.5 Autómatas

Page 22: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 2 Autómata descendente1.4.1.5.2 Autómata descendente

Gramáticas libres de contexto G=(∑, N, P, Inicio)

• Gramáticas estructuradas por frasesGramáticas estructuradas por frases• ∑ Conjunto de símbolos terminales• N Conjunto de símbolos no terminales• P Conjunto de reglas de producción• Símbolo de inicio

Reglas de producción: A→s A ∈ N s cadena de ∑∪ N

1.4.1.5 Autómatas

Page 23: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 2 Autómata descendente1.4.1.5.2 Autómata descendente

Un autómata descendente puede ser definido como un conjunto de reglas para dos cintas: una que contiene una cadena de entrada y la otra para ser empleada como una pila.

Reglas: [r, s1]→[x, s2]á d l i d dr: carácter de la cinta de entrada

s1:carácter en la parte superior de la pilax: >|-x: >|s2:remplaza a s1

1.4.1.5 Autómatas

Page 24: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 2 Autómata descendente1.4.1.5.2 Autómata descendente

Formalmente un autómata descendente es una 6-tupla :

(∑ N ∪ ∑ Inicio # {> -} R) en donde:(∑, N ∪ ∑, Inicio, #, {>, -}, R) en donde:

1. ∑ símbolos de la cinta de entrada2. N ∪ ∑ símbolos de la pila3. Inicio es el símbolo de inicio4 # l í b l d i ió4.# es el símbolo de terminación5. {>, -} movimiento del apuntador de lectura6 R es el conjunto de reglas6. R es el conjunto de reglas

1.4.1.5 Autómatas

Page 25: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 2 Autómata descendente1.4.1.5.2 Autómata descendente

Ejemplo:

∑ = {a b #}

a a b b # S #

*

a a b b # a S #b∑ {a, b, #}N ∪ ∑ = {S, a, b, #}Inicio = S

a a b b # a S #b

*

a a b b # S b #

R = { 1. [σ, S] → [-, aSb]2. [σ, S] → [-, ab]3 [ ] [ ]

*

a a b b # a b #b

*3. [a, a] → [>, ε]4. [b, b] → [>, ε]5 [# #] → Éxito

*

a a b b # b b #

*5. [#, #] → Éxito} a a b b # b #

*

1.4.1.5 Autómatas

a a b b # #

*

Page 26: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 3 Autómata lineal limitado1.4.1.5.3 Autómata lineal limitado

Gramáticas libres de contexto G=(∑, N, P, Inicio)

• Gramáticas estructuradas por frasesGramáticas estructuradas por frases• ∑ Conjunto de símbolos terminales• N Conjunto de símbolos no terminales• P Conjunto de reglas de producción• Símbolo de inicio

Reglas de producción: α→βα puede contener más de un símbolo con al menos uno no terminalα puede contener más de un símbolo con al menos uno no terminalβ es de longitud mayor o igual a α

1.4.1.5 Autómatas

Page 27: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 3 Autómata lineal limitado1.4.1.5.3 Autómata lineal limitado

Un Autómata Lineal Limitado requiere de:

1 Un alfabeto ∑ de símbolos de entrada1. Un alfabeto ∑ de símbolos de entrada2. Una cinta dividida en celdas3. Una cabeza de lectura/escritura4. Un alfabeto Г de caracteres que pueden escribirse sobre la cinta5. Un conjunto finito S de estados6 U j d l ( ) P C d l d l f6. Un conjunto de reglas (programa) P. Cada regla es de la forma:

(estado, leer-carácter, escribir-carácter, dirección, estado2)

LBA = (∑, Г, S, SI,SF, P)

1.4.1.5 Autómatas

Page 28: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 1 5 3 Autómata lineal limitado1.4.1.5.3 Autómata lineal limitado

Ej lEjemplo:∑ = { a, b, c, # } P = { 1. (S0, a, A, R, S1) 2. (S0, T, B, R, S3)Γ = { A B C T } 3 (S0 C C R S0) 4 (S0 # # R S5)Γ { A, B, C, T } 3. (S0, C, C, R, S0) 4. (S0, #, #, R, S5)S = { 0, 1, 2, 3, 4, 5 } 5. (S1, a, a, R, S1) 6. (S1, T, T, R, S1)SI = 0 7. (S1, b, T, L, S2) 8. (S2, T, T, L, S2)SF = 5 9. (S2, a, a, L, S2) 10. (S2, A, A, R, S0)

11. (S3, T, T, R, S3) 12. (S3, C, C, R, S3)13 (S C L S ) 14 (S C C L S )13. (S3, c, C, L, S4) 14. (S4, C, C, L, S4)15. (S4, T, T, L, S4) 16. (S4, B, B, R, S0) }}

a a b b c c # ...

*

S0: A a b b c c # ...

*

S1:

1.4.1.5 AutómatasA a b b c c # ...

*

S1: A a T b c c # ...

*

S2:

Page 29: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 3 Proceso de compilación1.4.3 Proceso de compilación

Proceso a través del cual se traducen programas escritos en código fuente a programas en código objeto.

En la compilación se distinguen dos partes:• Análisis• Síntesis

En el proceso de compilación existen otras herramientas involucradas:En el proceso de compilación existen otras herramientas involucradas:• Preprocesador: Expande macros.• Ensamblador: Traduce ensamblador a código máquina.g q• Cargador/Enlazador: Localiza bibliotecas y edita los enlaces.

1.4.3 Proceso de compilación

Page 30: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 3 Proceso de compilación1.4.3 Proceso de compilación

Análisis: Divide al programa fuente en sus elementos y crea una representación interna del programa fuente.

En el análisis se determinan las operaciones que implica el programa fuente y se registran en un árbol sintáctico donde cada nodo representa una operación y los hijos son los argumentosoperación y los hijos son los argumentos.

El análisis consta de tres fases:• Análisis lineal (o léxico)• Análisis jerárquico (o sintáctico)• Análisis semántico

1.4.3 Proceso de compilación

Page 31: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 3 Proceso de compilación1.4.3 Proceso de compilación

Análisis lineal: Se lee una cadena de caracteres de izquierda a derecha agrupando componentes léxicos, que son secuencias de caracteres que tienen un significado como agrupación.

Análisis jerárquico: Su función es tomar los tokens que ha encontrado el analizador léxico y determinar la estructura sintáctica de las sentenciasanalizador léxico y determinar la estructura sintáctica de las sentencias, agrupando los tokens en clases sintácticas, tales como expresiones funciones, etc.

Análisis semántico: Detecta la validez semántica de las sentencias aceptadas por el sintácticopor el sintáctico.

1.4.3 Proceso de compilación

Page 32: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 3 Proceso de compilación1.4.3 Proceso de compilación

Síntesis: Se encarga de finalizar el proceso de compilación del código fuente generando el código objeto correspondiente.

La síntesis consta de cuatro fases:• Generación de código intermedio• Optimización de código intermedio• Generación de código• Optimización de código• Optimización de código

1.4.3 Proceso de compilación

Page 33: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 3 Proceso de compilación1.4.3 Proceso de compilación

Generación de código intermedio: El objetivo del código intermedio es reducir el número de programas necesarios para construir traductores y permitir más fácilmente la transportabilidad de los traductores desde unas máquinas a otras.

Optimización de código intermedio: Se encarga de la depuración del códigoOptimización de código intermedio: Se encarga de la depuración del código intermedio generado buscando hacerlo más eficiente.

Generación de código: Una vez obtenido el código intermedio se traducirá a código ensamblador o máquina .

Optimización de código: Dependiente de la máquina , consiste en la asignación de registros y el manejo eficiente de memoria.

1.4.3 Proceso de compilación

Page 34: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 3 Proceso de compilación1.4.3 Proceso de compilaciónAnalizador léxico

Analizador sintáctico

Analizador semántico

Generador de código

Administrador de tabla de símbolos

Manejador de erroresGenerador de código 

intermedio

Optimizador de código intermediocódigo intermedio

Generador de código

Optimizador de código

1.4.3 Proceso de compilación

Programa objeto

Page 35: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 4 Proceso de carga y enlace1.4.4 Proceso de carga y enlace

Cargador: Es un programa especial y parte del sistema operativo que tiene como propósito colocar en la memoria las instrucciones y los datos de un programa o información codificada en lenguaje máquina, para que la computadora pueda procesarla.

Funciones:Funciones:• Extraer información de algún medio externo.• Colocar la información en celdas sucesivas de memoria a partir de una p

preespecificada.

1.4.4 Proceso de carga y enlace

Page 36: Módulo 1 Lenguajes de Programación Comparados [Modo de …€¦ · Programación distribuida Lenguajes para bases de datos 1.1 Clasificación de los lenguajes de ... Tipo 3: Lenguajes

1 4 4 Proceso de carga y enlace1.4.4 Proceso de carga y enlace

Ligador: Es un programa que enlaza todos los programas o módulos obteniendo lo que denominamos programa ejecutable. Incorpora las rutinas de bibliotecas en caso de solicitarlas el programa.

Para ejecutar el programa el enlazador obtiene los módulos objeto de la memoria principal a fin de formar la imagen de programa binariomemoria principal a fin de formar la imagen de programa binario ejecutable.

• Enlace estático• Enlace dinámico

1.4.4 Proceso de carga y enlace