if0010 m2aa1l1 lenguajes -...

9
IF0010_M2AA1L1_Lenguajes ©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato. 1 Lenguajes de programación por Iván Cruz A través de la historia, el hombre siempre ha buscado la manera de comunicarse con otros seres vivos, debido a ello se crearon diversas formas de comunicación, tales como el lenguaje oral, el lenguaje basado en señas, el sistema Braille, entre otros. El establecer un lenguaje común entre diversas personas ha permitido la colaboración, intercambio de ideas, intercambio de conocimiento y demás beneficios dentro de una sociedad. A continuación, en la Figura 1, se presenta un esquema de comunicación entre dos personas, las cuales utilizan un lenguaje como canal de comunicación en el que ambos pueden participar como emisor y receptor de mensajes de manera indistinta. Figura 1.Comunicación por medio de un lenguaje entre dos personas. (Microsoft, 2007). Por otra parte, para poder comunicarnos con una computadora, la cual, aunque no es un ser vivo, nos ayuda a realizar una infinidad de actividades relacionadas con el trabajo o con las relaciones humanas, utilizamos un determinado canal de comunicación, este canal es muchas veces conocido como lenguaje de computadora o de programación el cual es un conjunto predefinido de sentencias que utilizan una determinada sintaxis, para establecer una comunicación hombre-máquina. La Figura 2 presenta un esquema de comunicación entre el hombre y la computadora por medio de un lenguaje de programación. Figura 2. Esquema de interacción entre computadora y persona.

Upload: lydan

Post on 20-Sep-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

1

 

         Lenguajes  de  programación    

por Iván Cruz  

 A través de la historia, el hombre siempre ha buscado la manera de comunicarse con otros seres vivos, debido a ello se crearon diversas formas de comunicación, tales como el lenguaje oral, el lenguaje basado en señas, el sistema Braille, entre otros. El establecer un lenguaje común entre diversas personas ha permitido la colaboración, intercambio de ideas, intercambio de conocimiento y demás beneficios dentro de una sociedad. A continuación, en la Figura 1, se presenta un esquema de comunicación entre dos personas, las cuales utilizan un lenguaje como canal de comunicación en el que ambos pueden participar como emisor y receptor de mensajes de manera indistinta.

Figura 1.Comunicación por medio de un lenguaje entre dos personas. (Microsoft, 2007).

Por otra parte, para poder comunicarnos con una computadora, la cual, aunque no es un ser vivo, nos ayuda a realizar una infinidad de actividades relacionadas con el trabajo o con las relaciones humanas, utilizamos un determinado canal de comunicación, este canal es muchas veces conocido como lenguaje de computadora o de programación el cual es un conjunto predefinido de sentencias que utilizan una determinada sintaxis, para establecer una comunicación hombre-máquina. La Figura 2 presenta un esquema de comunicación entre el hombre y la computadora por medio de un lenguaje de programación.

Figura 2. Esquema de interacción entre computadora y persona.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

2

Desde la aparición de los lenguajes de programación, el hombre ha buscado la manera de que la comunicación hombre-máquina sea lo más fácil posible. Por lo tanto, han aparecido infinidad de estos lenguajes y continúan apareciendo cada vez más, siempre en busca de que esta comunicación sea lo más parecida a la que utilizamos en nuestra vida cotidiana. A continuación se presenta como ha sido esta evolución de los lenguajes de programación desde hace ya más de medio siglo. Evolución  de  los  lenguajes  de  programación  

Desde los años 40, la evolución de los lenguajes de programación ha quedado de manifiesto. En la Figura 3, se presenta un esquema de esta evolución, el cual clasifica estos lenguajes en dos grandes grupos, los de bajo y alto nivel, a su vez se divide cada uno de ellos en diferentes metodologías para resolver un problema y finalmente cada metodología muestra un fragmento del lenguaje que la representa.

Figura 3. Evolución de los lenguajes de programación.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

3

El primer lenguaje de programación utilizado fue el lenguaje máquina, debido a que es el único lenguaje, aún actualmente, que puede ser utilizado por una computadora, todos los lenguajes de programación posteriores a éste, tienen que ser traducidos a lenguaje máquina para que la computadora pueda efectuar la operación indicada, por lo tanto este lenguaje es el más rápido en ejecución, pero a su vez es el más difícil de utilizar para los programadores. A continuación se describen las diferentes metodologías que los lenguajes de programación utilizan para resolver un problema, así como ejemplos de la sintaxis que utilizan cada uno de ellos. Lenguaje  máquina  

Este lenguaje de programación pertenece a la familia de los lenguajes de bajo nivel, debido a que son dependientes del diseño y estructura operacional (arquitectura) de la máquina, lo que significa que el mismo código que escriba un programador en una máquina puede que no se ejecute en otra. En la Figura 4 se presenta un ejemplo de un programa en código máquina.

