Introducción a los lenguajes de programación

Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de abstracción en lenguajes de programación: bajo-alto nivel...

26 downloads 437 Views 182KB Size
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 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