Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Los lenguajes de programación Por Antonio Torres Herivia Universidad Veracruzana Facultad de Ingeniería Eléctrica y Electrónica Programa educativo: Ingeniería Mecatrónica Los lenguajes de programación Autor: Antonio Torres Herivia Catedrático(a): Dr. Carlos Arturo Cerón Álvarez Experiencia Educativa: Algoritmos Computacionales y Programación (51945) 17 de julio de 2020 3 Los lenguajes de programación | Antonio T. Herivia Índice Introducción ..........................................................................................................5 Historia de los lenguajes de programación ........................................................6 El primer lenguaje de programación ....................................................................6 La máquina de Baddge y Ada Lovelance .............................................................7 La máquina de Turing ..........................................................................................7 Lenguajes de programación como los conocemos hoy ........................................8 FORTRAN ........................................................................................................8 COBOL .............................................................................................................9 BASIC ............................................................................................................10 LOGO .............................................................................................................11 Lenguaje C .....................................................................................................12 PASCAL .........................................................................................................13 PROLOG ........................................................................................................14 ADA ................................................................................................................15 PYTHON ........................................................................................................16 JAVA ..............................................................................................................17 Línea del tiempo de los lenguajes de programación ..........................................18 Paradigmas de programación ............................................................................19 Paradigma imperativo ........................................................................................20 Estructurado ...................................................................................................20 Modular ..........................................................................................................21 Paradigma declarativo .......................................................................................22 Paradigma orientado a objetos ..........................................................................23 4 Los lenguajes de programación | Antonio T. Herivia Clasificación de los lenguajes de programación ..............................................24 Según su nivel de abstracción ...........................................................................24 Lenguaje máquina ..........................................................................................25 Lenguaje de bajo nivel ....................................................................................26 Lenguaje de medio nivel .................................................................................26 Lenguaje de alto nivel .....................................................................................27 Según su ejecución............................................................................................27 Lenguajes compilados ....................................................................................27 Lenguajes interpretados .................................................................................27 Diferencias entre los lenguajes compilados e interpretados ...........................28 Conclusiones ......................................................................................................29 Bibliografía ..........................................................................................................30 5 Los lenguajes de programación | Antonio T. Herivia Introducción Los lenguajes de programación son la base de las tecnologías modernas, ya se hable de comunicaciones, aparatos electrónicos entre otras cosas, la tecnología moderna desde la creación de los microprocesadores y microcontroladores, aunado a la creación de los computadores, han sido la base no solo para entenderlos y controlarlos sino para crear la aplicaciones o programas como procesadores de texto o datos, y demás programas con aplicaciones científicas, financieras o militares. El siguiente documento tiene como finalidad introducir un poco de historia de los lenguajes de programación mas destacados, mencionando algunas de sus características. También que y cuales son los paradigmas de programación. Y por último pero no menos importante los tipos de leguaje de programación, veremos todos los niveles así como los tipos de lenguaje interpretativos y compilados. Todo esto con el fin de comprender con mas claridad como se estructuran los algoritmos y diversos programas los cuales debemos ocupar para las distintas tareas que la ingeniería o actividad afín nos proponga para la solución de problemas o desarrollo de nuevas herramientas y conocimiento. 6 Los lenguajes de programación | Antonio T. Herivia Historia de los lenguajes de programación La programación ha tomado un puesto importante en la vida moderna, todos los disipativos eléctricos o electrónicos, industriales o domésticos, además de las comunicaciones, dependen de componentes programables, además las aplicaciones que permiten el enviar y recibir mensajes de manera instantánea también son programadas, las redes sociales, programas computacionales, en fin, prácticamente toda la vida activa y tecnológica tiene como uno de sus pilares la programación. Y conseguir hacer dichos procesos o alcanzar estas tecnologías fueron el resultado de investigación y desarrollo exhaustivas por parte de personas de todo el mundo. La programación como tal tuvo sus inicios alrededor de 1950 pero desde mucho antes se tenia el concepto de código y algoritmo, tiempo después los lenguajes fueron evolucionando con base a las necesidades técnicas hasta lo que conocemos ahora a continuación se presenta una breve historia sobre la evolución de los lenguajes de programación. El primer lenguaje de programación nació en 1801 Joseph Marie Jacquard fue el inventor del telar programable. Este inventor francés es el responsable de la programación. No es el inventor de esta, ya que las cosas han cambiado mucho desde entonces, pero está claro que creó el primer sistema de instrucciones para un ''computador''. Y es que, sus tarjetas programables se introducían en un telar que leía el código, las instrucciones, de dichas tarjetas y automatizaba procesos. Evidentemente, se trataba de crear diferentes diseños en tejidos, pero esto permitió que cualquiera con el telar y las tarjetas perforadas crearan estos diseños sin ser expertos en la materia. Imagen 1.- Telar de Jacquard desde diversos ángulos 7 Los lenguajes de programación | Antonio T. Herivia La máquina e Baddge y Ada Lovelace Entre 1842 y 1843, Ada Lovelace se propuso traducir las memorias del matemático italiano Luigi Menabrea y, mientras lo hacía, creó un lenguaje de programación a mano para calcular la serie de números de Bernoulli con la máquina de Babbage.La máquina de Turing En 1936 Alan Turing revolucionó la computación con su Máquina de Turing. Se trata de una máquina que demostraba que, con un algoritmo, podían resolver cualquier problema matemático. Si había un algoritmo, la máquina podía resolver el problema. Imagen 2.- Máquina de Babbage Imagen 3.- La máquina de Turing 8 Los lenguajes de programación | Antonio T. Herivia Los lenguajes de programación como los conocemos hoy FORTRAN Al comienzo de la década de los 50, John Backus estaba trabajando con SSEC (Selective Sequence Electronic Calculator), uno de los primeros ordenadores de IBM, y desarrolló el programa SPEEDCODING para Él. Tomando Este como base, se emprendió, en otoño de 1954, la creación de un lenguaje para añadirle más prestaciones al modelo IBM 704, que iba a salir pronto al mercado. Como su nombre indica, FORTRAN estaba (y está) destinado a la resolución de problemas científico - técnicos, resultando relativamente sencillo de aprender si se domina la notación matemática. Imagen 4.- Programa en FORTRAN 9 Los lenguajes de programación | Antonio T. Herivia COBOL A finales de los 50, el Departamento de Defensa USA estaba bastante preocupado con los lenguajes de programación existentes, especialmente por dos razones: los programas no podían llevarse de un ordenador a otro y resultaban bastante difíciles de leer y modificar. Para solventar estos inconvenientes, patrocinó una conferencia sobre lenguajes (CODASYL, COnference on DAta SYstems Languages), que tuvo lugar en 1959 y en la que participaron las grandes empresas del sector (IBM, Sperry Rand, Honey Well, etc.). Como era previsible, formaba parte del comité la gran dama de la informática, Grace Hopper. Fruto de aquella conferencia fueron las especificaciones para desarrollar COBOL (COmmon Business Oriented Language), un lenguaje orientado hacia funciones administrativas, de gran portabilidad y legibilidad. Su primera versión apareció al año siguiente y, con el paso de los años, surgieron nuevas actualizaciones: COBOL 74, COBOL 85, etc. Ya que se buscaba su facilidad de lectura, COBOL tiene una sintaxis muy similar al inglés común, cuya terminología aparece continuamente: verbos, párrafos, frases, etc. Así, los programas se estructuran en cuatro divisiones (Identification, Enviroment, Data, Procedure), que se subdividen en secciones y éstas, a su vez, en párrafos, que constan de frases e instrucciones. Imagen 5.- Programa en COBOL 10 Los lenguajes de programación | Antonio T. Herivia BASIC John G. Kemeny y Thomas E. Kurtz eran profesores del Dartmouth College (New Hampshire) y, en 1964, diseñaron un nuevo lenguaje que permitiera introducirse a sus estudiantes en los sistemas de tiempo compartido. Ese lenguaje, al que llamaron BASIC por su sencillez, es, sin duda, el más difundido, aplicándose tanto en tareas de gestión como en aplicaciones científicas. ¿Y a qué se debe la gran popularidad del BASIC? Lo cierto es que no era el mejor lenguaje ni el más potente, pero tenía dos ventajas a su favor: se trataba de un lenguaje sencillo de aprender y, además, su intérprete ocupaba poca memoria. Por estos motivos, cuando se creó el primer ordenador personal (Altair de MITS), no es extraño que se desarrollase un BASIC para él. Desarrollado y diseñado por Microsoft. Más tarde, Microsoft adaptó su BASIC a los productos de Apple, a los microordenadores y, lo más importante, al PC de IBM; de hecho, el sistema operativo MSDOS incluía la versión GW-BASIC. En resumen, mucha gente aprendió a programar en BASIC con su ZX-Spectrum o su primer PC y, una vez dominado un lenguaje, es comprensible una cierta reticencia al cambio. Además de GW-BASIC, hubo otras versiones que tuvieron cierta difusión en los 80, como Turbo BASIC (de Borland) y QuickBASIC (de Microsoft). De hecho, hasta Kemeny y Kurtz intentaron aprovechar el éxito de su creación y, en 1983, crearon True BASIC cuya comercialización no resultó muy fructífera. BASIC ha sabido adaptarse a las necesidades del mercado en el transcurso de los años. Así, las primeras versiones eran interpretadas y sus programas resultaban un tanto ilegibles; en cambio, las actuales incorporan bastante estructuración y son compiladas. El exponente máximo de los modernos BASIC es Visual BASIC de Microsoft 11 Los lenguajes de programación | Antonio T. Herivia LOGO En 1964, Seymour Papert se incorporó al MIT, tras haber permanecido cinco años en Suiza, colaborando con el pedagogo Jean Piaget (1896-1980). Tres años después, Papert comenzó a diseñar un lenguaje que sirviera para introducir en el mundo de la programación al alumnado de menor edad. ¡Que los niños programen a los ordenadores y no los ordenadores a los niños! Poco a poco, LOGO fue poniéndose a punto y cuando, en 1980, Papert lo divulgó en todo el mundo con su libro Mindstorms: Children Computers and Powerful Ideas, fue muy bien acogido en los ámbitos educativos, especialmente en enseñanza primaria y secundaria. Teniendo en cuenta los pocos conocimientos matemáticos de sus potenciales usuarios, LOGO introduce al mundo de la programación de una forma gráfica, mediante la geometría de la tortuga. En los primeros tiempos, con LOGO se controlaba un pequeño robot con ruedas, motor y un lápiz retráctil, que admitía órdenes sencillas e intuitivas (Avanza, Retrocede, Gira a la derecha, etc.) y al desplazarse por el papel iba trazando el dibujo ordenado. Como el robot tenía forma abombada se le llamó tortuga (también influyó en el nombre el hecho de que era bastante lento). Sin embargo, tras un impulso inicial muy ilusionante, LOGO dejo de ser enseñado en las aulas. ¿Las causas? Por un lado, resulta que el lenguaje LOGO no es nada sencillo cuando se quiere ir más allá de la tortuga gráfica, ya que se basa en la utilización continua de listas y procedimientos recursivos, que no son fáciles de manejar. Por otra parte, la informática educativa ha ido perdiendo su componente formativa y creativa (la programación) y ha sido sustituida por una informática de usuario (manejo de aplicaciones ofimáticas). Imagen 6.- BASIC Imagen 7.- Papert con unos niños programadores (1984) Imagen 8.- Una de las tortugas de la primera época 12 Los lenguajes de programación | Antonio T. Herivia Lenguaje C En los Laboratorios Bell (New Jersey) trabajaron dos de los investigadores más conocidos de la moderna informática, Kenneth Thompson y Dennis Ritchie, creadores del sistema operativo UNIX, en 1969. Como no depende de la arquitectura del hardware, C es uno de los lenguajes más portables del mercado y, como además ofrece amplias prestaciones, su difusión es amplísima. A principios de los 80, Bjarne Stroustrup diseñó una ampliación de C y, en 1984, la convirtió en un compilador que llamó C++, especialmente enfocado a la programación orientada a objetos. Imagen 9.- Kenneth Thompson y Dennis Ritchie Imagen 10.- Programa en C Imagen 11.- Programa en C++ 13 Los lenguajes de programación | Antonio T. Herivia PASCAL A principios de los 70, el profesor suizo Niklaus Wirth, del Instituto Politécnico Federal de Zurich, emprendió la creación de un nuevo lenguaje (PASCAL) que permitiera introducirse en la programación de una forma fácil pero a la vez potente y, sobre todo, siguiendo unas pautas estructuradas. De hecho, PASCAL es el lenguaje más sencillo que posibilita el acceso a la informática teórica: descomposición modular, recursividad, punteros, etc. PASCAL, que surgió como una derivación de ALGOL, fue definido en el libro. PASCAL - User Manual and Report. (1974), escrito por Kathleen Jensen y Niklaus Wirth. En 1980 sufrió la primera formalización y se estandarizó en 1983. Al poco tiempo, Borland lanzó al mercado su compiladorPASCAL, cuyo nombre se precedía con la palabra Turbo, para recalcar su rapidez. Su éxito fue tan grande que vendió casi medio millón de copias de su compilador sólo en 1985. Durante más de una década, Turbo PASCAL ha sido sinónimo de PASCAL, pero, por desgracia, en el año 2000, Borland dejó de darle soporte técnico y su presencia es cada día menor en el ámbito de la programación, sobreviviendo a duras penas en el mundo universitario. Sin embargo, en 1995 surgió una nueva versión, DELPHI, que amplía PASCAL a la programación visual e intenta hacerle la competencia a Visual BASIC. Imagen 12.- Programa en PASCAL 14 Los lenguajes de programación | Antonio T. Herivia PROLOG En 1972, Robert Kowalski (universidad de Edimburgo) y Alain Colmerauer y Phillippe Roussell (universidad de Aix-Marseille) expusieron la revolucionaria idea de que la lógica podía emplearse como lenguaje de programación. Siguiendo esta línea, al año siguiente, el grupo de inteligencia artificial de la universidad de Aix - Marseille comenzó a diseñar ese lenguaje, al que se llamó PROLOG (PROgramation LOGique). PROLOG es el prototipo de lenguaje declarativo por excelencia. ¿Y qué es eso de declarativo? Todos los lenguajes que hemos ido viendo hasta ahora son algorítmicos; es decir, los ordenadores se consideran máquinas de Turing a las que debemos indicar todos y cada uno de los pasos a seguir para realizar una cierta tarea. Frente a estos lenguajes imperativos, los declarativos no están basados en órdenes sino en descripciones. En otras palabras, en los programas PROLOG se proporcionan al ordenador una serie de conocimientos sobre un tema, junto con una serie de reglas, y el programa nos contestará todas aquellas preguntas que deseemos hacerle sobre el tema. siempre que las respuestas puedan deducir se lógicamente de los conocimientos dados al inicio. Como es fácil suponer, PROLOG no está destinado al cálculo científico. Su aplicación en el campo de la inteligencia artificial, definiendo objetos y estableciendo relaciones, permite resolver problemas lógicos, desarrollar sistemas expertos, investigar en la comprensión del lenguaje humano, etc. Imagen 13.- Programa en PROLOG 15 Los lenguajes de programación | Antonio T. Herivia ADA Quince años después de intentar uniformizar los lenguajes con COBOL, el Departamento de Defensa USA percibió que su objetivo no se había cumplido. Por ese motivo, en 1975 formó un grupo de trabajo para evaluar los lenguajes existentes en aquel entonces y ver si alguno de ellos podía adaptarse a las necesidades del Departamento. ¿Y qué condiciones debía cumplir el lenguaje deseado? En principio, debía permitir el diseño de programas modulares y estructurados, de modo que fuesen fáciles de leer y de depurar. También era necesario que, como debía controlar instrumentos militares de todo tipo, gestionase sin problemas cualquier periférico. Además, tenía que aceptar el trabajo en paralelo, de modo que varios procesos se ejecutaran de forma simultánea o cuasi simultánea. Ninguno convenció al grupo y en su informe final propuso la creación de un nuevo lenguaje, recomendando que se basara en PASCAL, PL/I (ver último apartado) y ALGOL 68, ya que eran los más apropiados de los evaluados. Poco después, se convocó un concurso para desarrollar un nuevo lenguaje que se ajustara a los requerimientos del Departamento de Defensa. Se presentaron 17 propuestas que, tras una selección previa, quedaron reducidas a cuatro, a las que se asignó los nombres clave de Red, Green, Yellow y Blue, por aquello de preservar el anonimato. Finalmente, Green fue el lenguaje elegido. Propuesto por Honeywell-Bull (Francia), fue diseñado por un equipo encabezado por Jean Ichbiah. En un primer momento, se le dio el nombre de DoD-1 pero acabó cambiándose por ADA, en honor de Ada Lovelace. Sin embargo, a pesar de los años transcurridos desde entonces y a las mejoras que han ido introduciéndose en él, lo cierto es que ADA no es un lenguaje popular, salvo por su nombre. Se le reprocha ser un tanto complejo, bastante estricto y sólo apropiado para el desarrollo de grandes programas. Imagen 14.- Programa en ADA Imagen 14.-Programa en ADA 16 Los lenguajes de programación | Antonio T. Herivia Python Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la legibilidad de su código. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, dinámico y multiplataforma. Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License. Python es un lenguaje de programación multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación imperativa y programación funcional. Otros paradigmas están soportados mediante el uso de extensiones. Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática (CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba. Imagen 15.- Programa en PYTHON 17 Los lenguajes de programación | Antonio T. Herivia JAVA Este lenguaje, hoy en día ampliamente utilizado en Internet, fue desarrollado en 1990 por James Gosling, de Sun Microsystems, basándose en C y C++. ¿Un lenguaje para Internet cuando, en aquella época, la Red estaba casi circunscrita al ámbito universitario? En realidad, el objetivo de Sun no tenía nada que ver con Internet; era crear un interfaz atractivo e intuitivo para electrónica de consumo (calculadoras, televisión interactiva, etc.). Sin embargo, la electrónica de consumo no evolucionó como se esperaba y, durante unos años, el lenguaje de Gosling permaneció aparcado, hasta que Bill Joy (cofundador de Sun) consideró que podía ser interesante para Internet y propuso modificarlo para el nuevo medio. En agosto de 1995, ya con el nombre de JAVA, se presentó en sociedad. A pesar de que JAVA resulta un tanto lento en su ejecución, cada día es más popular. Por un lado, es relativamente sencillo y bastante potente; además, es válido para cualquier plataforma y, sobre todo, muy fiable y seguro, manteniendo alejado a los virus. Imagen 16.- Programa en JAVA 18 Los lenguajes de programación | Antonio T. Herivia 19 Los lenguajes de programación | Antonio T. Herivia Paradigmas de programación De acuerdo con Ambler (et ál., 1992), un paradigma de programación es una colección de patrones conceptuales que modelan el proceso de diseño para finalmente determinar la estructura de un programa. Por su parte, Pérez y López (2007) señalan que un paradigma de programación “provee (y determina) la visión y métodos que un programador utiliza en la construcción de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos de programación y en diferentes formas de pensar la solución de los problemas”. Los paradigmas de programación se centran en la idea de que indica un método de realizar cómputos y la manera en que se deben estructurar y organizar las tareas que debe llevar a cabo un programa”. Los paradigmas fundamentales están asociados a determinados modelos de cómputo. También se asocian a un determinado estilo de programación. Los lenguajes de programación suelen implementar, a menudo de forma parcial, varios paradigmas. Existen una variedad de tipos de paradigmas de programación los cuales tiene características peculiares puesto se centran en formas diferentes a realizaro estructurar de forma diferentes los lenguajes de programación. Se clasifican de la siguiente manera: 20 Los lenguajes de programación | Antonio T. Herivia Lenguaje imperativo Basado en una secuencia de comandos. describe la programación en términos del estado del programa y las sentencias que cambian dicho estado. Describe cómo debe realizarse el cálculo, no el porqué. Un cómputo consiste en una serie de sentencias, ejecutadas según un control de flujo explícito, que modifican el estado del programa. Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y representan el estado del programa. La sentencia principal es la asignación. El lenguaje representativo sería FORTRAN-77, junto con COBOL, BASIC, PASCAL, C, ADA. También lo implementan Java, C++, C#, Eiffel, Python Asociados al paradigma imperativo se encuentran los paradigmas de programación estructurada, modular y procedural. Estructurado Consiste en el uso de estructuras jerárquicas de flujo con el fin de mejorar la claridad de los programas y reducir el tiempo de desarrollo. Estructura secuencial Las instrucciones se ejecutan una tras otra a modo de secuencia lineal. una instrucción no se ejecuta hasta que finaliza la anterior ni se bifurca el flujo del programa Estructura selectiva La ejecución del programa se bifurca a una instrucción (o conjunto) u otra(s) según un criterio o condición lógica establecida. Sólo uno de los caminos en la bifurcación será el tomado para ejecutarse. Estructura iterativa Dada una secuencia de instrucciones un bucle iterativo o iteración hace que se repita su ejecución mientras se cumpla una condición. El número de iteraciones normalmente está determinado por el cambio en la condición dentro del mismo bucle aunque puede ser forjado o explicito por otra condición. 21 Los lenguajes de programación | Antonio T. Herivia Modular Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Entrada–Proceso-Salida Cada módulo puede o no aceptar valores de entrada y retornar valores de salida. el proceso interno puede o no estar relacionado con dichos valores. Los valores de entrada se denominan parámetros Divide y vencerás (top down) técnica de refinamiento sucesivo o análisis descendente donde un problema complejo debe ser dividido en varios subproblemas más simples y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Procedimientos y funciones Son subprogramas también denominados submódulos ya que en algunos lenguajes como por ejemplo Python se considera como módulo aun conjunto de subprogramas. 22 Los lenguajes de programación | Antonio T. Herivia Paradigma declarativo Expresa la lógica de la computación sin describir su flujo de control. Está basado en el desarrollo de programas especializando o declarando un conjunto de condiciones proposiciones afirmaciones restricciones ecuaciones o transformaciones que describen el problema y detallan su solución. La programación declarativa se puede definir como la programación que no es imperativa. Un programa declarativo es aquel que describe lo que se debe realizar y no la forma de realizarlo. Los lenguajes declarativos no basan su funcionamiento en efectos secundarios y tienen una clara correspondencia con la lógica matemática. Las variables son nombres asociados a definiciones, y una vez instanciadas son inmutables. El término “programación declarativa” es en realidad un término general que engloba una serie de paradigmas de programación más conocidos. Los siguientes son sub-paradigmas derivados del declarativo. Funcional: basado en la evaluación de funciones matemáticas. Lógico: basado en el uso de sentencias lógicas para representar y evaluar programas 23 Los lenguajes de programación | Antonio T. Herivia Paradigma orientado a objetos Los datos se incluyendo los métodos que los usan en entidades denominadas objetos que son instancias de una clase la cual está compuesta de datos y los todos métodos correspondientes para acceder a ellos y manipularlos. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial. Muchos de los objetos prediseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas. Los objetos son entidades que tienen un determinado "estado", "comportamiento (método)" e "identidad": La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante). Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. El programador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una "programación estructurada camuflada" en un lenguaje de POO. La programación orientada a objetos difiere de la programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada solo se escriben funciones que procesan datos. Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos. 24 Los lenguajes de programación | Antonio T. Herivia Clasificación de los lenguajes de programación Un lenguaje de programación permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo estos datos deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Existen dos clasificaciones de los lenguajes de programación: • Por su nivel de abstracción • Por su forma de ejecución Según el nivel de abstracción Lenguaje máquina Los lenguajes de máquina están escritos en códigos (código máquina) directamente inteligibles por la máquina (computadora), siendo sus instrucciones cadenas binarias (0 y 1). “Lenguaje de máquina” hace referencia al lenguaje específico de una computadora, mientras que “código máquina” hace referencia al modo en que se escriben los diferentes lenguajes de máquina. Ventajas y desventajas del lenguaje máquina El lenguaje de máquina cuenta con una serie de factores que debemos conocer para poder utilizarlo de forma conveniente. La principal ventaja se encuentra en que vamos a disfrutar de una gran velocidad en lo vinculado a la ejecución cuando traslademos un programa a otro lenguaje distinto. El motivo de ello es que podemos cargar el programa en la memoria de la máquina y que desde aquí actúe de forma independiente. Pero hay algunos inconvenientes que están en contraposición directa con esto. Por ejemplo, la codificación podría ser mucho más rápiday los procesos pueden llegar a ser demasiado complicados si no hemos recibido una buena formación. El índice de fiabilidad de este lenguaje tiene ciertas lagunas y la verificación de los programas requiere que seamos detallistas de una forma notable para que no haya nada que se nos pase. Además, los procesos que hayamos transmitido se podrán ejecutar en la CPU donde los hayamos configurado, pero no tendrán soporte más allá de este equipo, requiriendo ajustes para ello. 25 Los lenguajes de programación | Antonio T. Herivia Los lenguajes de bajo nivel Son lenguajes de programación que se acercan al funcionamiento de una computadora. Los lenguajes de más bajo nivel son los lenguajes de máquinas. A este nivel le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. Ventajas y desventajas del lenguaje de bajo nivel La programación en un lenguaje de bajo nivel tiene como ventajas una mayor adaptación al equipo, además de la posibilidad de obtener la máxima velocidad con el mínimo uso de memoria. Sin embargo tiene importantes inconvenientes, como la imposibilidad de escribir código independiente de la máquina y la mayor dificultad en la programación y en la comprensión de los programas. Lenguajes de medio nivel Minoritariamente en algunos textos se diferencian algunos lenguajes como de medio nivel, como el lenguaje C, ya que tienen ciertas características que los acercan a los lenguajes de bajo nivel, como gestión de punteros de memoria y registros, pero con sintaxis, vocabulario y gramática de alto nivel. Ventajas y desventajas del lenguaje de medio nivel Por el tipo de estructura que utiliza ha sido diseñado para ser altamente transportable. Es un lenguaje relativamente sencillo y de gran flexibilidad y usa funciones matemáticas propias del lenguaje y funciones suministradas por bibliotecas para el manejo de archivos. En el uso eficiente de la memoria pues utiliza punteros para direccionar el acceso a la memoria. Funciones y variables estáticas, son direccionadas en memoria mediante el uso de punteros. En la forma de procesar puesto que ejecuta interrupciones al procesador con uniones. El paso de parámetros a una función lo realiza por valores. El paso por referencia lo hace enviando explícitamente las direcciones de memoria de los parámetros y es un lenguaje multiplataforma. Pero por otro lado por el tipo de estructura no es un lenguaje visual, no puede ser deducido de forma intuitiva, como por ejemplo el Visual Basic. Para el uso de funciones anidadas necesita de extensiones y no tiene instrucciones de entrada y salida, ni para el manejo de cadenas de caracteres. Por la forma de procesamiento carece de instrucciones que faciliten a los desarrolladores la programación multihilo y no cuenta con instrucciones para programación dirigida a objetos. 26 Los lenguajes de programación | Antonio T. Herivia Los lenguajes de programación de alto nivel Se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de estar orientados a su ejecución en las máquinas. Los lenguajes de alto y bajo nivel requieren de conocimientos específicos de programación y del lenguaje concreto (vocabulario, gramática y sintaxis) para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar ciertos problemas sencillos de procesamiento de datos de una manera más fácil y rápida. Ventajas y desventajas de los lenguajes de alto nivel El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son más fáciles. Reducción del coste de los programas y su transportabilidad. Por otro lado sus desventajas son Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina que se explotan mucho mejor en lenguajes máquina y ensambladores. Aumento de la ocupación de memoria y el tiempo de ejecución de los programas es mucho mayor Según la forma de ejecución Los procesadores usados en las computadoras son capaces de entender y actuar según lo indican programas escritos en un lenguaje fijo para cada arquitectura, llamado lenguaje de máquina. Todo programa escrito en un lenguaje de alto nivel puede ser ejecutado de dos maneras: Lenguajes compilados: Antes de poder utilizarse el programa debe utilizarse un traductor llamado “compilador” que se encarga de traducir (“compilar”) el programa original (“código fuente”) al programa equivalente escrito en lenguaje de máquina o ensamblador (“binario”). Los binarios son los programas ejecutables y los únicos necesarios para el funcionamiento del programa. Ventajas de los lenguajes compilados • Ejecución rápida. • El código compilado no puede ser "abierto" por otras personas. • No es necesario transmitir el código fuente. • El código compilándose compacta en un solo archivo. 27 Los lenguajes de programación | Antonio T. Herivia Desventajas de los lenguajes compilados • El código compilado suele ocupar bastante en disco, ya que incorpora en el • propio código algunas librerías del sistema. • Depurar un programa implica volver a compilar tras los cambios. Lenguajes interpretados: Cada vez que se usa el programa debe utilizarse un traductor llamado “intérprete” que se encarga de traducir (“interpretar”) las instrucciones del programa original (“código fuente”) a código máquina según van siendo utilizadas. Para el funcionamiento del programa siempre es necesario disponer del código original y del intérprete. Diferencias entre lenguajes compilados e interpretados Ventajas de los lenguajes interpretados La principal ventaja de un lenguaje interpretado es que es independiente de la máquina y del sistema operativo ya que no contiene instrucciones propias de un procesador sino que contiene llamadas a funciones que el intérprete deberá reconocer. Basta que exista un intérprete de un lenguaje para dicho sistema y todos los programas escrito en ese lenguaje funcionaran. Además un lenguaje interpretado permite modificar en tiempo de ejecución el código que se está ejecutando así como añadirle nuevo, algo que resulta idóneo cuando queremos hacer pequeñas modificaciones en una aplicación y no queremos tener que recompilarla toda cada vez. Desventajas de los lenguajes interpretados Velocidad: Es el aspecto más notable y el cual se debe evaluar a fondo al crear software con este tipo lenguajes, pues se debe equilibrar la portabilidad con la velocidad que se está sacrificando. A menos que las prestaciones de los equipos informáticos sean bastante altas, en el caso cual, se podría despreciar este aspecto. Portabilidad: El problema radica en que en la actualidad, casi todos los lenguajes compilados, existen para todas las plataformas, no así las máquinas virtuales o frameworks, aunque en el caso de Java, se ha hecho un excelente trabajo en cuanto a eso. 28 Los lenguajes de programación | Antonio T. Herivia Diferencias entre un lenguaje compilado y uno interpretado: o Los lenguajes compilados se compilan una vez y se utilizan cuantas veces se desee sin necesidad de volver a utilizar el compilador. Los lenguajes interpretados son interpretados, valga la redundancia, cada vez que se ejecutan y necesitan siempre del intérprete. o Los compiladores analizan todo el programa y no generan resultados si no es correcto todo el código. Los intérpretes analizan las instruccionessegún las necesitan y pueden iniciar la ejecución de un programa con errores e incluso terminar correctamente una ejecución de un programa con errores siempre que no haya sido necesario el uso de las instrucciones que contienen dichos errores. o Un compilador traduce cada instrucción una sola vez. Un intérprete debe traducir una instrucción cada vez que la encuentra. o Los binarios son compilados para una arquitectura específica y no pueden ser utilizados en otras arquitecturas no compatibles (aunque pueden existir distintos compiladores para generar binarios para diferentes arquitecturas). Un lenguaje interpretado puede ser utilizado en cualquier arquitectura que disponga de un intérprete sin necesidad de cambios. o Los lenguajes compilados son más eficientes que los interpretados y además permiten distribuir el programa en forma confidencial mediante binarios o Es más sencillo empaquetar lenguajes interpretados dentro de otros lenguajes, como JavaScript dentro de HTML. Para obtener las ventajas de ambos tipos de lenguajes algunos utilizan una aproximación en dos fases. Primero el programa original (código fuente) es precompilado a un binario confidencial, portable e interpretable. En una segunda fase el binario precompilado es interpretado en cada arquitectura. Esta aproximación es la que realiza por ejemplo Java. Hay que hacer notar que algunas aplicaciones permiten ser programadas con lenguajes. Estos lenguajes no tienen por objeto solicitar acciones a la computadora sino solicitar acciones a la aplicación sobre la que se ejecutan. Por tanto aunque algunos de estos lenguajes son lenguajes de programación, no son lenguajes de programación de computadoras y por tanto no necesitan ser traducidos a código máquina. 29 Los lenguajes de programación | Antonio T. Herivia Conclusiones Durante el desarrollo de esta investigación se ha podido denotar la importancia de la programación y la relevancia de esta a través de su evolución puesto que trajo un sin numero de beneficio y desarrollo de nuevas tecnologías. Además de estudiar al estudiar la diversidad de los lenguajes y sus características hemos podido observar la relación que guardan uno con otros y ciertas características propias de su clasificación ya sea por niveles o por ejecución, lo cual nos da una idea de cuales son los lenguajes que nos pueden servir mejor a la practica en el área en la que nos especializamos, ya sea desde programar un microcontrolador hasta una pagina web. Con esto al observar la complejidad de los lenguajes y observar todo lo que implica paradigmáticamente hablando nos damos una idea de la potencia que tienen además de su importancia para el desarrollo tecnológico y la investigación, ya que, también hemos observado lenguajes usado para cálculos matemáticos extensos, esto habla igual de los diversos usos de la programación. Con esto dicho termino esta investigación con conocimiento que me hará entender mejor los lenguajes y sus características además de alentarme a estudiar nuevos lenguajes y profundizar en los que ya tengo conocimiento para así mejor mi rendimiento académico y estar mejor preparado para próximas experiencias educativas y mundo laboral. 30 Los lenguajes de programación | Antonio T. Herivia Bibliografía Alcolea Huertos, A. (25 de 08 de 2019). La historia de los lenguajes de programación. Obtenido de Computer Hoy: https://computerhoy.com/reportajes/tecnologia/historia-lenguajes- programacion-428041 Ambler, A., Burnett, M., & Zimmerman, B. (1992). Operational versus definitional: A perspective on programming paradigms. Computer. Obtenido de ftp://ftp.engr.orst.edu/pub/burnett/Computer-paradigms-1992.pdf Coad, P., & Yourdon, E. (1991). Object-oriented Design. Prentice-Hall International editions. ECURED. (s.f.). Lenguaje Interpretado. Obtenido de ECURED: https://www.ecured.cu/Lenguaje_interpretado Equipo de Expertos. (s.f.). Conociendo el lenguaje de máquina. Universidad Internacional de Valencia. Obtenido de https://www.universidadviu.com/conociendo-lenguaje-maquina/ Güimi. (2008). Lenguajes de programación. Obtenido de https://guimi.net/descargas/Monograficos/G- Lenguajes_de_programacion.pdf Informatica segundo y tercero blog. (6 de Octubre de 2009). Obtenido de http://jessicajaime.blogspot.com/2009/10/ventajas-y-desventajas-de- programar.html Pérez, P., & López, M. (s.f.). Multiparadigma en la enseñanza de la programación. Buenos Aires, Argentina: Universidad Nacional del Comahue. Obtenido de http://sedici.unlp.edu.ar/bitstream/handle/10915/20499/Documento_complet o.pdf?sequence=1 Tapia Rangel, E. (2016). Informatica IV. Ciudad de México, México: Universidad Nacional Autonoma de México. doi:978-607-02-7874-7 Trigo Aranda, V. (2004). Historia y evolución de los lenguajes de programacion. Revista Digital de Acta(034), 85-95. Obtenido de https://www.acta.es/medios/articulos/informatica_y_computacion/034083.pd f 31 Los lenguajes de programación | Antonio T. Herivia Vaca Rodríguez, C. (11 de Febrero de 2011). Paradigmad de programación. Valladolid, España: Departamento de Informatica de la Universidad de Valladolid. Zayas Guggiari, Carlos Augusto. (2012). Introducción a los Paradigmas de Programación. Obtenido de https://www.academia.edu/14859188/Introducci%C3%B3n_a_los_Paradigm as_de_la_Programaci%C3%B3n
Compartir