Figura 4. Ejemplo de código binario o máquina. Este lenguaje únicamente está conformado por cadenas de bits de 0 y 1, lo cual los convierte en un gran problema en cuanto a búsqueda de errores, mantenimiento, depuración, entre otros aspectos. Debido a ello, se buscó la manera de hacer más efectivo el desarrollo de programas usando este lenguaje, dando paso con ello a la creación de lenguajes que hacían recordar más fácilmente las operaciones y así facilitar el trabajo de los programadores, estos lenguajes fueron denominados mnemotécnicos, los cuales son secuencias de números o datos que pueden ser identificados por una palabra específica.  Lenguaje  con  mnemotécnicos  

A este lenguaje también se le conoce como simbólico o ensamblador y fue el sucesor del lenguaje máquina. Este lenguaje utiliza sentencias con una secuencia lógica, además utiliza un programa llamado ensamblador (es por ello que toma su nombre), el cual traduce de lenguaje ensamblador a lenguaje máquina, como se muestra en la Figura 5.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

4

Figura 5. Ejemplo de traducción de lenguaje ensamblador. Este lenguaje brindó una mejor experiencia para los programadores, pero aún existía mucho trabajo por realizar, así que os esfuerzos por lograr lenguajes de programación más amigables para los programadores continuaron y en los años 60 se desarrollaron los primeros lenguajes de alto nivel. Con la aparición de los lenguajes de alto nivel se mejoró la amigabilidad entre la máquina y el programador, debido a que estos lenguajes son más parecidos en algunos aspectos al lenguaje convencional utilizado entre personas, pero a su vez mantienen un lazo muy fuerte con el lenguaje simbólico, debido a que ambos requieren un paso intermedio que traduzca el código fuente de estos lenguajes a código máquina, este proceso es llamado compilación para los lenguajes de alto nivel. Lenguaje  imperativo  

Estos lenguajes forman parte de la familia de los lenguajes de alto nivel, debido a que son independientes de la arquitectura de la máquina. Recibieron el nombre de lenguajes imperativos ya que cada instrucción escrita por el programador tiene una función o tarea especifica a ser realizada por la computadora. Los lenguajes de programación que han popularizado a esta metodología son Fortran, Cobol, Pascal, C, entre otros. A continuación, en la Figura 6 se presenta un ejemplo de un código fuente escrito en lenguaje C, el cual le suma el IVA del 16 % a una determinada cantidad.

Figura 6. Ejemplo de código fuente en lenguaje C.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

5

Como se puede apreciar los lenguajes imperativos superan en legibilidad a los lenguajes de bajo nivel, por lo tanto son mas fáciles de mantener y menos proclives a errores. Otro tipo de lenguajes también pertenecientes a los de alto nivel son los funcionales, los cuales se presentan a continuación. Lenguaje  funcional  

El lenguaje de programación funcional más destacado es LISP, el cual fue diseñado en los 60 en el MIT (Massachusetts Institute of Technology). Este lenguaje hace un uso extensivo de la recursividad, lo que permite que el código sea más claro y con una escritura matemática formal, además este lenguaje tiene como una de sus grandes ventajas el crear funciones nuevas a partir de las ya integradas en él, por lo que lo ha hecho un lenguaje ampliamente utilizado en el área de la inteligencia artificial. En la Figura 7 se presenta un simple código fuente escrito en LISP que despliega un comentario hacia el usuario.

Figura 7. Ejemplo de código fuente en lenguaje LISP. Otra metodología de los lenguajes de alto nivel es la de los lógicos, el cual utiliza cálculo de predicados como se presenta a continuación. Lenguaje  lógico  

El lenguaje de programación lógico más popular es Prolog (programación en lógica), el cual se basa en una lógica formal declarativa, utilizando siempre un razonamiento estrictamente lógico, en la Figura 8 se presenta un fragmento de un código en el cual se le realiza una pregunta y el intérprete es capaz de responder a ésta.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

6

Figura 8. Ejemplo de interacción con Prolog. Este tipo de lenguaje da la sensación de tener una plática formal con la máquina, debido a que al ingresar la sentencia ?- 30 is 5*6 el lenguaje está preparado para responder en su caso Yes o No a la declaración formal del programador, pero claro debemos recordar que sólo puede resolver algunas preguntas aritméticas, ya que para eso fue creado. Lenguaje  orientado  a  objetos  

Los lenguajes orientados a objetos utilizan una metodología en la cual todo es un objeto (ente del mundo real), y su paradigma es muy distinto a los anteriores. Este tipo de lenguajes utiliza algunos principios como son:

