Sie sind auf Seite 1von 16

14/04/2013

TEORA DE LENGUAJES
INTRODUCCIN Ing. Laura Bazn Daz

INTRODUCCIN
Lenguajes de Programacin

14/04/2013

Lenguaje de Programacin
Es un conjunto limitado de palabras y smbolos que representan procedimientos, clculos, decisiones y otras operaciones, como control de procesos, que puede ejecutar una computadora. Es una tcnica estndar de comunicacin que permite expresar las instrucciones que han de ser ejecutadas en una computadora.
3

Permite especificar en forma precisa:


Sobre qu datos una computadora debe operar. Cmo deben ser stos almacenados y transmitidos. Y qu acciones debe tomar bajo una variada gama de circunstancias.

Un programa escrito en un lenguaje de programacin necesita pasar por un proceso de Compilacin, es decir, ser traducido al Lenguaje de Mquina, o ser interpretado para que pueda ser ejecutado por el ordenador.

14/04/2013

LENGUAJES
LENGUAJE MQUINA: Est orientado hacia la mquina que est constituida por varios arreglos de bits. Este lenguaje es fcil de entender por la computadora, pero difcil para el usuario.
5

LENGUAJES
LENGUAJE DE BAJO NIVEL: Es un lenguaje de programacin bien cercano al lenguaje de mquina. Es difcil de entender por las personas y requiere que los programadores codifiquen las instrucciones con muchos detalles. Ej. (Leng. Ensamblador)

14/04/2013

LENGUAJES
LENGUAJE DE ALTO NIVEL: Es un lenguaje que se asemeja ms al lenguaje humano. Es ms fcil escribir programas en este lenguaje, pero luego deben de ser traducidos para que la computadora los entienda.

Cdigo Fuente Source Code


Es un conjunto de instrucciones del programa que estn escritas en un lenguaje de programacin

Cdigo del ObjetoObject Code


Es un conjunto de instrucciones binarias traducidas y que la computadora puede ejecutar.
8

14/04/2013

La programacin de un lenguaje de alto nivel o en un lenguaje ensamblador requiere algn tipo de interfaz con el lenguaje mquina para que el programa pueda ejecutarse. Las tres interfaces ms comunes: Un ensamblador Un compilador Un intrprete
9

Lenguajes de Alto Nivel ms comunes


BASIC(Beginners Instruction Code) All-purpose Symbolic
Es un lenguaje de propsito general. Desarrollado por John Kemeny y Thomas Kurtz en 1963. Existen numerosas versiones, algunas son compiladores y otras son intrpretes.

COBOL(Common Business Oriented Language)


Es un lenguaje compilador diseado para aplicaciones de negocios. Desarrollado en 1959 por el gobierno de los EEUU Grace Hopper. Es el ms utilizado por los mainframe.

10

14/04/2013

Lenguajes de Alto Nivel ms comunes


PASCAL
Este programa recibi su nombre en honor a Blaise Pascal. Fue desarrollado por Niklaus Wirth en 1970 y diseado para ensear tcnicas de programacin estructurada

FORTRAN(FORmula TRANslator)
Es uno de los primeros lenguajes de alto nivel desarrollado en 1954 por John Backus y un grupo de IBM. Es un lenguaje compilador que se dise para expresar con facilidad las frmulas matemticas, problemas cientficos y de ingeniera.

11

Lenguajes de Alto Nivel ms comunes


ADA (Honor a Augusta Ada Byron)
Es un lenguaje Multitareas desarrollado como una norma del departamento de defensa de EEUU, Est basado en Pascal, pero ms amplio y especfico. Fue diseado para aplicaciones comerciales y cientficas

APL(A Programming Language)


Fue desarrollado por Kenneth Inverson en 1960 para resolver problemas matemticos. Se caracteriza por su brevedad y por su capacidad con las matrices. Se utiliza en el desarrollo de modelos matemticos.
12

14/04/2013

Lenguajes de Alto Nivel ms comunes


PL/1(Programming Language 1)
Fue desarrollado por IBM. Es un lenguaje de propsito general que incluye caractersticas de COBOL y de FORTRAN. Su principal utilidad es en los Mainframes.

RGP(Report Program Generator)


Fue desarrollado por IBM en 1964 y diseado para generar informes comerciales o de negocios.

Lenguaje C
Fue desarrollado por en los 70 por Brian Kernigham y Dennis Ritchie.Necesitaban un lenguaje que se pudiera integrar con UNIX, para permitir hacer modificaciones y mejoras ms fcilmente.
13

PROGRAMA
Es un conjunto de instrucciones que al ser ejecutadas resuelven un problema. Tiene 3 partes: Entrada de Datos(X): Datos del usuario a travs de Instrucciones de Lectura. Acciones de un Algoritmo f(X): Se resuelve el problema usando los datos de entrada. Salida (Y): Resultados de las acciones, a travs de dispositivos de salida(Escritura).

14

14/04/2013

Compilacin
Proceso de Traduccin que convierte un programa fuente escrito en un lenguaje de programacin de alto nivel a un programa objeto en cdigo mquina y listo por tanto para ejecutarse en el ordenador, con poca o ninguna preparacin adicional.

15

PROCESO DE COMPILACIN EN SU ASPECTO EXTERNO

FUENTE Ordenador COMPILADOR Compilacin Ejecucin


CORREGIR ERRORES DEL FUENTE

Objeto

LISTADO DE DIAGNSTICOS

BIEN

No

S Ordenador RESULTADOS PROGRAMA OBJETO DATOS

16

14/04/2013

