Académique Documents
Professionnel Documents
Culture Documents
PARCIAL # 2
EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN
Presentado por:
Carlos De Gracia 9-721-393
Efraín Caballero 9-719-1952
Profesor:
Diego Santimateo
III Año
II Semestre
18 de Septiembre de 2007
Evolución de los lenguajes de programación
_______________________________________________________________________________
INTRODUCCIÓN
Los lenguajes informáticos, que inicialmente surgen como una forma de expresar
un conjunto de órdenes dadas a una máquina, han ido evolucionando hacia otras
aproximaciones o paradigmas en los que se describe la estructura de un problema
de forma enunciativa o declarativa, aproximándose, de este modo, al paradigma
de la lengua natural.
Tercera Semana
Indicaciones
Utilice como base la conferencia ofrecida por el Dr. Ricardo Peña Marí en la
Universidad Complutense de Madrid, España, sobre la evolución histórica de la
programación de computadoras, que puede acceder en:
http://webdiis.unizar.es/asignaturas/LP/doc/LP-1-Motivacion.pdf
Obviamente usted puede o debe realizar otras consultas para nutrir sus
respuestas, por lo cual deberá presentar la webgrafía o bibliografía
correspondiente. Adicionalmente le recordamos que este es un trabajo
colaborativo lo que implica que todos son responsables por el aprendizaje de
todos, el grupo no logra su objetivo hasta que todos consideren que han
alcanzado nuevos aprendizajes o que aceptan cada una de las respuestas dadas,
así las cosas cada grupo debe incluir en su informe, el detalle de la organización
para el desarrollo de esta prueba, los conocimientos previos a los que cada uno
debió recurrir, el tipo de apoyo que recibió del grupo, los obstáculos que
encontraron, los nuevos conocimientos adquiridos y sus comentarios generales
Para beneficio de todos, las consultas para aclarar lo que estimen conveniente
sobre esta prueba, pueden hacerlas en nuestro grupo de Esnips.
CUESTIONARIO
Entre las características que debió lograr FORTRAN sobre la programación usual
de su época, para ser un lenguaje atractivo, podemos mencionar estas dos:
Entre los aportes que podemos mencionar de Algol tenemos los siguientes:
Un ejemplo de ello es la sintaxis BNF (Backus and Naur Form) desarrollada
por dichos autores para expresar su gramática.
Primer lenguaje con formato libre: los espacios en blancos o fines de línea
adicionales que aparecen al principio no son significativos, y son eliminados
en la fase de análisis léxico.
Introdujo del símbolo ‘ ; ’ y de las construcciones parentizadas begin y end
para separar sintácticamente las instrucciones.
Primer lenguaje con estructura de bloques. Introdujo las reglas de visibilidad
(el ámbito de los identificadores es local al bloque en que están
declarados).
Primer lenguaje con disciplina de tipos. A diferencia de Fortran, todas las
variables han de ser declaradas, junto con su tipo, antes de ser nombradas.
Primer lenguaje con instrucciones estructuradas de control de flujo. En
particular, las instrucciones for e if then else son aportaciones de Algol 60.
Primer lenguaje en introducir la recursividad.
Primer lenguaje en introducir los pasos de parámetros por valor y por
nombre.
Límites de los arrays: decididos en tiempo de ejecución.
Las razones del fracaso de Algol se dieron, ya que este lenguaje no llegó a
difundirse en la industria debido a que las compañías fabricantes no pusieron
especial empeño en el desarrollo de compiladores. También, ya que Algol 60 tenía
una notación elegante, pero ineficiente de implementar y los usuarios prefirieron
ocuparse de sus propios lenguajes.
El lenguaje pionero en el uso del garbage collector es Lisp, ya que fue utilizado
para resolver el problema de la administración manual de la memoria y uno
moderno que lo utilice es Java.
Entre las diferencias que podemos encontrar entre un lenguaje interpretado y uno
compilado podemos mencionar las siguientes:
#include<iostream>
// Tipo que representa funciones de dos argumentos que devuelven entero
typedef long (* Funcion) (int, int);
long area (int x, int y)
{
return x*y; //si toma esta función, calcula el área
}
long perimetro( int x, int y)
{
return 2*(x+y); //si toma esta función, calcula el área
}
long calcularectangulo ( int a, int b, Funcion pf)
{
return pf(a ,b); //función a retornar
}
// Programa principal
int main()
{
int i, a, b; cin>>i>>a>>b;
// si i!=0 calcula el área, si no el perímetro.
if ( i )
cout=calcularectangulo(a, b, area);
else
cout=calcularectangulo(a, b, perimetro);
}
Identifique los aportes que generó el LISP y reflexione sobre el origen de la
recursividad.
Al ver los mecanismos de entrada / salida para ambos lenguajes, como lo son
FORTRAN IV (o FORTRAN 66) y C, pudimos analizar las diferencias entre estos
dos lenguajes para la entrada y salida.
Con esto podemos decir, que los principios del diseño se deben aplicar de manera
flexible, ya que pueden existir aspectos no deseados.
Todas las estructuras de control tienen un único punto de entrada y un único punto
de salida. Esto es una de las cosas que permite que la programación se rija por
los principios de la programación estructurada.
If-Then-Else
Si la condición es verdadera, se ejecuta el bloque de sentencias 1, de lo contrario,
se ejecuta el bloque de sentencias 2.
IF (Condición) THEN
(Bloque de sentencias 1)
ELSE
(Bloque se sentencias 2)
END IF
Do-While
Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.
Do While (Condición)
(Bloque de sentencias)
Fin
Binding Time es cuando a una variable se le asignada su tipo (entero, string, etc.)
en un lenguaje de programación. Los compiladores tradicionales y ensambladores
proveen la unión temprana y asignan tipos en la compilación. Los lenguajes
orientados a objetos proveen ligamiento tardío (late-binding) y asignan tipos en
tiempo de ejecución cuando la variable recibe un valor del teclado u otra fuente.
Letra mayúscula A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Letra minúscula a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
Digito 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Carácter de subrayado _
CONCLUSIÓN
Referencia Electrónica
Apuntes Web y Notas de Programación - Dev Blog - Ricardo Obregón. [en línea].
Lenguajes interpretados vs Lenguajes Compilados: Desidia, capricho o tendencia.
http://robregonm.blogspot.com/2006/02/lenguajes-interpretados-vs-lenguajes.html
[consulta: 17 Sept. 2007].