Clase: Es una abstracción de objetos del mundo real que contiene datos, además de un conjunto de funciones para su manipulación. Objeto: Es la instancia de una clase. Encapsulamiento: Busca que los datos o variables no sean visibles para cualquier clase y define algunos accesos en base a su tipo como pueden ser privado, público y protegido. Herencia: Es la propiedad que permite a las clases reutilizar el código creado en otras evitando realizar duplicaciones o esfuerzo innecesario, por ejemplo si tenemos la clase padre podemos heredar a la clase hijo el atributo apellido, entre otros elementos. Polimorfismo: Es la capacidad de los objetos de diferentes clases de poder ser invocados con el mismo nombre pero con distintos parámetros.

A continuación se presenta en la Figura 9 un ejemplo de código fuente en el lenguaje de programación Java.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

7

Figura 9. Ejemplo de código en lenguaje Java.

Finalmente tenemos los lenguajes de programación que no tienen una metodología bien definida, ya sea por ser multiparadigmas o simplemente no se les ha clasificado. Lenguaje  sin  categoría  definida  

Este tipo de lenguajes generalmente se deben a dos circunstancias, una de ellas es que pertenezcan a más de un paradigma a la vez como es el caso del lenguaje de programación Python, o en su caso por ser de carácter específico para una tareas como es el caso de los lenguajes como HTML, LaTex, entre otros. Un ejemplo de lenguajes multiparadigmas es el que se muestra a continuación en la Figura 10, en donde muestra una interacción a modo consola con Python para realizar simples operaciones de cálculo numérico. La consola es el medio interactivo de programación que se utiliza para realizar algunos cálculo no muy extensos, además de utilizarse para ejecutar los archivos creados con extensión .py, como por ejemplo escribir en la consola python archivo.py, lo cual ejecutará el archivo.py para ser utilizado por el usuario de una computadora.

Figura10. Interacción con la consola de Python realizando cálculos numéricos.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

8

Dentro de los lenguajes de carácter específico para determinadas tareas, se presenta la Figura 11 mostrando fragmentos de código escrito en los lenguajes de programación HTML y LaTex.

Figura 11. Fragmentos de código en los lenguajes HTML y LaTex. Los fragmentos de código de la Figura 11 muestran como estos lenguajes son explícitamente utilizados solo para lo que fueron creados, es decir, que tienen un propósito en específico, ya sea el de crear una página web rápidamente o el de crear textos de índole científica o de divulgación masiva como libros o revistas a diferencia de los lenguajes que revisamos previamente los cuales permiten crear prácticamente cualquier tipo de desarrollo en tecnologías de información. Conclusión

A lo largo de esta lectura se logró ver de manera simplificada como el hombre ha realizado la evolución de los lenguajes de programación, siempre en busca de lograr una mejor interacción con las computadoras. Actualmente se están desarrollando algunos lenguajes de programación que permiten en muy poca medida la interacción hombre-máquina por medio de un idioma como el inglés, a los cuales muchos denominan como lenguajes naturales, pero aún están en fase de análisis y desarrollo por lo cual, no son viables en la actualidad.

 IF0010_M2AA1L1_Lenguajes

 

©UVEG. Derechos reservados. Esta obra no puede ser reproducida, modificada, distribuida, ni transmitida, parcial o totalmente, mediante cualquier medio, método o sistema impreso, electrónico, magnético, incluyendo el fotocopiado, la fotografía, la grabación o un sistema de recuperación de la información, sin la autorización por escrito de la Universidad Virtual del Estado de Guanajuato.

 

9

Referencias  

Deitel, M. (2004). Cómo programar en C/C++ y Java. México: Pearson Educación. [Versión electrónica].Recuperado el 29 de julio de 2010, de la base de datos de Bibliotechnia. Recurso de la Biblioteca Digital de la UVEG. Deitel, M. (2004). Cómo programar en Java. México: Pearson Educación. [Versión electrónica]. Recuperado el 29 de julio de 2010, de la base de datos de Bibliotechnia. Recurso de la Biblioteca Digital de la UVEG. Langsam, Y. (1997). Estructuras de datos con C y C++. México: Prentice Hall. [Versión electrónica].Recuperado el 29 de julio de 2010, de la base de datos de Bibliotechnia. Recurso de la Biblioteca Digital de la UVEG. Forouzan, B. (2003) Introducción a la ciencia de la computación (L. Peralta, Trad.). México: Thompson. Sedgewick, R. (2000). Algoritmos en C++. México: Pearson Educación. [Versión electrónica]. Recuperado el 29 de julio de 2010, de la base de datos de Bibliotechnia. Recurso de la Biblioteca Digital de la UVEG.