Está en la página 1de 17

30/03/2015 - Aula SA403 -

Lenguajes de Programacin
Ms. Ing Carlos Castillo Diestra

Programa
La unin de una secuencia de
instrucciones que un computador puede
interpretar y ejecutar y un conjunto de
estructuras de datos que almacenan la
informacin sobre la que la operan las
instrucciones

30/03/2015 - Aula SA403 -

Lenguaje de Programacin
Un lenguaje de programacin es una notacin para
escribir programas, a travs de los cuales podemos
comunicarnos con el Hardware y dar as las rdenes
adecuadas para la realizacin de un determinado
proceso.
Un lenguaje viene definido por una gramtica o
conjunto de reglas que se aplican a un alfabeto
constituido por el conjunto de smbolos utilizados.

Ejemplos de LP
Ejemplos:
Visual Basic
C/C++
JAVA
FORTRAN
LISP

30/03/2015 - Aula SA403 -

Atributos de un buen lenguaje

Claridad, sencillez y unidad (legibilidad): La sintaxis del lenguaje afecta la


facilidad con la que un programa se puede escribir, por a prueba, y ms tarde
entender y modificar.
Ortogonalidad: Capacidad para combinar varias caractersticas de un lenguaje en
todas las combinaciones posibles, de manera que todas ellas tengan significado.
Naturalidad para la aplicacin: La sintaxis del programa debe permitir que la
estructura del programa refleje la estructura lgica subyacente.
Apoyo para la abstraccin: Una parte importante de la tarea del programador es
proyectar las abstracciones adecuadas para la solucin del problema y luego
implementar esas abstracciones empleando las capacidades ms primitivas que
provee el lenguaje de programacin mismo.
Facilidad para verificar programas: La sencillez de la estructura semntica y
sintctica ayuda a simplificar la verificacin de programas.
Entorno de programacin: Facilita el trabajo con un lenguaje tcnicamente dbil
en comparacin con un lenguaje ms fuerte con poco apoyo externo.
Portabilidad de programas
Costo de uso:

1. Costo de ejecucin del programa.


2. Costo de traduccin de programas.
3. Costo de creacin, prueba y uso de programas.
4. Costo de mantenimiento de los programas: costo total del ciclo de vida.
5

Clasificacin de los LP
Los lenguajes de programacin se pueden clasificar
atendiendo a varios criterios, los principales son:
Segn el nivel de abstraccin
Segn la forma de ejecucin
Segn el paradigma de programacin

30/03/2015 - Aula SA403 -

Clasificacin de los LP
Segn el nivel de abstraccin
Lenguajes de mquina y de bajo nivel
Los lenguajes de mquina estn escritos en cdigos (cdigo
mquina) directamente inteligibles por la mquina
(computadora), siendo sus instrucciones cadenas binarias (0 y 1).

Lenguaje ensamblador
Usan abreviaturas

Lenguajes de alto nivel y de muy alto nivel


Los lenguajes de programacin de alto nivel se caracterizan por
expresar los algoritmos de una manera adecuada a la capacidad
cognitiva humana, en lugar de estar orientados a su ejecucin en
las mquinas.

Clasificacin de los LP
Segn el nivel de abstraccin

Alto nivel

Pascal
C++
C

Lenguaje ensamblador

Lenguaje mquina (Objeto) / Lenguaje de bajo nivel {0 / 1}

30/03/2015 - Aula SA403 -

Clasificacin de los LP
Segn la forma de ejecucin
Lenguajes compilados: Antes de poder utilizarse el
programa debe utilizarse un traductor llamado
compilador que se encarga de traducir (compilar) el programa
original (cdigo fuente) al programa equivalente escrito en
lenguaje de mquina
.
Lenguajes interpretados: Cada vez que se usa el programa
debe utilizarse un traductor llamado intrprete
que se encarga de convertir (interpretar) las instrucciones del
programa original (cdigo fuente) a cdigo mquina segn van
siendo utilizadas. Para el funcionamiento del programa siempre
es necesario disponer del cdigo original y del intrprete.

