Download lenguajes de programación

Document related concepts

APL wikipedia , lookup

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Clojure wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Transcript
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Introducción
Las computadoras pueden realizar diferentes clases de tareas y para ello utilizan apenas
un conjunto básico de operaciones básicas:
- lógicas.
- aritméticas.
- de entrada y salida de datos.
- de control.
Este conjunto de operaciones se denota con números binarios (series largas de 1s y 0s) en
lo que se denomina “LENGUAJE MÁQUINA”.
Este lenguaje es muy difícil de utilizar y su modo de expresión es muy lejano al
nuestro, por lo que el trabajo de los programadores se complica mucho.
De ahí surge la necesidad de inventar un mecanismo facilite la tarea de la programación.
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Conceptos y definiciones fundamentales
El mecanismo que soluciona el problema de la comunicación entre humanos y
computadoras se denomina Lenguaje de Programación.
Un LENGUAJE DE PROGRAMACIÓN es una notación sistemática a través de la
cual describimos procedimientos de cómputo.
Un procedimiento de cómputo es un conjunto de pasos que una máquina puede
realizar para resolver un problema.
El desarrollo de Lenguajes de Programación adecuados permite el uso óptimo de los
recursos de hardware con que se cuenta.
Un Lenguaje de Programación está definido por una gramática (sintaxis) o conjunto
de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados. La
gramática determina si una sentencia escrita en un lenguaje está o no bien formada.
Además de la gramática (para formar sentencias) se precisa dar un significado a cada
frase formada, de esto se encarga la semántica del lenguaje.
Clasificación de los Lenguajes de Programación
Existen diversas formas de clasificar a los lenguajes de programación:
a) Según su proximidad al lenguaje máquina o al lenguaje de las personas (lenguaje
natural).
b) Según su forma de trabajar.
c) Según la tarea para la que fueron concebidos.
d) Según la filosofía de sus creadores.
e) Según su orden de aparición (generaciones), etc.
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Lenguajes de alto y bajo nivel
Los lenguajes pueden ser de alto y bajo nivel; (también hay un nivel intermedio entre
estos dos).
Los lenguajes de bajo nivel:
 Son dependientes de la máquina, es decir, están diseñados para
ejecutarse en una computadora determinada.
 Son complicados de entender y de usar; no son amigables.
 Los programas escritos en ellos son generalmente muy largos y
complejos ya que especifican el flujo de los datos paso a paso.
 Ejemplos de éstos lenguajes es el lenguaje máquina.
Los lenguajes de alto nivel:

Son independientes de la máquina.

Tienen mayor cercanía con el lenguaje natural.

Son más sencillos de comprender y utilizar.

Los programas generados suelen tener menor complejidad y se
ahorra tiempo de escritura. Se utilizan sentencias más cortas para
especificar una tarea dada.

No se necesita especificar el tratamiento exacto que se da a los
datos, sino lo que se espera en el resultado.

Se incluyen rutinas de uso frecuente (bibliotecas de funciones)
que facilitan la tarea de programar.

Como ejemplos tenemos: PASCAL, ADA, COBOL, etc.
Obs:
Los primeros lenguajes que existieron eran todos de bajo nivel. A la medida del paso del
tiempo se desarrollaron los lenguajes de alto nivel, hasta llegar a los que hoy llamamos lenguajes
de muy alto nivel por su gran similitud con el lenguaje natural.
Hoy se utilizan tanto los lenguajes de nivel muy alto, alto y bajo, dependiendo de la tarea
a realizar.
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Clasificación de los lenguajes de alto nivel

Lenguajes imperativos o procedurales: son aquellos en que el estado del programa
se puede definir con precisión indicando el valor de cada una de las variables que se
utilizan. El programa se ejecuta cambiando los valores de las variables en forma
metódica y sucesiva. Ej: C, PASCAL. Entre los lenguajes procedurales una clase
especial la forman los llamados lenguajes concurrentes que permiten la presencia de
varios procesos simultáneos que se comunican y sincronizan de modo que realizen la
tarea específica.

