UNIDAD 5

“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.
·       LENGUAJE MÁQUINA


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