Clasificacin de los LP
Segn el paradigma de programacin
Un paradigma de programacin representa un enfoque particular o
filosofa para la construccin del software. Si bien puede seleccionarse la
forma pura de estos paradigmas a la hora de programar, en la prctica es
habitual que se mezclen, dando lugar a la programacin multiparadigma.
Los diferentes paradigmas de programacin son:

Algortmico, Imperativo o Por procedimientos. El ms


comn y est representado, por ejemplo, por C.
Describe la programacin en trminos del estado del programa y
sentencias que cambian dicho estado. Los programas imperativos son un
conjunto de instrucciones que le indican al computador cmo realizar una
tarea.
La implementacin de hardware de la mayora de computadores es
imperativa ya que el hardware est diseado para ejecutar cdigo de
mquina que es imperativo.

30/03/2015 - Aula SA403 -

Clasificacin de los LP
Segn el paradigma de programacin
Declarativo o Predicativo. Basado en la utilizacin de
predicados lgicos (lgico) o funciones matemticas
(funcional), su objetivo es conseguir lenguajes expresivos en los
que no sea necesario especificar cmo resolver el problema
(programacin convencional imperativa), sino qu problema se
desea resolver. Los interpretes de los lenguajes declarativos
tienen incorporado un motor de inferencia genrico que resuelve
los problemas a partir de su especificacin.

Lgico. Un ejemplo es PROLOG. El mecanismo de inferencia


genrico se basa en los procedimientos de deduccin de formulas vlidas
en un sistema axiomtico
Funcional. Representado por la familia de lenguajes LISP (en
particular Scheme), ML o Haskell.
El mecanismo de inferencia genrico se basa en la reduccin de una
expresin funcional a otra equivalente simplificada.

Clasificacin de los LP
Segn el paradigma de programacin
Orientado a Objetos. Cada vez ms utilizado, sobre
todo en combinacin con el imperativo.
De hecho los lenguajes orientados a objetos permiten la
programacin imperativa. Algunos ejemplos de lenguajes
orientados a objetos son C++, Java, Python. Usa objetos y
sus interacciones para disear aplicaciones y programas de
computadora. Est basado en varias tcnicas, incluyendo
herencia, modularidad, polimorfismo y encapsulamiento.

30/03/2015 - Aula SA403 -

Evolucin de los Lenguajes de Programacin


Primera Generacin ( 1954 1958)

FORTRAN 1
ALGOL 58

Datos Globales

FLOWMATIC

Un nivel de subprograma

IPL V

Evolucin de los Lenguajes de Programacin


Segunda Generacin: ( 1959 1961):

FORTRAN II
ALGOL 60

Datos Globales
Varios niveles de subprograma

Formas de pasar parmetros

COBOL

Estructuras de control

LISP

Programacin estructurada

30/03/2015 - Aula SA403 -

Evolucin de los Lenguajes de Programacin


Tercera Generacin ( 1962 1970)

PL/1
ALGOL 68
PASCAL

Mdulo
Compilacin separada
Datos Abstractos

SIMULA

Evolucin de los Lenguajes de Programacin


