Professional Documents
Culture Documents
INTRODUCCIN
http://rigaux.org/language-
Figura 2: Lnea de tiempo desarrollada por ric Lvnez de algunos lenguajes de programacin. Obtenida en
https://www.levenez.com/lang/
Dada la extensin en su nmero podemos advertir de inicio que no hay mejor o peor lenguaje
para aprender, su demanda o la moda concreta puede dirigir mucho qu tipo de lenguaje se
utiliza en determinado mbito. Hay lenguajes muy populares que mueren pronto, y otros
menos glamurosos que llevan con nosotros 30 aos, como ocurre con C o C++.
Otro indicativo que podra seguirse a la hora de escoger un lenguaje de programacin es la
lista de lenguajes de programacin ms populares, que elabora dos veces a ao Redmonk, va
Fossbytes. Esta lista proviene de la actividad de uso de GitHub y StackOverFlow, as que es
bastante fiable. Los lenguajes ms populares tienen una gran demanda, y por tanto ser ms
sencillo encontrar trabajo si los dominas.
Los analistas de RedMonk realizan peridicamente un anlisis de los lenguajes de
programacin ms utilizados del mundo. Los datos se obtienen desde GitHub y Stack Overflow.
El ranking es el siguiente, a junio de 2016:
JavaScript
Java
Perl
PHP
Scala
Python
Go
C#
Haskell
C++
Swift
Ruby
Matlab
CSS
Visual Basic
Clojure
Objective-C
Groovy
Shell
Figura 3: Torre de Babel portada de Programming Languages: History and Fundamentals, de J. E. Sauel, 1969, Prentice
Hall, consultada en http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-2009/tema-01.html
2
2.1
Al comienzo del desarrollo de la informtica, en torno a los aos 40, con los primeros
ordenadores, slo exista el cdigo mquina. No existan los lenguajes de programacin de alto
nivel, a lo sumo se trabajaba en lenguaje ensamblador
FORTRAN fue el primer lenguaje de programacin de alto nivel. Desarrollado por un equipo de
IBM dirigido por John Backus en 1956
A mediados de los aos 60, una vez diseados FORTRAN, COBOL, LISP y ALGOL, la
programacin comenz a cambiar.
Las mquinas eran menos costosas, el coste de la programacin estaba aumentando, apareca
la necesidad de mover o migrar los programas de unas estaciones a otras, y surga la necesidad
de llevar un buen mantenimiento de los programas resultantes.
El objetivo de un lenguaje de alto nivel se desarroll con la finalidad de no slo en ejecutar los
programas eficientemente, sino tambin en facilitar el desarrollo de programas para resolver
problemas en determinadas reas de aplicacin.
Entre 1960 y 1970 los lenguajes se centraron en resolver problemas especficos de un dominio.
En definitiva, determinados aspectos van a provocar la evolucin de los lenguajes de
programacin y definir sus caractersticas, como por ejemplos:
Recursos y tipos de ordenadores: La evolucin de los ordenadores desde los aos 50, junto
con los modernos sistemas operativos, han influenciado las caractersticas de los lenguajes de
alto nivel.
Aplicaciones y necesidades de los usuarios: el uso de los ordenadores se ha extendido
rpidamente desde las aplicaciones militares, cientficas y de negocios a los juegos, los
ordenadores personales, internet y cualquier aplicacin cotidiana
Nuevos mtodos de programacin: el diseo de los lenguajes tiene que reflejar los buenos
mtodos para implementar programas grandes y complejos.
Estudios tericos: Gracias a la investigacin durante ms de 50 aos en el diseo e
implementacin de lenguajes, se conocen los puntos fuertes y dbiles de las caractersticas de
los mismos, por lo que influye en el diseo de los nuevos lenguajes.
Estandarizacin: cada vez ms existe la necesidad de que los programas sean portables de
unos sistemas a otros.
El
Existe la creencia errnea, generalizada y profana de que un ordenador tiene una inteligencia
superior a la del hombre.
Esta idea debe ser totalmente descartada. Un ordenador es un artilugio ideado y construido
por el hombre, y por tanto no superior a l, que slo es capaz de ejecutar un pequeo
conjunto de instrucciones muy simples, como operaciones aritmticas, comparaciones,
movimientos de informacin de un lugar a otro, etc.
Adems:
Un lenguaje de programacin potente es algo ms que un medio para instruir a un ordenador
para realizar tareas. El lenguaje tambin sirve como un marco dentro del cual organizamos
nuestras ideas acerca de los procesos. Por lo tanto, cuando describimos un lenguaje, debemos
prestar especial atencin a los medios que la lengua ofrece para la combinacin de ideas
simples para formar ideas ms complejas
Estas tres definiciones nos son tiles para ir acotando y definiendo las caractersticas comunes
a todo lenguaje de programacin, entendiendo eso s que dichas definiciones describen mucho
mejor los lenguajes a partir del alto nivel.
As, por todo lo expuesto, para Abelson y Sussman, todos los lenguajes de programacin
permiten combinar ideas simples en ideas ms complejas mediante los siguientes tres
mecanismos:
2.2
Existe un error comn que trata como sinnimos los trminos lenguaje de programacin y
lenguaje informtico. Los lenguajes informticos engloban a los lenguajes de programacin y
a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es
propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten
disear el contenido de los documentos).
Estos elementos, muy usados por los informticos, tienen algunas de las caractersticas de los
lenguajes de programacin, pero no lo son. Por ejemplo, en el caso de XML:
Los lenguajes XML, uno de los estndares ms usados por las aplicaciones informticas para
compartir datos, son lenguajes escritos con una sintaxis perfectamente definida.
Por ejemplo, el siguiente texto en un lenguaje XML para definir una lista de personas:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE people_list SYSTEM "example.dtd">
<people_list>
<person>
<name>Fred Bloggs</name>
<birthdate>27/11/2008</birthdate>
<gender>Male</gender>
</person>
<person>
<name>Mary Baggins</name>
<birthdate>12/07/1942</birthdate>
<gender>Female</gender>
</person>
</people_list>
Sin embargo, le falta una caracterstica fundamental para poder ser considerado un lenguaje
de programacin: no define un comportamiento, no tiene una semntica asociada. El trozo de
cdigo anterior no puede ser ejecutado tal cul en un ordenador, sino que nicamente define
un conjunto de datos.
2.3
Abstraccin
2.4
10
Cuanto ms bajo sea el nivel del lenguaje ms cerca estar de las caractersticas de un tipo de
mquina concreta, y ms alejado de ser comprendido por un ser humano ordinario. As,
tenemos en cada uno de los niveles un tipo definido de lenguaje de programacin con sus
propios rasgos, inherentes a todos los de la subdivisin:
1. Lenguajes mquina
Son totalmente dependientes de la mquina, y en concreto de la CPU. Cada tipo de CPU tiene
su propio lenguaje mquina. Es necesario un conocimiento profundo de la arquitectura de la
CPU para realizar un programa en este lenguaje. Es el lenguaje nativo del microprocesador. Lo
componen instrucciones generalmente sencillas, que se identifican por cdigos numricos.
2. Lenguajes ensambladores
Un lenguaje ensamblador es simplemente una representacin simblica del lenguaje mquina
asociado, lo cual permite una programacin menos tediosa que en el lenguaje mquina. Las
instrucciones se identifican por smbolos en lugar de cdigos numricos. Generalmente hay
una correspondencia 1 a 1 entre las sentencias en lenguaje ensamblador y sus equivalentes en
lenguaje mquina, por lo que un lenguaje ensamblador tambin es muy dependiente.
11
12
PROS Y CONTRAS
Como hemos podido observar durante el desarrollo de nuestro trabajo, aparecen diferencias
sustantivas en los rasgos de cada uno de los lenguajes en funcin del tipo de nivel de
abstraccin que ocupen. De ello se deriva que exista una serie de ventajas y desventajas para
cada nivel.
Lenguajes a nivel de cdigo mquina o ensamblador: Proporcionan poca o ninguna
abstraccin del microprocesador de un ordenador. Consecuentemente es fcilmente
trasladado a lenguaje de mquina.
En general se utiliza este tipo de lenguajes para programar controladores (drivers).
Ventajas
Inconvenientes
Caractersticas
Se trabaja a nivel de instrucciones, es decir, su programacin es al ms fino detalle.
Est orientado a la mquina.
13
Los lenguajes de alto nivel se caracterizan por expresar los algoritmos de una manera
adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las
mquinas.
En los primeros lenguajes de alto nivel la limitacin era que se orientaban a un rea especfica
y sus instrucciones requeran de una sintaxis predefinida. Se clasifican como lenguajes
procedimentales.
Otra limitacin de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de
programacin para realizar las secuencias de instrucciones lgicas.
Los lenguajes de muy alto nivel se crearon para que el usuario comn pudiese solucionar tal
problema de procesamiento de datos de una manera ms fcil y rpida.
Por esta razn, a finales de los aos 1950 surgi un nuevo tipo de lenguajes de programacin
que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se
llaman "de tercera generacin" o "de alto nivel", en contraposicin a los "de bajo nivel" o "de
nivel prximo a la mquina".
Ventajas
Inconvenientes
14
CONCLUSIN
15
5 CONCEPTOS CLAVE
tedioso. 55 89 e5 53 83 ec 04 f0 e8 31...
16
BIBLIOGRAFIA
1. Juan Antonio Pascual. Estos son los 21 lenguajes de programacin ms populares en
2016 Consultado en: http://computerhoy.com/noticias/software/estos-son-21lenguajes-programacion-mas-usados-2016-48560
2. Claudio Valero. Lenguajes de programacin ms usados, ms demandados y con ms
futuro.
Consultado en: http://www.adslzone.net/2016/06/07/lenguajes-programacion-masusados-mas-demandados-mas-futuro/
3. http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-2009/tema01.html#Elementos+de+los+lenguajes+de+programaci%C3%B3n
4. http://www.globbit.com/estos-los-15-lenguajes-programacion-mas-populares-20168524/
5. https://www.levenez.com/lang/
6. http://comofuncionaque.com/lenguajes-de-programacion-mas-usados/
7. Encyclopedia of Computer Science (Encyclopedia of Computer Science, RALSTON, A.,
REILLY, E.D., HEMMENDINGE, D., 4th Edition, Wiley, 2000), traduccin desarrollada a
partir de http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-2009/tema01.html#Elementos+de+los+lenguajes+de+programaci%C3%B3n
8. Structure and Interpretation of Computer Programs (ABELSON, H., JAY SUSSMAN, G.,
SUSSMAN, J. MIT Press ,Cambridge, Massachusetts, 1996), ), traduccin desarrollada a
partir de http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-2009/tema01.html#Elementos+de+los+lenguajes+de+programaci%C3%B3n-
17
NDICE
1 INTRODUCCIN
2-4
5-11
12-13
4 CONCLUSIN
14
5 CONCEPTOS CLAVE
15
6 BIBLIOGRAFIA
16
7 NDICE
17