



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
La historia de la programacion
Tipo: Guías, Proyectos, Investigaciones
1 / 7
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Con la idea de facilitarnos las tareas que debemos de desempeñar los humanos, hemos venido inventado diversas herramientas a lo largo de nuestra historia, que nos permiten tener una mejor calidad de vida.
Los ordenadores son uno más de los inventos del hombre, aunque debemos decir que las tecnologías para su fabricación y explotación han tenido un desarrollo sorprendente a partir de la segunda mitad del siglo XX. Esta herramienta por sí sola no es capaz de efectuar ninguna tarea, es tan sólo un conjunto de cables y circuitos que necesitan recibir instrucción por parte de los humanos para desempeñar alguna tarea. El problema entonces, se puede fijar en ¿cómo vamos a poder hacer que un conjunto de circuitos desempeñen una determinada tarea y nos entreguen los resultados que nosotros esperamos?, es decir, ¿de qué manera se puede lograr la comunicación entre el hombre y el ordenador?.
Así pues, tratando de dar una solución al problema planteado, surgieron los lenguajes de programación, que son como un lenguaje cualquiera, pero simplificado y con ciertas normas, para poder trasmitir nuestros deseos al ordenador.
Por otro lado, como se sabe, un conjunto de circuitos no entendería ningún lenguaje que nosotros conozcamos, por más sencillo que éste parezca. Los circuitos en todo caso, sólo reconocen presencia o ausencia de energía, es decir que debemos hablarle a la máquina en su propio lenguaje (presencia y ausencia de energía, 0 y 1), o nuestro lenguaje deberá de ser traducido a un lenguaje binario cuyo alfabeto es el 0 y el 1, mediante las herramientas desarrolladas para llevar a cabo esta tarea, las cuales reciben el nombre de traductores, y como veremos más adelante, los hay de muchos tipos, dependiendo de características más específicas del lenguaje a traducir y de la manera de llevar a cabo su traducción.
Como ya habréis entendido, para crear un lenguaje de programación, deberemos crear la herramienta que lo traduce, y es justamente de ellas, de las que hablaremos a continuación, para describir como han ido evolucionando en los últimos 50 años [BYTE 95].
A partir de los años sesenta, empiezan a surgir diferentes lenguajes de programación, atendiendo a diversos enfoques, características y propósitos, que más adelante describiremos. Por lo pronto, puede decirse, que actualmente existen alrededor de 2000 lenguajes de programación [KINNERSLEY 95] y continuamente, están apareciendo otros más nuevos, que
prometen hacer mejor uso de los recursos computacionales y facilitar el trabajo de los programadores.
Tratando de resumir un poco, presentaremos los siguientes cuadros evolutivos, donde aparecen los lenguajes que por su uso y comercialización, han resultado ser los más populares a lo largo de este medio siglo. [LABRA 98] [RUS 01]
Figura a. Evolución de los Lenguajes Imperativos y Orientados a Objetos
De acuerdo con el estilo de programación, podemos clasificar los lenguajes en las siguientes categorías:
READ(x); fac := 1 ; for i = 1 to x { fac := fac * i ; } WRITELN(fac);
SELECT * FROM alumnos WHERE sexo = "M" ORDER BY edad
Dentro de este paradigma, se encuentran dos estilos distintos de programación, cada uno de los cuales posee su propia lógica [SANFÉLIX 00].
o Funcionales : Son lenguajes basados en funciones, las cuales se representan mediante expresiones, que nos permiten obtener ciertos resultados a partir de
formadas por un conjunto de términos, que a su vez pueden encapsular otras expresiones, para con la evaluación de todas ellas, llegar a la solución deseada.[GAULD 01]. Para describir la idea, retomaremos el ejemplo del factorial escrito en el lenguaje funcional Haskell.
fac :: Integer -> Integer fac 0 = 1 fac x = x * fac (x-1)
o Lógicos : Este tipo de lenguajes se basan en el cálculo de predicados, la cual es una teoría matemática que permite entre otras cosas, lograr que un ordenador basándose en un conjunto de hechos y de reglas lógicas, pueda derivar en soluciones inteligentes. [DIMARE 90]. El mismo ejemplo del factorial, se vería de la siguiente manera, escrito en PROLOG.
factorial (0, 1) factorial (X, Fac) :- Y is X-1, fac(Y, F2), Fac is F2 * X.
del paso de mensajes. Cabe mencionar con más detalle los elementos fundamentales que deben de poseer este tipo de lenguajes [BOOCH 96]:
o Abstracción : Determinación de las características de los objetos, que sirven para identificarlos y hacerlos diferentes a los demás.
o Encapsulamiento : Es el proceso que agrupa y almacena los elementos que definen la estructura y el comportamiento de una abstracción, en un mismo lugar.
o Modularidad : Es la propiedad de agrupar las abstracciones que guardan cierta relación lógica, y a la vez minimizar la interdependencia entre las diversas agrupaciones.
o Jerarquía : Consiste en establecer un orden o una clasificación de las abstracciones.
Además de estos elementos fundamentales, también existen otros 3 elementos secundarios , que aunque son deseados, no son indispensables para clasificar un lenguaje dentro de este estilo.
o Tipificación : Mecanismo que intenta restringir el intercambio entre abstracciones que poseen diversas características.
o Persistencia : Es la propiedad de un objeto a continuar existiendo a través del tiempo y/o del espacio.
o Concurrencia : Es la propiedad que distingue a los objetos activos, de los que no lo están.
Ahora bien, si tomamos como referencia las herramientas usadas en el proceso de traducción y ejecución de los programas esbozada en la figura 2, vamos a tener la siguiente clasificación de lenguajes[AHO 77]:
Programa Fuente Traductor Programa Objeto Escrito por el Programador Programa que Logra Es el que Entiende la el Entendimiento Máquina
Figura 2