Lenguajes declarativos: los programas se ejecutan mediante la aplicación sucesiva
de funciones o expresiones lógicas. Ej: LISP, PROLOG.

Lenguajes orientados a objetos: el diseño de los programas se basa en los datos y la
estructura de los mismos. En cada objeto se incluyen los datos y las operaciones sobre
ellos (encapsulamiento). Ej: SMALLTALK.

Lenguajes orientados al problema: pretenden solucionar problemas específicos,
hacen énfasis en la entrada y la salida antes que en el procesamiento de los datos.

Lenguajes naturales.
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Evolución histórica de los lenguajes de programación
Resulta instructivo examinar una historia breve del desarrollo de los lenguajes de
programación; además se puede establecer una clasificación atendiendo al desarrollo de los
lenguajes desde la aparición de las computadoras.
Los comienzos

Primeros algoritmos escritos en tablas de arcilla (1500 – 3000 a.C.) en Mesopotamia.

No tenían sentencias condicionales (si se cumple <cond>, hacer <sentencias>).

Si había más de una posibilidad, repetían el algoritmo con algunas modificaciones.

Las iteraciones se expresaban de manera explícita, repitiendo las veces que fuera
necesario.

No se superó este nivel de análisis hasta Euclides (300 a.C.) quien describe un
algoritmo para hallar el máximo común divisor de un conjunto de enteros.
Los casos mencionados son aislados y no representan un desarrollo continuo de notación
formal para obtener algoritmos.
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Historia Reciente
Charles Babbage (1792 – 1871) desarrolla sus máquinas “Diferencial” y “Analítica”.
Colabora con él Ada Augusta, Condesa de Lovelace, quien es considerada como la primera
programadora. Ella desarrolló programas con un esquema parecido al de los lenguajes
imperativos posteriores e inició el área informática cuyo objetivo es el estudio y análisis de los
algoritmos.
Posteriormente (1930 y 1940) surgen numerosas notaciones para expresar procedimientos
de cómputo. Estos dieron lugar al desarrollo posterior.

Primera generación (1GL): lenguajes máquina y ensambladores. Cada instrucción
del lenguaje ensamblador se corresponde directamente con las instrucciones en
lenguaje máquina. En lugar de usar 1s y 0s se utilizan abreviaturas denominadas
mnemotécnicos.

Segunda generación (2GL): incluye a los primeros lenguajes imperativos de alto
nivel (FORTRAN y COBOL). Estos eran muy diferentes a los que conocemos hoy: el
FORTRAN, por ejemplo, tenían muy poca flexibilidad, el usuario no podía definir
funciones, las variables no podían tener más de 2 caracteres como nombre, etc.

Tercera generación (3GL): lenguajes de alto nivel, imperativos; se utilizan hasta
hoy. El iniciador de esta generación fue el ALGOL, a partir del cual se desarrollan el
PASCAL, ADA y APL. Con estos lenguajes surgen las ideas de bloques y
procedimientos, así como las de tipo de datos y chequeos de tipos, se utilizan palabras
reservadas, sentencias iterativas, cadenas de caracteres, procedimientos recursivos,
etc. Posteriormente se incluyó la posibilidad de definir datos abstractos y manejar
excepciones.

Cuarta generación (4GL): orientado a aplicaciones de gestión y manejo de bases de
datos. Utilizan sentencias expresadas en inglés para pedir a la computadora que
realice acciones, sin necesidad de especificar cómo realizarlas. Algunos ejemplos son
SQL

Quinta generación (5GL): orientados a la inteligencia artificial y al procesamiento
del lenguaje natural.
Teoría y Aplicaciones de la Informática I
Lenguajes de Programación
Aparición de lenguajes de programación de alto nivel
APL
PROLOG
C
Modula2
SNOBOL
LISP
ALGOL
Algol 68
COBOL
Simula 67
PASCAL
ADA
LISP
PL/I
FORTRAN
EUCLID
BASIC
1955
1960
1965
1970
1975
1980
1985