Download Introducción a los lenguajes de programación

Document related concepts

Axiom wikipedia , lookup

Programación funcional wikipedia , lookup

Julia (lenguaje de programación) wikipedia , lookup

Clausura (informática) wikipedia , lookup

Lisp wikipedia , lookup

Transcript
Introducción a los lenguajes de
programación
Informática aplicada al medio ambiente
curso 2010/2011
Lenguajes de programación y
traductores

Niveles de abstracción en lenguajes de
programación: bajo-alto nivel.

Traductores: compilador e intérprete.

Proceso de compilación: errores.

Clasificación de los lenguajes.
Informática aplicada al Medio Ambiente
2
Máquina de turing


Modelo formal de un computador (Alan Turing
1936)
Elementos:

Cinta infinita dividida en celdas con valores

Autómata

Estado y Valor cinta → Nuevo estado, nuevo
valor y avance (izquierda o derecha)

Describe cualquier algoritmo (universal)

Ejemplo: http://ironphoenix.org/tril/tm/
Informática aplicada al Medio Ambiente
3
Niveles de lenguajes: bajo nivel

Código máquina

Único lenguaje que entiende el ordenador.

Difícil de entender para los humanos.

Permite aprovechar al máximo los recursos.

Instrucciones codificadas en binario.

Particular de cada procesador.
Informática aplicada al Medio Ambiente
4
Niveles de lenguajes: bajo nivel

Ensamblador:




Representación mnemotécnica del código máquina:
Particular de cada procesador.
Cada instrucción en ensamblador equivale a una
instrucción en lenguaje máquina.
Símbolos para representar las instrucciones y para
las direcciones de memoria.
Se requiere un programa traductor. (llamado
también ensamblador)
Informática aplicada al Medio Ambiente
5
Ejemplo de código













...
subl $8, %esp
andl $-16, %esp
subl $28, %esp
pushl $.LC0
call printf
addl $12, %esp
leal -4(%ebp), %ecx
pushl %ecx
leal -8(%ebp), %edx
pushl %edx
pushl $.LC1 Informática aplicada al Medio Ambiente
...
6
Niveles de lenguajes: alto nivel






Independientes de la estructura concreta del
ordenador.
Se aproxima más al lenguaje natural.
Utiliza variables y estructuras de datos para
representar la información.
Utiliza estructuras de control: condicionales y
bucles.
Se han de traducir a lenguaje máquina.
Una instrucción del LA se traduce a varias
instrucciones en lenguaje máquina (LB).
Informática aplicada al Medio Ambiente
7
Ejemplos de código
ADA
with Ada.Text_IO;
C++
#include <iostream>
using namespace std;
procedure Hola_Mundo is
begin
Ada.Text_IO.Put("¡Hola, mundo!");
end Hola_Mundo;
int main() {
cout << "¡Hola, mundo!" << endl;
}
Informática aplicada al Medio Ambiente
8
Ejemplos de código
MATLAB
function ejemplo1()
% Funcion para sumar dos números
%
x = input('Introduzca el valor de x e y: ')
y = input('')
z=x+y
disp(['El resultado de hacer x+y es: ' int2str(z)])
Informática aplicada al Medio Ambiente
9
Programas traductores


Pasan del lenguaje de alto nivel al código
máquina correspondiente.
Pueden ser:

Compiladores

Interpretes
Informática aplicada al Medio Ambiente
10
Compiladores



Traducen completamente un programa fuente,
generando el programa objeto equivalente en
lenguaje máquina.
El programa objeto se guarda en un fichero y
se puede ejecutar sin necesidad del
compilador.
Ejemplos de lenguajes compilados: C, C++,
Pascal, Fortran…
Informática aplicada al Medio Ambiente
11
Intérpretes



Traduce y ejecuta instrucción a instrucción en
el interprete.
No se guarda ningún fichero de programa
objeto:

Menos eficiente: más lento.

Más interactivo.
Ejemplo de lenguajes interpretados: Java (no
del todo), Javascript, Matlab, Basic, PHP…
Informática aplicada al Medio Ambiente
12
Interpretación/compilación y
ejecución

Interpretado

Análisis:





Compilado

Léxico
Sintáctico
Semántico
Análisis:




Generación de código

Ejecución de código
Ejecución: Es
necesario tener los
fuentes y los datos.



Léxico
Sintáctico
Semántico
Generación y
optimizacón de código
Ejecución de código
Ejecución: Solo es
necesario tener el
ejecutable y los datos
Informática aplicada al Medio Ambiente
13
Tipos de errores de compilación

