UNIDAD 05:


UNIDAD 05: EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN ORIENTADA A OBJETOS.  





ESQUEMA:


CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN:


LENGUAJE DE BAJO NIVEL:

Lenguaje de maquina: 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 han 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 ventana del lenguaje maquina es su alta velocidad, debida a la  traducción 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 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: tiempo de desarrollo muy alto.
No portabilidad: un programa solo funciona solo por hardware para el que es hecho.
Lenguaje ensamblador: son una representación más entendible por el humano de los códigos del lenguaje maquina .Cada instrucción en lenguaje ensamblador representa una instrucción en el lenguaje maquina. El lenguaje ensamblador aparece asi a la par con el lenguaje maquina, esto debido a que los fabricantes de hardware diseñan sus chips ya en las instrucciones de un lenguaje de ensamblado.

Un ejemplo de una instrucción en lenguaje maquina y en lenguaje ensamblador.

Lenguaje Maquina
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 se hace es una ayuda un poco a que el código sea más legible. El lenguaje ensamblador adicionalmente necesita un traductor (Ensamblador) Copas de convertir dichos códigos del lenguaje maquina.
Ejemplo de ensamblador: TASM (Turbo Assembler de Borland), MASM (Microsoft Macro Assembler), NASM (NetWare Assembler –Libre).

Lenguaje de alto nivel: Son lenguajes más afines con el programador en los que una instrucción puede representar barias instrucciones en el lenguaje maquina. Incluye los lenguajes estructurados y no estructurados. Como ejemplo tenemos Basic, Pascal, C, APL, FORTRAN (Aplicaciones científicas), COBOL (para aplicaciones de procesamiento de datos), LISP Y PROLOG (Para inteligencia artificial), etc.

El lenguaje de alto nivel necesita de un traductor que puede ser interpretador o compilador. Los interpretadores o interpretes, necesita de un programa auxiliar que produce en tiempo real las instrucción al lenguaje maquina, por lo tanto, cada vez que un programa interpretado se ejecuta debe ejecutarse también su intérprete. Ejemplo del lenguaje interpretado. Basic, PROLOG, LISP, Entre otros.
Los lenguajes compilados son aquellos que necesitan de un compilador para la traducción de lenguaje maquina. La  traducción o compilación se hace solo una vez, y el resultado es un código objeto entendible por la maquina. Para ejecutar un  programa compilado no se necesita de un compilador. Ejemplo del lenguaje compilado: Pascal, c, frontran,  cobol, Modula,-2 (evolución del pascal), etc.

ALGUNAS CARACTERISTICAS 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 (IDEs – Entornos  de Desarrollo Integrados)  La compilación, depuración y ejecución se hacen más fácilmente.
*      Productividad aceptable: Son más productivos que los lenguajes de alto nivel.
*      Algunos permiten la portabilidad: Generalmente los interpretados.
Los lenguajes de programación orientada a objetos tratan a los programas  como con conjuntos de objetos que se ayudan entre ellos para realizar acciones. Entendiendo como objeto al entidades que contienen datos. Permitiendo que los programas sean más fáciles de escribir, mantener y reutilizar.
Los objetos tienen toda la información (atributos) que los diferentes de otros  permanecientes a otra clase. Por medio de unos métodos se comunican los objetos de una misma o diferente clase produciendo el cambio de estado de los objetos. Esto se hace que a los objetos se les trate como   unidades indivisibles en las que no se separan la información ni los métodos usados en su tratamiento.

Los lenguajes de operación orientadas a objetos son lenguajes dinámicos en los que estos objetos se pueden crear y modificar sobre la  marcha. Esta programación orientada a objetos (poo)   tomo auge a mediados de los años ochenta debido   a la propagación de las interfaces graficas de usuarios para lo que los lenguajes  de programación  orientados a objetos están especialmente dotados.

Los principales lenguajes de programación orientada son:
Ada, c++, c#, VB, NET, clarión, delphi, Eiffel,  java, léxico (en castellano), objetive –c, ocaml, oz, PHP, powerbuider, python, ruby y smalltalk.
No todos estos lenguajes de programación orientados  a objetos son específicamente orientados a objetos. Sino que alguno de ellos se le ha añadido extensiones orientadas a objetos.

TAXONOMÍA 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 Wagner , dicha clasificación se constituye de la siguiente forma.




Basados en objetos
Basado en clases
Orientación 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 orientada a objetos.

CARACTERÍSTICAS DE LOS LENGUAJES ORIENTADOS A OBJETOS:


Tres son las características  de un lenguaje orientado a objeto, es decir se considera  que un lenguaje está totalmente orientado a objetos si es capaz de proveer estas tres características.
Encapsulado
Herencia
Polimorfismo
Veamos una pequeña descripción de cada una de ellas y después las ampliaremos pera comprender mejor su significado y como puede ayudarnos a crear aplicaciones que provechen todas las posibilidades que nos da la POO.

ENCAPSULADO:
Es la cantidad de unificar los datos y la forma de manipulación de esta forma podemos  ocultar el funcionamiento de una clase y exponer solo los datos que manipula mediante propiedades  así como proveer  de medios para poder manipular dichos datos (mediante métodos ) de esta manera solo exponemos al mundo exterior la información y la forma de manipularla ocultando los detalles usados para manejar esos datos y lo que es más importante evitando que nadie manipule de una forma no controlada dicha información.

HERENCIA:
Es la cualidad de poder crear nuevas clases (o tipo) basadas en otras  clases de forma que la nueva clase obtenga todas las características de la clase que heredado tanto los datos que contienen como una forma de manipularlos pudiendo añadir nuevas características e incluso cambiar el comportamiento de algunas de las incluidas en la clase base.(siempre que así se haya previsto) mediante la herencia podemos  crear de forma fácil una jerarquía de clases que los comparten un mismo comportamiento básico pero que cada nueva generación pueda tener  (y  de hecho tiene)  un nuevo comportamiento.

POLIMORFISMO:
 Es la cualidad de implementar   de forma particular alguna de las características que tienen la clases, de forma que cuando necesitamos usarlas no nos preocupa la implementación interna que cada una tenga lo que realmente nos interesa o nos debe de importar es que podemos usar esas características e incluso podemos acceder a ellas de forma anónima.

0 comentarios:

Publicar un comentario