Lenguaje

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

El lenguaje y sus origenes

Introducción al lenguaje
Un lenguaje de programación es un convenio entre personas
que puede definirse así:
Conjunto de reglas o normas que permiten asociar a cada
programa correcto un cálculo que será llevado a cabo por un
ordenador (sin ambigüedades).
• por tanto, un lenguaje de programación es un convenio o
acuerdo acerca de cómo se debe de interpretar el
significado de los programas de dicho lenguaje
• muchas veces se confunden los lenguajes con los
compiladores, intérpretes o con los entornos de desarrollo
de software
El convenio suele estar reflejado en un documento (un libro)
que se hace público y mediante el cual se determinan las
reglas de interpretación correcta de los programas
• algunos lenguajes están definidos por un documento
estandarizado en un organismo oficial como ISO (p.ej. C++
es el estándard ISO/IEC 14882, de 1998 )
• en otros casos la descripción del lenguaje no está
oficialmente estandarizada, el lenguaje se define por el
documento de referencia que lo describe (pej. Java,
descrito en este libro http://java.sun.com/docs/books/jls/)
El lenguaje como una función que asigna
significado

Antecedentes
Los primeros lenguajes de programación surgen debido a las
dificultades de la programación directa en código máquina o con
ensambladores básicos.
Revisaremos tres de los primeras construcciones que pueden
llamarse lenguajes de programación
El lenguaje Plankalkül

Puede considerarse el primer lenguaje específicamente


diseñado para la programación de ordenadores.
• Diseñado por Konrad Zuse en Alemania, entre 1943 y 1945.
Inicialmente pensado para sus ordenadores Z1, Z2, que
fueron de los primeros de la historia.
• No se pudo implementar un compilador o interprete para
los Z por los problemas de la postguerra alemana.
• No se publicó hasta 1972, y el primer (y único) intérprete se
implementó en 2000.

Conceptos que introduce

Introduce varios de los conceptos básicos de la programación de


alto nivel:
• Variables: sin declaración explícita, con nombres de una
letra (R,V o Z) seguida de un dígito
• Expresiones con operadores infijos
• Sentencia de asignación de una expresión a una variable
• Ejecución condicional de sentencias (if sin else)
• Bucles indefinidos (mediante sentencias equivalentes a
continue o break, no con una expresión lógica)
• Subprogramas que producen un resultado
Conceptos que introduce: tipos de datos

• Tipos de datos definidos por el usuarios (con declaración


explícita de la representación como secuencias de bits),
también llamados estructuras
• Tipos de datos (estructuras) predefinidos: enteros, enteros
en BCD, reales, números complejos, números racionales
(con y sin signo)
• Pares, arrays y listas (con elementos de tipo arbitrario),
implementados usando árboles binarios.

El lenguaje Shortcode
Es el lenguaje usado por el primer programa intérprete
conocido..

• Desarrollado en EE.UU por John Mauchly en 1949, fue


usado en el UNIVAC I.
• El ordenador UNIVC I tenía una longitud de palabra de 72
bits. Las instrucciones de asignación con expresiones
complejas se codifican en dichas palabras de 72 bits.
• Se buscaba la facilidad de programación a cambio de
perder eficiencia en tiempo (ya que se interpretaba)
El lenguaje A-0
Diseñado e implementado por Grace Hopper entre 1951 y 1953
para la compañía UNIVAC, se diseño para el primer compilador
(que generaba código máquina a partir de especificaciones de
más alto nivel en A-0)
• La entrada del compilador es un programa con llamadas a
subrutinas:
1. Las subrutinas se identifican por nombres
2. Podían incluir lecturas o escrituras sobre parámetros
formales
• La salida es código máquina con las subrutinas expandidas
en el lugar de las llamadas, y con las referencias a los
parámetros particularizadas a los actuales
• Esto se hacía antes manualmente, con muy alta
probabilidad de errores.

Los primeros lenguajes de programación


• Fortran
• Algol
• Simula
Lenguajes pioneros

• Existen multitud de lenguajes, y la mayoría se han diseñado


incorporando nuevos conceptos
• En los primeros lenguajes casi todos los conceptos eran
nuevos
• Seleccionamos tres por la relevancia a largo plazo de los
conceptos que introdujeron:
1. Fortran: introduce la programación de alto nivel
2. Algol: Introduce la programación estructurada
3. Simula: Introduce la programación orientada a objetos
El lenguaje Fortran
Es el primer lenguaje de alto nivel con amplia difusión y amplia
disponibilidad de compiladores. La motivación de su diseño fue
sustituir la programación en ensamblador.

• Diseñado e implementado por primera vez entre 1955 y


1957 en IBM, para el IBM 704.
• Ha tenido una amplísima difusión y uso
• Durante muchos años se ha considerado el lenguaje por
excelencia para aplicaciones científicas, ha tenido muchas
ampliaciones.
Conceptos introducidos en Fortran

• Variables cuyo nombre seria de hasta 6 caracteres (2


inicialmente). El nombre determina implícitamente el tipo,
que solo podía ser entero o de coma flotante.
• Sentencia de asignación con expresiones infijas a la derecha
(incluyendo sub-expresiones entre paréntesis.
• Vectores o arrays uni o bi-dimensionales.
• Sentencias IF-GOTO con expresiones aritméticas,
incluyendo operadores aritméticos relacionales
• Sentencia DO (bucles definidos).
• Subrutinas definidas por el usuario (sin compilación
separada)
• Entrada y de salida con formato.
Ejemplo de programa en Fortran
Calcula el producto y la suma de los elem. de un array, e imprime
0 (producto ≤ suma), o 1 (producto > suma) :
El lenguaje Algol
Es el lenguaje que introduce lo que hoy conocemos como
programación estructurada. La motivación inicial era mejorar
algunas limitaciones de Fortran.
• Definido por un comité internacional en varias reuniones
entre 1958 y 1962.
• Es el primer lenguajes descrito formalmente por BNFs
• No fue apoyado por IBM, y se difundió poco, aunque se uso
mucho para comunicar algoritmos
• Tuvo un impacto enorme en posteriores lenguajes: Pascal,
Modula, Ada, C, Simula

Conceptos introducidos en Algol

• I Declaración explícita de variables y parámetros,


incluyendo su tipo.
• I Arrays multidimensionales, con posibilidad de fijar el
rango de índices.
• I Agrupación de sentencias en sentencias compuestas
delimitadas por las palabras clave begin-end (estructura de
bloques).
• I Sentencia if-else, bucles definidos e indefinidos con
posibilidad de anidamiento arbitrario.
• I Variables de ámbito restringido a los bloques.
• I Paso de parámetros por valor y por nombre
• I Procedimientos recursivos.

Ejemplo de (sub)programa en Algol (1/2)


Subprograma de nombre ejemplo que acepta dos parámetros
enteros:

Ejemplo de (sub)programa en Algol (2/2)


El lenguaje Simula
Es el lenguaje que introduce los conceptos esenciales de la
programación orientada a objetos.
• I Basado en Algol para todos los aspectos de la
programación estructurada.
• I Su diseño fue motivado por la necesidad de crear software
de simulación.
• I Fue diseñado e implementado en el Centro de
Computación Noruego de Oslo entre 1962 y 64, por Kristen
Nygaard y Ole-Johan Dahl.
• I No se ha usado mucho para software comercial, sí para
comunicar algoritmos.
• I Influencia decisiva en lenguajes OO: Smalltalk, Eiffel, C++,
Java.

Conceptos introducidos en Simula


• I Definición de clases como variables de instancia más
metodos para acceder a ellas
• I Los objetos como variables instancias de una clase
• I Herencia o extensión de clases.
• I Métodos virtuales (polimorfismo de herencia).
• I Corutinas (es un concepto de la programación
concurrente)

Ejemplo de programa en Simula (1)


Clase de nombre rectángulo con dos atributos reales (ancho y
alto) y un método que devuelve un valor lógico (escuadrado).

Ejemplo de programa en Simula (2)

También podría gustarte