Léxicos: palabras no reconocidas


Sintácticos: construcciones incorrectas.


whyle (x>0)
if (a>b>c)
Semánticos: construcciones correctas, pero sin
sentido.

int x;

...

x[3] = 5;
Informática aplicada al Medio Ambiente
14
Errores no detectados por el
compilador

Lógicos: algoritmo incorrecto. Ej. Intercambiar a y b
:





/*MAL*/
temp = a;
b = a;
b = temp;
/*OK*/
temp = a;
a = b;
b = temp;
De ejecución: relacionados con situaciones de la
ejecución del programa:




División por 0
Raíz cuadrada de un número negativo
Acceder a un elemento inexistente de un vector
...
Informática aplicada al Medio Ambiente
15
Lenguajes de alto nivel según el
ámbito de su aplicación:

Científicos: Fortran, Matlab, Mathematica.

De gestión: COBOL, SQL.

De uso docente: Logo, Pascal.

De inteligencia artificial: LISP, PROLOG.

De propósito general: Java, C / C++…
Informática aplicada al Medio Ambiente
16
Primeros programas




Charles Babagge → Máquina analítica (siglo
XIX)
Ada Lovedby se considera la primera
programadora de la historia
Se empleaban tarjetas perforadas
ADA es un lenguaje moderno, departamento de
defensa EE.UU
Informática aplicada al Medio Ambiente
17
Breve Historia Lenguajes
Programación



1943-46: Sistema de codificación del ENIAC
1954 Definición del Primer Lenguaje de Alto
Nivel: FORTRAN
1957 Primera implementación de FORTRAN.
Desarrollado por IBM
Informática aplicada al Medio Ambiente
18
Breve Historia Lenguajes
Programación

Años 60 Desarrollo de la programación
estructurada:

Se populariza en los años 70

A partir de las ideal del lenguaje ALGOL

Programas son construidos con tres
estructuras de control de bajo nivel:

Bloque o sucesión de instrucciones

Ejecución condicional: if- then – else

Bucles de instrucciones de ejecución repetitiva
condicional: while, for
Informática aplicada al Medio Ambiente
19
Breve Historia Lenguajes
Programación


Incorporan la programación estructura en los
lenguajes no estructurados: FORTRAN 77,
COBOL, BASIC.
Aparecen nuevos lenguajes: PASCAL,
MODULA y C.
Informática aplicada al Medio Ambiente
20
C

Autores: Kernighan & Ritchie (1972)

Lenguaje de alto nivel estructurado:




Con funciones
Objetivo inicial: Utilización para la
programación de sistemas operativos..
Windows, Unix.
Se buscó deliberadamente una proximidad con
lenguajes de nivel más bajo: ensamblador,
máquina.
¿Por qué sigue siendo útil C? Simple, versátil.
Informática aplicada al Medio Ambiente
21
Después de C: POO

Años 80: Introduce la programación orientada a
objetos (POO)

Primer lenguaje: Smalltalk 1972






Objetos con memoria propia
Comunicación mediante mensajes
Herencia
Capacidad de procesamiento
Stroustrup propone la extensión del C para
incorporar la orientación a objetos: Surge C++
edificado sobre los cimientos del C
Años 90: Se afianzan las técnicas de la POO:

C++, Aparece JAVA
Informática aplicada al Medio Ambiente
22
Introducción a Matlab



Se crea a finales de los 70 en University of
New Mexico por Cleve Moler.
Idea inicial: simplificar el acceso a funciones de
análisis numérico en FORTRAN.
En 1984 se funda MathWorks y se empieza a
comercializar
Informática aplicada al Medio Ambiente
23
Introducción a Matlab



Acrónimo de MATrix LABoratory
Matlab es un entorno de cálculo numérico y un
lenguaje de programación.
Permite:

Fácil manejo de matrices

Creación de gráficos 2D y 3D de funciones y datos

Implementar funciones, algoritmos y programas

Creación de interfaces de usuario

Interaccionar con otros lenguajes
Informática aplicada al Medio Ambiente
24
Introducción a Matlab


Ventajas

Interactivo

Fácil y rápido de programar

Hay muchas funciones disponibles (ToolBoxes)

Gráficos
Inconvenientes


Lento en ejecución
Propietario: Se necesita licencia. Opciones libres:
Octave/QtOctave y SciLab
Informática aplicada al Medio Ambiente
25