Sunteți pe pagina 1din 22

INTRODUCCION INTRODUCCION

TEORIA DE LENGUAJ ES-2011-I


Ing. Sandra C. Rodrguez Avila
Procesadores de lenguaje es el nombre genrico que
ib t d l li i i f ti l l reciben todas las aplicaciones informticas en las cuales
uno de los datos fundamentales de entrada es un
lenguaje. La definicin anterior afecta a una gran variedad
de herramientas software: de herramientas software:
Traductores (translators)
Compiladores (compilers)
( ) Ensambladores (assemblers)
Montadores de enlaces o enlazadores (linkers)
Cargadores (loaders) g ( )
Intrpretes (interpreters)
Desensambladores (dissemblers)
Decompiladores (decompilers) etc
SCRA TEORIA DE LENGUAJ ES
Decompiladores (decompilers), etc
1 Lenguajes de Programacin 1. Lenguajes de Programacin
Lenguaje natural:
Leng. de Programacin
N t i
g j
Las relaciones humanas
se llevan a cabo a travs
del lenguaje. Una lengua
Notacin que se usa para
describir Algoritmos y
Estructuras de Datos y que
se puede implementar en
del lenguaje. Una lengua
permite la expresin de
ideas y de
razonamientos y sin ella
se puede implementar en
una Computadora.
La programacin de
ordenadores se realiza en razonamientos, y sin ella
la comunicacin sera
imposible
ordenadores se realiza en
los llamados lenguajes de
programacin que
posibilitan la comunicacin
de rdenes a la
computadora u ordenador.
SCRA TEORIA DE LENGUAJ ES
Traduccin
Compilador
Un lenguaje de programacin se puede definir Un lenguaje de programacin se puede definir
de distintas formas:
es una notacin formal para describir algoritmos o
funciones que sern ejecutadas por un ordenador funciones que sern ejecutadas por un ordenador.
es un lenguaje para de comunicar instrucciones al
ordenador.
i ibi d i i es una convencin para escribir descripciones que
puedan ser evaluadas.
Tambin se utilizan en Informtica otros
l j d i lenguajes que no son de programacin y que
tienen otras aplicaciones, por ejemplo puede
haber lenguajes para describir formatos g j p
grficos, de texto, de descripcin de pginas, de
descripcin de sonidos y msica, etc...
SCRA TEORIA DE LENGUAJ ES
Clasificacin de los lenguajes de g j
programacin
L l j d i d Los lenguajes de programacin se pueden
clasificar desde distintos puntos de vista:
Segn su grado de independencia de la
mquina
L j i Lenguaje mquina
Lenguaje ensamblador (en ingls assembly)
Lenguajes de medio nivel Lenguajes de medio nivel
Lenguajes de alto nivel o lenguajes orientados a
usuarios
SCRA TEORIA DE LENGUAJ ES
Lenguajes orientados a problemas concretos
Segn la forma de sus instrucciones
Lenguajes imperativos o procedimentales
Lenguajes declarativos: lgicos y funcionales
Lenguajes concurrentes Lenguajes concurrentes
Lenguajes orientados a objetos
Por generaciones g
Primera generacin
Segunda generacin
T i Tercera generacin
Cuarta generacin
Quinta generacin Quinta generacin
Generacin orientada a objetos
Generacin visual
SCRA TEORIA DE LENGUAJ ES
Generacin internet
SCRA TEORIA DE LENGUAJ ES
Grado de independencia de la
i L j i mquina: Lenguaje mquina
Son aquellos que estn escritos en lenguajes Son aquellos que estn escritos en lenguajes
directamente inteligibles por la mquina, ya que
sus instrucciones son cadenas binarias que
especifican una operacin y las posiciones o
direcciones de memoria implicadas en la
i operacin.
Las instrucciones en lenguaje de mquina
dependen del hardware de la computadora y dependen del hardware de la computadora y,
por tanto, diferirn de una computadora a otra.
SCRA TEORIA DE LENGUAJ ES
Grado de independencia de la
i L j bl d mquina: Lenguaje ensamblador
Son ms fciles de utilizar que los lenguaje de mquina, pero
d d d l i ti l dependen de la mquina en particular.
El lenguaje por excelencia en esta clasificacin es el
ensamblador.
Las instrucciones en lenguaje ensamblador son instrucciones Las instrucciones en lenguaje ensamblador son instrucciones
conocidas como mnemotcnicos (mnemonics).
Un programa escrito en lenguaje ensamblador no puede ser
ejecutado directamente por la computadora en esto se ejecutado directamente por la computadora en esto se
diferencia esencialmente del lenguaje mquina, sino que
requiere una fase de traduccin al lenguaje mquina.
El programa original se denomina programa fuente y el
t d id l j i ll programa traducido en lenguaje mquina se llama programa
objeto. El traductor de programas fuente a objeto es un
programa llamado ensamblador (assembler) y existe en casi
todas las computadoras.
SCRA TEORIA DE LENGUAJ ES
todas as co putado as
Grado de independencia de la
i L mquina: Lenguajes de medio nivel
Tienen algunas de las caractersticas de los Tienen algunas de las caractersticas de los
lenguajes de bajo nivel (posibilidad de acceso
directo a posiciones de memoria, indicaciones
para que ciertas variables se almacenen en los
registros del microprocesador, etc...) aadidas a
l ibilid d d j d t t d las posibilidades de manejo de estructuras de
control y de datos de los lenguajes de alto nivel.
Ejemplos de este tipo de lenguajes son el C y el Ejemplos de este tipo de lenguajes son el C y el
FORTH.
SCRA TEORIA DE LENGUAJ ES
Grado de independencia de la mquina:
L j d lt i l Lenguajes de alto nivel
Tienen caractersticas superiores a los lenguajes de tipo
bl d ti l ibilid d ensamblador, aunque no tienen algunas posibilidades
de acceso directo al sistema. FORTRAN, COBOL y
Pascal.
F ilit l it d t t d Facilitan la escritura de programas con estructuras de
datos complejas, la utilizacin de bloques, y
procedimientos o subrutinas.
Son fciles de aprender por los programadores En la Son fciles de aprender por los programadores. En la
mayora de lenguajes se emplean palabras en ingls.
El proceso de Traduccin es complejo.
El i i l d i f t l El programa original se denomina programa fuente y el
programa traducido en lenguaje mquina se llama
programa objeto. El traductor de programas fuente a
objeto es un programa llamado compilador o
SCRA TEORIA DE LENGUAJ ES
objeto es un programa llamado compilador o
interprete.
Dentro de los lenguajes de alto nivel se pueden destacar
ti d l j i t d bj t it un tipo de lenguajes, orientados a objetos, que permiten
definir tipos abstractos de datos (habitualmente
denominados clases) que agrupan datos y mtodos
(operadores funciones y procedimientos) (operadores, funciones y procedimientos).
Los objetos son la instanciacin de una clase. Las
clases se definen en tiempo de compilacin, y los
objetos son definidos en ejecucin Las clases pueden objetos son definidos en ejecucin. Las clases pueden
heredar propiedades de otras clases (herencia).
El acceso a los datos de un objeto tan slo se hace a
travs de sus mtodos (encapsulacin) Los mtodos travs de sus mtodos (encapsulacin). Los mtodos
con un mismo nombre pueden manejar distintos tipos de
objetos (polimorfismo), detectando el mtodo en tiempo
de ejecucin la operacin que debe realizar sobre el j p q
objeto (asociacin dinmica).
Ejemplos de este tipo de lenguajes son Smalltalk, C++,
Eiffel, Object Pascal y Turbo Pascal
SCRA TEORIA DE LENGUAJ ES
Forma de sus instrucciones: Lenguajes
imperativos o procedimentales imperativos o procedimentales
Son lenguajes orientados a instrucciones, es decir la
unidad de trabajo bsica de estos lenguajes es la j g j
instruccin o sentencia.
Ejemplos de lenguajes imperativos son: Pascal, C, C++,
Ada, FORTRAN, COBOL, Modula-2, Oberon, etc...
Histricamente son los primeros lenguajes: FORTRAN,
COBOL y ALGOL son los precursores y su influencia se
ha propagado hasta la actualidad
Este tipo de lenguajes se caracteriza por:
Uso intensivo de variables.
Estructura de programas basada en instrucciones. p g
Manejo frecuente de las instrucciones de asignacin.
Resolucin de algoritmos por medio de estructuras de
control secuenciales, alternativas y repetitivas.
SCRA TEORIA DE LENGUAJ ES
Incorporacin de mecanismos de manejo de bloques.
SCRA TEORIA DE LENGUAJ ES
Forma de sus instrucciones: Los lenguajes
d l ti declarativos
Son lenguajes de muy alto nivel cuya notacin es muy
prxima al problema real del algoritmo que resuelven. Hay prxima al problema real del algoritmo que resuelven. Hay
dos tipos de lenguajes declarativos: lenguajes funcionales y
lenguajes lgicos.
Los lenguajes funcionales o aplicativos tienen todas sus g j p
construcciones como llamadas a funciones matemticas.
Ejemplos de lenguajes funcionales: LISP,CLOS], Scheme,
APL, ML, Miranda, Hope, Haskell, Concurrent Clean,, etc...
Los lenguajes lgicos definen sus instrucciones siguiendo un Los lenguajes lgicos definen sus instrucciones siguiendo un
tipo de Lgica. El lenguaje de programacin lgica ms
utilizado es el PROLOG, que utiliza la lgica causal. La
programacin lgica maneja relaciones (predicados) entre p g g j (p )
objetos (datos). Las relaciones se especifican con reglas y
hechos. La ejecucin de programas lgicos consiste en la
demostracin de hechos sobre las relaciones por medio de
preguntas Ejemplos de lenguajes lgicos: PROLOG
SCRA TEORIA DE LENGUAJ ES
preguntas. Ejemplos de lenguajes lgicos: PROLOG,
Concurrent, PROLOG, Prolog++, GHC, Parlog, Vulcan, Polka.
Forma de sus instrucciones
Los lenguajes concurrentes
Son los que permiten la ejecucin simultnea ("paralela"
" t ") d d i t L i o "concurrente") de dos o varias tareas. La concurrencia
puede ser una caracterstica propia del lenguaje, o el
resultado de ampliar las instrucciones de un lenguaje no
concurrente Ejemplos: Ada Concurrent C Concurrent concurrente. Ejemplos: Ada, Concurrent C, Concurrent
Pascal, Concurrent Prolog, CSP, Argus, Actors, Linda,
Monitors, Ccc32 compilador de C concurrente para
Windows, etc... ,
Los lenguajes orientados a objetos (LOO). Actualmente
existen ms de 2.000 lenguajes de alto nivel diferentes,
de los cuales alrededor de un centenar son lenguajes
orientados a objetos o lenguajes basados en objetos.
Ejemplos: Smalltalk, C++, Object Pascal, Turbo Pascal,
Delphi, CLOS, Prolog++, J ava y Eiffel.
SCRA TEORIA DE LENGUAJ ES
SCRA TEORIA DE LENGUAJ ES
Por generaciones Por generaciones
La primera generacin est constituida por los
l j i bl d d ll d l lenguajes mquina y ensamblador desarrollados en los
aos cuarenta y cincuenta.
La segunda generacin comienza con el desarrollo del
i il d d FORTRAN l 1958 primer compilador de FORTRAN en el ao 1958 y
continua hasta mediados de los aos sesenta con la
normalizacin por el American National Standard
Institute (ANSI) de los lenguajes de programacin Institute (ANSI) de los lenguajes de programacin,
ligados hasta ese momento a marcas comerciales. Se
caracteriza por los lenguajes con asignacin esttica de
memoria, es decir toda la memoria se asigna en tiempo , g p
de compilacin. Estos lenguajes no tenan ni
recursividad, ni manejaban estructuras dinmicas de
datos. Ejemplos de estos lenguajes son FORTRAN y
COBOL
SCRA TEORIA DE LENGUAJ ES
COBOL.
La tercera generacin est ligada al trmino La tercera generacin est ligada al trmino
programacin estructurada, y se desarrolla entre
mediados de los aos sesenta y mediados de los aos
setenta, aunque a nivel de lenguajes sus races estn en setenta, aunque a nivel de lenguajes sus races estn en
el lenguaje Algol 60 (desarrollado a principios de los
aos sesenta). Como caractersticas principales de los
lenguajes de esta generacin son: uso de mdulos o
subprogramas, variables locales, recursividad, y
estructuras dinmicas. Ejemplos de estos lenguajes son:
Algol 60, PL/I, Algol 68, Pascal, Modula, y C.
L t i t t i d l j La cuarta generacin est caracterizada por lenguajes
de muy alto nivel dedicados a tareas especficas, en
muchos casos denominados herramientas. Gran parte
de ellos estn dedicados a la gestin de bases de datos de ellos estn dedicados a la gestin de bases de datos
y a la generacin de aplicaciones con herramientas
CASE. El desarrollo de estos lenguajes se produce
desde mediados de los aos setenta hasta finales de los
SCRA TEORIA DE LENGUAJ ES
ochenta. Ejemplos: SQL, DB2, DBASE, Ingress, Natural,
Ideal, Application Factory, etc...
La quinta generacin est asociada a los lenguajes de
Inteligencia Artificial La mayor parte de este tipo de Inteligencia Artificial. La mayor parte de este tipo de
lenguajes son versiones actualizadas o descendientes
de los lenguajes Lisp y Prolog. El desarrollo intenso de
estos lenguajes se produce desde principios de los aos g j p p p
ochenta a principios de los noventa. Ejemplos: Common
Lisp, Prolog, Parlog, ML, Haskell, Miranda, etc...
Generacin orientada a objetos. surge a mediados de
los aos ochenta, aunque el primer lenguaje orientado a
objetos fue el Simula 67. Smalltalk se comenz a
desarrollar a principios de los aos setenta,
desembocando en el Smalltalk 80 El desarrollo del desembocando en el Smalltalk 80. El desarrollo del
lenguaje Ada (basado en objetos, no orientado a
objetos) a finales de los 70 y la proliferacin de las
Interfaces Grficas de Usuario (IGU) a finales de los Interfaces Grficas de Usuario (IGU) a finales de los
ochenta ha implicado la creacin de nuevos lenguajes o
la ampliacin de lenguajes para introducir el paradigma
de orientacin a objetos. Ejemplos: Simula, Smalltalk,
C Obj t P l T b P l CLOS Obj tLi
SCRA TEORIA DE LENGUAJ ES
C++, Object Pascal, Turbo Pascal, CLOS, ObjectLisp,
Eiffel, y Oberon.
2 Sistemas Formales 2. Sistemas Formales
Consisten en un conjunto de palabras llamadas j p
axiomas y un conjunto finito de relaciones,
llamadas reglas de produccin o inferencias
Ej l d Si F l l T d Ejemplos de Sistemas Formales: la Teora de
conjuntos, el lgebra de Boole y la Forma
Normal de Backus Normal de Backus.
Son importantes para el diseo, la
implementacin y el estudio de los lenguajes de
programacin. Se utilizan en particular para
especificar la sintaxis y la semntica de los
lenguajes de programacin
SCRA TEORIA DE LENGUAJ ES
lenguajes de programacin.
3 Compiladores 3. Compiladores
Un lenguaje de programacin se implementa g j p g p
construyendo un traductor, el cual traduce
programas que estn en el lenguaje de
programacin en lenguaje de maquina que programacin en lenguaje de maquina que
pueden ser ejecutados directamente por una
computadora. p
SCRA TEORIA DE LENGUAJ ES

S-ar putea să vă placă și