“EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN ORIENTADA A OBJETOS”
Bajo
Nivel:
- Máquina
- Ensamblador
Alto
Nivel:
- Estructurados
- No estructurados
Orientados
a objetos:
- Herencia
- Encapsulamiento
- Polimorfismo
5.1 CLASIFICACIÓN
Lenguajes de bajo nivel.
Es el lenguaje que entiende el procesador y está basado en el sistema binario. Está formado por un conjunto de instrucciones o códigos que pueden ser interpretados directamente por el procesador. El lenguaje maquina varía dependiendo del hardware y evoluciona con cada versión del CHIP. Cuando se habla del lenguaje maquina en el IBM PC y compatibles, se habla principalmente de la familia de procesadores Intel 80xX y de su evolución hasta el actual Core.
En cada versión del CHIP Intel
se ha agregado nuevas funcionalidades, pero Intel siempre ha tratado de
mantener la compatibilidad con las versiones anteriores, por lo que se habla de
que un programa es compatible con la familia x86.
La principal ventaja del
lenguaje máquina es su alta velocidad, debida al traducido inmediata de los códigos
binarios. Entre sus muchas debilidades encontramos:
·
Codificación
compleja: El programador debe entender el significado de los unos y
ceros y tener tablas de instrucciones y variables. En los procesadores actuales
de 64bits, por ejemplo, una instrucción tiene 64 unos y ceros, lo cual es muy difícil
de controlar.
·
Errores
en la codificación y depuración compleja: debido a la
complejidad de los códigos.
·
Productividad
mínima: tiempos de desarrollo muy altos.
·
No
portabilidad: un programa solo funciona sobre el hardware para
el que es hecho.
·
LENGUAJE
ENSAMBLADOR
Son una presentación más
entendible para el humano de los códigos del lenguaje máquina. Cada instrucción
en lenguaje ensamblador representa una instrucción en el lenguaje máquina. El lenguaje
ensamblador aparece casi a la par con el lenguaje máquina, esto debido a que
los fabricantes del hardware diseñan sus Chips pensando ya en las instrucciones
de un lenguaje de ensamblado.
Ejemplo:
LENGUAJE MÁQUINA
|
LENGUAJE ENSAMBLADOR
|
0010111000000001
0000000000001010
|
Mov ax,10
|
A pesar de que el lenguaje ensamblador
es más fácil de entender por las personas sigue teniendo las desventajas del
lenguaje de máquina. Realmente lo que hace es ayudar un poco a que el código sea
más legible. El lenguaje ensamblador necesita un traductor capaz de convertir
dichos códigos en lenguaje máquina.
·
LENGUAJES
DE ALTO NIVEL
Son lenguajes más afines con
el programador en los que una instrucción puede representar varias
instrucciones en lenguaje máquina. Incluyen los lenguajes estructurados y no
estructurados. Como ejemplos tenemos: Basic, Pascal, C, APL, FORTRAN, COBOL,
LISP, y PROLOG.
Los lenguajes de alto nivel
necesitan de un traductor que pueda ser interpretador o compilador. Los interpretadores
o intérpretes, necesitan de un programa auxiliar que traduce en tiempo real las
instrucciones al lenguaje máquina, por lo tanto, cada vez que un programa
interpretado se ejecuta debe ejecutarse también su interprete. Ejemplos de
lenguajes interpretados: Basic, PROLOG, LISP, entre otros.
Los lenguajes compilados son
aquellos que necesitan de un compilador para la traducción al lenguaje máquina.
La traducción o compilación se hace solo un vez, y el resultado es u código objeto
entendible por la máquina. Pera ejecutar un programa compilado no se necesita
de su compilador. Ejemplos de lenguajes compilados: Pascal, C, Fortran, Cobol,
Modula.2, etc.
Algunas
características de los lenguajes de alto nivel:
·
Depuración
más sencilla: Debido a que el código es más legible, la depuración
también se hace más fácil. Con la ayuda editores la compilación, depuración y ejecución
se hacen más fáciles.
·
Productividad
aceptable: Son más productivos que los lenguajes de alto nivel.
·
Algunos
permiten la portabilidad: Generalmente los interpretados.
5.2 TAXONOMIA DE LOS LENGUAJES ORIENTADOS A OBJETOS
Una clasificación para los
lenguajes de programación con respecto a la orientación a objetos fue creada
por Wegner, dicha clasificación se constituye de la siguiente forma:
BASADOS
EN OBJETOS
|
BASADOS
EN CLASES
|
ORIENTADO
A OBJETOS
|
Si
la sintaxis y semántica de lenguaje soportan las características de objetos
que hemos mencionado.
|
Si
un lenguaje está basado en objetos y además soporta clases, se dice que está
basado en clases.
|
Si
un lenguaje de programación soporta objetos, clases y además permite la jerarquía
de dichas clases, entonces se dice que es un lenguaje de programación orientado
a objetos.
|
5.3 CARACTERISTICAS DE LOS LENGUAJES ORIENTADOS A OBJETOS
Tres son las principales características
de un lenguaje orientado a objetos, es decir, se considera que un lenguaje está
totalmente orientado a objetos si es capaz de proveer estas tres características:
·
Encapsulamiento
·
Herencia
·
Polimorfismo
·
LA
ENCAPSULACIÓN: Es la cualidad de unificar los datos y la forma
de manipularlos, de esta forma podemos ocultar el funcionamiento de una clase y
exponer solo los datos que manipula así como proveer de medios para poder
manipular dichos Datos. De esta forma solo exponemos al mundo exterior la información
y la forma de manipularla, ocultando los detalles usados para manejar los
datos, y lo que es más importante evitando que nadie manipule de una forma no
controlada dicha información.
·
LA
HERENCIA: Es la cualidad de poder crear nuevas clases o tipos basadas
en otras clases, de forma que la nueva clase obtenga todas las características de
la clase que ha heredado, tanto los datos que contiene como la forma de
manipularlos, pudiendo añadir nuevas características e incluso cambiar el
comportamiento de alguna de las incluidas en la clase base. Mediante la
herencia podemos crear de forma fácil una jerarquía de clases que comparten un mismo
comportamiento básico pero que cada nueva generación puede tener.
·
EL
POLIMORFISMO: Es la cualidad de implementar de forma
particular algunas de las características que tienen las clases, de forma que
cuando necesitemos usarlas no nos preocupe la implementación interna que cada
una tenga, lo que realmente nos interesa o nos debe importar es que podemos
usar esas características e incluso podamos acceder ellas de forma anónima.

No hay comentarios:
Publicar un comentario