Lenguajes Orientados a Objetos ( 1970

SMALLTALK
C++

Orientado a datos

OBJECT PASCAL

Encapsulado

ADA
CLOS

Clases
Objetos

30/03/2015 - Aula SA403 -

Genealoga de los lenguajes de objetos segn Sebesta

Caractersticas de los LPOO


Puro vs hbrido
Los lenguajes puros fueron construidos desde sus
inicios como lenguajes Orientado a Objetos.
Los lenguajes hbridos son extensiones de lenguajes
prexistentes.

30/03/2015 - Aula SA403 -

Caractersticas de los LPOO


Compilado e Interpretado
Los programas escritos en lenguajes compilados se
convierten en programas de lenguaje mquina.
Los programas interpretados son ejecutados por una
mquina virtual.

Compilado

Interpretado

Caractersticas de los LPOO


Fuertemente tipado vs. Dbilmente tipado
Tipificacin o tipado: proceso una variable
Los lenguajes fuertemente tipados requieren que a
todas las variables les sea asignado un tipo de
variable.
Los dbilmente tipados permiten que las variables
tomen el tipo que convenga.

10

30/03/2015 - Aula SA403 -

Caractersticas de los LPOO


Liga esttica vs. Liga dinmica
La liga (binding) es el proceso en que se
determina el receptor de un mensaje. Puede
ser tan temprano como en tiempo de
compilacin ( Liga esttica) o tan tarde como
durante la ejecucin. ( Liga dinmica)

Caractersticas de los LPOO


Herencia simple vs. Herencia mltiple
La herencia simple implica que una clase slo
puede tener una superclase. En el caso de la
herencia mltiple una clase puede tener dos o
ms superclases y hereda todos los mtodos y
atributos de todas las superclases.

11

30/03/2015 - Aula SA403 -

Caractersticas de los LPOO


Lenguaje vs. Ambiente
Algunos lenguajes incluyen un extenso ambiente de
desarrollo mientras otros slo incluyen un compilador (o
intrprete).
El hecho de no contar con un ambiente integrado y
consistente puede ser compensado por la facilidad de
escoger un ambiente adecuado a las necesidades
especficas.

Perfiles de los Lenguajes de


Programacin Orientado a Objetos
Lenguaje C++
Puro
Compilado
Fuertemente Tipado
Liga Esttica
Herencia Simple
Lenguaje

Hibrido
Interpretado
Dbilmente Tipado
Liga Dinmica
Herencia Mltiple
Ambiente

12

30/03/2015 - Aula SA403 -

Perfiles de los Lenguajes de


Programacin Orientado a Objetos
Vendedores de C++
Microsoft
Borland
IBM
SYMANTEC
Photon
Watcom, etc

Perfiles de los Lenguajes de


Programacin Orientado a Objetos
Lenguaje Smalltalk
Puro
Compilado
Fuertemente Tipado
Liga Esttica
Herencia Simple
Lenguaje

Hibrido
Interpretado
Dbilmente Tipado
Liga Dinmica
Herencia Mltiple
Ambiente

13

30/03/2015 - Aula SA403 -

Perfiles de los Lenguajes de


Programacin Orientado a Objetos
Vendedores de Smalltalk
ParcPlace
Samlltalk 80
Digitalk
Smalltalk/V
IBM
Visualage

Taxonoma de los LPOO de Wegner

14

30/03/2015 - Aula SA403 -

Taxonoma de los LPOO de Wegner

Basado en Objetos
Su sintaxis y semntica soportan la creacin de objetos

Basado en clases
Es basado en objetos y soporta adems la creacin de clases

Orientacin a objetos
Es basado en clases y soporta la herencia

Criterios de Meyer en LPOO y basados en Objetos

15

30/03/2015 - Aula SA403 -

Ejercicio
Perfiles de los Lenguajes de Programacin
Orientado a Objetos
Lenguaje JAVA
Puro
Compilado
Fuertemente Tipado
Liga Esttica
Herencia Simple
Lenguaje

Hibrido
Interpretado
Dbilmente Tipado
Liga Dinmica
Herencia Mltiple
Ambiente

Perfiles de los Lenguajes de


Programacin Orientado a Objetos
Lenguaje JAVA
Puro
Compilado
Fuertemente Tipado
Liga Esttica
Herencia Simple
Lenguaje

Hibrido
Interpretado
Dbilmente Tipado
Liga Dinmica
Herencia Mltiple
Ambiente

16

30/03/2015 - Aula SA403 -

Perfiles de los Lenguajes de


Programacin Orientado a Objetos
Vendedores de JAVA

Se obtiene gratuitamente
de ORACLE (SUN
Microsystems)

17