Está en la página 1de 9

Estudiar los conceptos bsicos, clasificacin, diferencias, propiedades y funcionamiento de los lenguajes de programacin es elemental para cualquier estudiante

o profesional dedicado a la computacin, pues de esa manera se logra tener una perspectiva global y mucho ms amplia que tendr mucho peso al estar bien documentados y al conocer qu son, cmo se clasifican y de qu manera trabajan los lenguajes de programacin. Este estudio tambin permite desarrollar un sentido crtico de los lenguajes de programacin, de forma que el programador no seleccione ni emita un juicio respecto a determinado lenguaje basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto lenguaje, sino que el programador est capacitado para dar razones contundentes y certeras del por qu un lenguaje es mejor que otro para determinada tarea, qu ventajas tiene uno respecto del otro, y que as tambin el programador sea capaz de seleccionar el lenguaje que ms le convenga para la resolucin de un problema determinado. Esta investigacin servir para evaluar correctamente los lenguajes de programacin, determinando las ventajas y desventajas que cada uno de ellos presenta.

Un lenguaje de programacin es un conjunto limitado de palabras y de smbolos que representan procedimientos, clculos, decisiones y otras operaciones que pueden ejecutar una computadora. A pesar de que en este trabajo parte de la divisin de lenguajes de programacin en imperativos y declarativos (los cuales a su vez se dividen en numerosos subgrupos), la clasificacin ms comn y bsica que suele hacerse de los lenguajes de programacin es la que los divide en lenguajes de bajo y de alto nivel. Los lenguajes de programacin de bajo nivel fueron los primeros que surgieron y se llaman as porque estn directamente relacionados con el hardware del computador, es decir, el usuario introduce una serie de cdigos numricos que la mquina va a interpretar como instrucciones. Para usar este lenguaje, el programador tena que conocer el funcionamiento de la mquina al ms bajo nivel y los errores de programacin eran muy frecuentes. Los lenguajes de alto nivel surgieron con posterioridad con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inici como un "simple" esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por consiguiente al lenguaje de mquina, facilitando la labor a los programadores. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: facilitar la vida al programador, aumentando la productividad. Estos lenguajes usan un nmero reducido de instrucciones (normalmente en ingls) que siguen unas estrictas reglas gramaticales que se conocen como sintaxis del lenguaje. Pero aunque el programador de esta forma se distancie del hardware del computador, este sigue trabajando en lenguaje mquina. Por ello se hace necesaria una traduccin a una secuencia de instrucciones interpretables por el computador. Esta labor es llevada a cabo por los compiladores y los intrpretes. El compilador es un programa que se encarga de la traduccin global del programa realizado por el usuario. Esta operacin recibe el nombre de compilacin. El programa es traducido completamente antes de que se ejecute, por lo que la ejecucin se realiza en un periodo muy breve. El intrprete por el contrario lleva a cabo una traduccin inmediata en el momento de la ejecucin, es decir, ir ejecutando las instrucciones una a una haciendo que el proceso requiera un periodo de tiempo sensiblemente mayor del que necesitara un compilador. Los intrpretes son usados para traducir programas de alta dificultad de implementacin, en estos casos, las rdenes a traducir son de tal complejidad que no merece la pena crear un compilador ya que este tambin tendra que ser de una complejidad por encima de lo normal.

Lenguajes orientados a objetos y orientados a eventos. Diferencias 7. LENGUAJES DE PROGRAMACIN ORIENTADOS A OBJETOS En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) se definen los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas mdulos ms fciles de escribir, mantener y reutilizar. De esta forma, un objeto contiene toda la informacin, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos) que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) informacin (datos) y procesamiento (mtodos). Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que ambos conceptos estn ntimamente entrelazados), el programador debe pensar indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor importancia a los atributos a favor de los mtodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hbito errneo de crear clases contenedoras de informacin por un lado y clases con mtodos que manejen esa informacin por otro (llegando a una programacin estructurada camuflada en un lenguaje de programacin orientada a objetos). Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos y los procedimientos estn separados y sin relacin, ya que lo nico que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programacin estructurada anima al programador a pensar sobre todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y despus les pasan los datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo que realicen esos mtodos por s mismos. Un objeto se puede definir como un grupo de procedimientos que comparten un estado. Se define al conjunto de datos como "estado", y "mtodos" como el conjunto de procedimientos que pueden alterar ese estado. Un programa orientado a objetos es un mtodo de implementacin en el que los programas estn organizados como colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas las clases son miembros de una jerarqua de clases conectadas por relaciones de herencia. Este

tipo de lenguajes son muy recientes en comparacin a los primeros lenguajes de programacin que aparecieron. 7.1. CONCEPTOS BSICOS DE LA PROGRAMACIN ORIENTADA A OBJETOS La programacin orientada a objetos es una nueva forma de programar que trata de encontrar la solucin a problemas de una forma que ofrece muchas ventajas y facilidades que no se tenan anteriormente. Introduce nuevos conceptos, que superan y amplan conceptos antiguos ya conocidos. Entro ellos destacan los siguientes:

OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad ("mtodos"). Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). CLASE: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ellas. Una clase es una coleccin de objetos similares o la implementacin, declaracin o definicin de un tipo de objeto. Cada vez que se construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener Form1, Form2, etc. As se est creando una instancia de la clase Form. MTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio en lar propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje para otro objeto del sistema. EVENTO: un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. MENSAJE: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener. PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor puede ser alterado por la ejecucin de algn mtodo. ESTADO INTERNO: es una propiedad invisible de los objetos, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).