En cambio un intrprete realiza tambin la traduccin mencionada en el proceso de compilacin, pero paso a paso, conforme va ejecutando el programa fuente. Por tanto un Intrprete Puro ejecuta directamente el programa fuente, coexistiendo en la memoria del ordenador el programa fuente y el intrprete.

Programa Fuente

Intrprete 17

Programa Fuente

Intrprete

Ordenador Tabla de Smbolos Programa Fuente (Formato Interno) Intrprete

Revisin Global y Traduccin

Datos

Resultados

FORMA DE OPERAR UN INTRPRETE ACTUAL

18

14/04/2013

Ensamblador
Se llama as a un compilador sencillo, en el que el lenguaje fuente tiene una estructura simple que permite una traduccin de una sentencia fuente a una instruccin en cdigo mquina. Hay ensambladores que tienen MacroInstrucciones en su lenguaje, que de acuerdo con sus nombres se suelen traducir a varias instrucciones de mquina.
19

Compilador Cruzado
Se denomina as el compilador que traduce un lenguaje fuente a objeto, pero este programa objeto es para un ordenador distinto a aquel en que se compila.
Compilacin Ordenador 1 FUENTE COMPILADOR Ejecucin Ordenador 2 OBJETO RESULTADOS

COMPILADOR CRUZADO

DATOS

20

10

14/04/2013

Montaje
En las aplicaciones reales es muy conveniente y hasta necesario el fragmentar nuestro programa fuente en partes o trozos, llamados de distintas formas (procedimientos, funciones, subrutinas, etc.). Es pues importante que el lenguaje fuente permita dicha fragmentacin o compilacin separada. Si es as se compilan los procesos por separado y luego se montan juntos todos los objetos producidos obtenindose as un mdulo cargable listo ya para su ejecucin.

21

Compilacin

Montaje

Ejecucin

Ordenador Nmina Programa Fuente Completo Compilador Ordenador Clculo Compilador Ordenador Compilador Objeto Listado Resultados Objeto Clculo Montador Mdulo Cargable Mdulo Cargable Objeto Nmina Ordenador Ordenador Datos

Listado

PROCESO DE COMPILACIN, MONTAJE Y EJECUCIN 22

11

14/04/2013

Compilador de una o varias pasadas


La mayor parte de los conceptos vistos aqu no afectan al proceso de compilacin en s, sino a sus caractersticas externas: tipo de objeto obtenido, si acepta o no montajes, etc. En cambio el que sea de una o varias pasadas si es esencial es su estructura. Se le llama PASADA al recorrido total de todo el fuente con alguna misin especfica. Podemos decir que el nmero de pasadas de un compilador depende de dos criterios, no siempre independientes entre s: Del lenguaje fuente en cuestin Importantes criterios prcticas.(Divisin en fases/equipo)

23

Compilador de una o varias pasadas


Lo mejor y lo ms difcil es el compilador de una pasada, que supone bastantes requisitos del lenguaje fuente. En cambio si se construye un compilador de varias pasadas, no tiene que ser necesariamente ms lento, y se puede concretar mejor el objetivo de cada pasada.
24

12

14/04/2013

Compilador de una o varias pasadas


Ventajas:
Si el ordenador tiene poca memoria: Cada pasada se ejecuta y luego es borrada por la siguiente. El mantenimiento del compilador es ms fcil al contar con varias fases o pasadas.

25

Traductor o Compilador Incremental


Llamado tambin interactivo o conversacional, es aquel que compila un programa en el que si despus se descubren errores, entonces en vez de corregir el programa fuente y compilarlo por completo, se compilan slo las modificaciones (teniendo en cuenta las repercusiones en el resto del programa).El usuario siempre est en contacto con el compilador.

26

13

14/04/2013

AutoCompilador
Suele ser un problema, conseguir que un compilador sea Portable de una mquina a otra. Para facilitar las Portabilidad, se puede escribir un compilador en el propio lenguaje fuente que traduce, entonces se llama AutoCompilador

27

MetaCompilador
O Compilador de Compiladores, se refiere a un programa al que se le especifica el lenguaje para el que se quiere un compilador. El compilador es el resultado obtenido del metacompilador.

28

14

14/04/2013

DeCompilador
Es un sistema que acepta como entrada un cdigo de mquina y lo traduce a un lenguaje de alto nivel. Casi independiente de la mquina

29

Estructura de Bloques de un Compilador


Compilador Anlisis FUENTE SCANNER Tablas FOR

PARSER Tabla de Smbolos Tiras

Sntesis Preparacin para la Generacin Del cdigo. Generacin Del cdigo.

Constantes Objeto 30

15

14/04/2013

Estructura de un Compilador
Se puede considerar un compilador como un Conversor o Transformador de tiras de caracteres: el programa fuente como tira origen, y el programa objeto como tira resultante. En su estructura destaca un proceso de anlisis y otro de sntesis.

31

Estructura de un Compilador
ANLISIS: Realiza la lectura de la tira de origen. Tiene dos partes: 1) El explorador o Analizador Lexicogrfico con la misin de leer el programa fuente y aglutinar algunos smbolos de estructura sencilla; 2)Luego el Reconocedor o Analizador Sintctico mira la estructura sintctica de la sentencia del programa fuente. Se activan Rutinas Semnticas para realizar comprobaciones adicionales. SNTESIS: Se comienza la obtencin de la tira de caracteres que formar el programa objeto. Para ello puede existir: 1)Preparacin para la generacin del cdigo y luego 2)La generacin del Cdigo.

32

16

Das könnte Ihnen auch gefallen