Figure: Lenguajes. Generaciones de lenguajes de programación.
Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática...
Transcript of Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática...
![Page 1: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/1.jpg)
Introducción a los lenguajes de programación
Informática aplicada al medio ambiente curso 2010/2011
![Page 2: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/2.jpg)
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.
Traductores: compilador e intérprete. Proceso de compilación: errores. Clasificación de los lenguajes.
![Page 3: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/3.jpg)
Informática aplicada al Medio Ambiente 3
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/
![Page 4: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/4.jpg)
Informática aplicada al Medio Ambiente 4
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.
![Page 5: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/5.jpg)
Informática aplicada al Medio Ambiente 5
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)
![Page 6: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/6.jpg)
Informática aplicada al Medio Ambiente 6
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 ...
![Page 7: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/7.jpg)
Informática aplicada al Medio Ambiente 7
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).
![Page 8: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/8.jpg)
Informática aplicada al Medio Ambiente 8
Ejemplos de código
C++
#include <iostream>using namespace std; int main() { cout << "¡Hola, mundo!" << endl;}
ADA
with Ada.Text_IO; procedure Hola_Mundo is begin Ada.Text_IO.Put("¡Hola, mundo!"); end Hola_Mundo;
![Page 9: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/9.jpg)
Informática aplicada al Medio Ambiente 9
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 + ydisp(['El resultado de hacer x+y es: ' int2str(z)])
![Page 10: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/10.jpg)
Informática aplicada al Medio Ambiente 10
Programas traductores
Pasan del lenguaje de alto nivel al código máquina correspondiente.
Pueden ser: Compiladores Interpretes
![Page 11: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/11.jpg)
Informática aplicada al Medio Ambiente 11
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…
![Page 12: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/12.jpg)
Informática aplicada al Medio Ambiente 12
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…
![Page 13: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/13.jpg)
Informática aplicada al Medio Ambiente 13
Interpretación/compilación y ejecución
Interpretado Análisis:
Léxico Sintáctico Semántico
Generación de código Ejecución de código
Ejecución: Es necesario tener los fuentes y los datos.
Compilado Análisis:
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
![Page 14: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/14.jpg)
Informática aplicada al Medio Ambiente 14
Tipos de errores de compilación
Léxicos: palabras no reconocidas whyle (x>0)
Sintácticos: construcciones incorrectas. if (a>b>c)
Semánticos: construcciones correctas, pero sin sentido. int x; ... x[3] = 5;
![Page 15: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/15.jpg)
Informática aplicada al Medio Ambiente 15
Errores no detectados por el compilador
Lógicos: algoritmo incorrecto. Ej. Intercambiar a y b :
/*MAL*/ /*OK*/ temp = a; temp = a; b = a; a = b; b = temp; 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 ...
![Page 16: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/16.jpg)
Informática aplicada al Medio Ambiente 16
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++…
![Page 17: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/17.jpg)
Informática aplicada al Medio Ambiente 17
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
![Page 18: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/18.jpg)
Informática aplicada al Medio Ambiente 18
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
![Page 19: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/19.jpg)
Informática aplicada al Medio Ambiente 19
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
![Page 20: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/20.jpg)
Informática aplicada al Medio Ambiente 20
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.
![Page 21: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/21.jpg)
Informática aplicada al Medio Ambiente 21
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.
![Page 22: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/22.jpg)
Informática aplicada al Medio Ambiente 22
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
![Page 23: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/23.jpg)
Informática aplicada al Medio Ambiente 23
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
![Page 24: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/24.jpg)
Informática aplicada al Medio Ambiente 24
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
![Page 25: Introducción a los lenguajes de programaciónarantxa.ii.uam.es/~iama/lenguajes.pdf · Informática aplicada al Medio Ambiente 2 Lenguajes de programación y traductores Niveles de](https://reader030.fdocument.pub/reader030/viewer/2022021509/5a7a392c7f8b9a05538b87a8/html5/thumbnails/25.jpg)
Informática aplicada al Medio Ambiente 25
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