En comparacin con un lenguaje imperativo, una "variable no es ms que un contenedor interno del atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del objeto.

CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS Las caractersticas ms importantes de la programacin orientada a objetos son las siguientes:

ABSTRACCIN: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una variedad de tcnicas son requeridas para ampliar una abstraccin.

ENCAPSULAMIENTO: tambin llamado "ocultacin de la informacin". Cada objeto est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos. Esta caracterstica o propiedad permite por tanto ejecutar la informacin al resto de los objetos, impidiendo as accesos incorrectos o conflictos.

POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Por ejemplo en Visual Basic, el polimorfismo se da al tener diferentes tipos de objetos (Form, Label, etc.)

HERENCIA: las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto pertenece a ms de una clase se dice que hay herencia mltiple; esta caracterstica no est soportada por algunos lenguajes (como Java). Con esta propiedad, los objetos heredan comportamientos dentro de una jerarqua de clases.

En la programacin orientada a objetos (Object-Oriented Programming u OOP) las partes que componen tu programa son "abstracciones" de objetos del mundo real. Por ejemplo en un sistema bancario tienes tres objetos: - Usuario - Cuenta - ATM Y cada uno tiene sus propios atributos y mtodos. En el caso de "Usuario" sus atributos seran por ejemplo nombre, direccin o edad y sus mtodos seran darDeAlta(), cambiarEdad(), obtenerDireccion(), etctera. Adicionalmente se pueden dar relaciones entre estos objetos para que tu programa haga lo que tiene que hacer. Por ejemplo, le puedes pedir a un usuario que cree una nueva cuenta, generando un nuevo objeto del tipo "Cuenta":

PROGRAMACIN DIRIGIDA POR EVENTOS


La programacin dirigida por eventos es un paradigma de programacin en el que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. Los lenguajes visuales orientados al evento y con manejo de

componentes dan al usuario que no cuenta con mucha experiencia en desarrollo, la posibilidad de construir sus propias aplicaciones utilizando interfaces grficas sobre la base de ocurrencia de eventos. Para entender la programacin dirigida por eventos, podemos oponerla a lo que no es: mientras en la programacin secuencial (o estructurada) es el programador el que define cul va a ser el flujo del programa, en la programacin dirigida por eventos ser el propio usuario o lo que sea que est accionando el programa el que dirija el flujo del programa. Aunque en la programacin secuencial puede haber intervencin de un agente externo al programa, estas intervenciones ocurrirn cuando el programador lo haya determinado, y no en cualquier momento como puede ser en el caso de la programacin dirigida por eventos. El creador de un programa dirigido por eventos debe definir los eventos que manejarn su programa y las acciones que se realizarn al producirse cada uno de ellos, lo que se conoce como el administrador de evento. Los eventos soportados estarn determinados por el lenguaje de programacin utilizado, por el sistema operativo e incluso por eventos creados por el mismo programador. En la programacin dirigida por eventos, al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar bloqueado hasta que se produzca algn evento. Cuando alguno de los eventos esperados por el programa tenga lugar, el programa pasar a ejecutar el cdigo del correspondiente administrador de evento. Por ejemplo, si el evento consiste en que el usuario ha hecho click en el botn de play de un reproductor de pelculas, se ejecutar el cdigo del administrador de evento, que ser el que haga que la pelcula se muestre por pantalla. Un ejemplo claro lo tenemos en los sistemas de programacin Lexico y Visual Basic, en los que a cada elemento del programa (objetos, controles, etctera) se le asignan una serie de eventos que generar dicho elemento, como la pulsacin de un botn del ratn sobre l o el redibujado del control. La programacin dirigida por eventos es la base de lo que llamamos interfaz de usuario, aunque puede emplearse tambin para desarrollar interfaces entre componentes de Software o mdulos del ncleo. En los primeros tiempos de la computacin, los programas eran secuenciales, tambin llamados Batch. Un programa secuencial arranca, lee parmetros de entrada, procesa estos parmetros, y produce un resultado, todo de manera lineal y sin intervencin del usuario mientras se ejecuta.

Con la aparicin y popularizacin de los PC, el software empez a ser demandado para usos alejados de los clsicos acadmicos y empresariales para los cuales era necesitado hasta entonces, y qued patente que el paradigma clsico de programacin no poda responder a las nuevas necesidades de interaccin con el usuario que surgieron a raz de este hecho... Por otro lado, la programacin orientada a eventos (Event-Oriented Programming) es un modelo de diseo donde creas componentes y donde dependiendo de las acciones (o mtodos) que ejecutes sobre ellos, stos realicen algo, incluyendo llamadas a otros componentes. El ejemplo ms conocido es el del botn:

Notamos que en el evento Click del control Command1 va la siguiente fraccin de cdigo: Private Sub Command1_Click() Msg = MsgBox("Este es un mensaje de advertencia", vbCritical, "Atencion") End Sub

ALGUNOS LENGUAJES ORIENTADOS A OBJETOS Entre los lenguajes orientados a objetos ms importantes que se pueden mencionar, aparecen los siguientes:

Ada C++ C# VB.NET Clarion Delphi Eiffel Java Objective-C Ocaml Oz PHP PowerBuilder Pitn Ruby Smalltalk Lenguajes de bajo nivel Cdigo mquina Ensamblador Lenguajes de medio nivel BCPL C Lenguajes de alto nivel ADA ALGOL BASIC Clipper Cobol C++ FORTH Fortran Haskell Informix 4gl Java Lexico (con cdigos en castellano o sinnimos en otros idiomas) Lisp Logo Modula PASCAL Prolog RPG Visual Basic

También podría gustarte