La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Figure: Lenguajes. Generaciones de lenguajes de programación.

Presentaciones similares


Presentación del tema: "Figure: Lenguajes. Generaciones de lenguajes de programación."— Transcripción de la presentación:

1 Figure: Lenguajes

2 Generaciones de lenguajes de programación

3 Evolución de los paradigmas de lenguajes

4 Paradigmas de programación -Imperativo: los programas tienen estados y hay sentencias que cambian ese estado -Lógico: lógica aplicada a sistemas expertos -Funcional: funciones matemáticas -Orientado al evento: estructura y acción del programa determinada por sucesos -Orientado al objeto -Orientado al aspecto: nivel de abstracción más alto, en desarrollo

5 Lenguaje imperativo

6 Proceso de traducción

7 Reconocedores de lenguaje Diagrama sintáctico de una sentencia if

8 Reconocedores de lenguajes Diagrama sintáctico de una expresión

9 Proceso completo de creación de un programa

10 Reconocedores de lenguajes Autómatas finitos Alfabeto: conjunto finito, no vacío, de símbolos a partir del cual se construyen las cadenas que se analizan. Flujo de entrada: cadena que analizará como una secuencia de símbolos, uno a la vez. Consiste en: S: conjunto finito de estados ∑: alfabeto de la máquina (autómata) Δ: función de transición de Sx ∑ a S I: un elemento de S, estado inicial F: un subconjunto de S, estados finales

11 Reconocedores de lenguajes Autómatas finitos representación pictórica S: conjunto finito de estados (r: identificación) ∑: alfabeto de la máquina (autómata) Δ: función de transición de Sx ∑ a S I: un elemento de S, estado inicial F: un subconjunto de S, estados finales i j Elemento de ∑ 0 i r

12 Reconocedores de lenguajes Autómatas finitos. Ejemplo: 0 1 a 2 E a b b {a, b} Reconocer cadenas: ab k a k=0,1,2,….. Cadena mínima: aa Se parte analizando el primer símbolo de la izquierda Se termina cuando se alcanza el último símbolo de la cadena Se cambia al estado que tiene el símbolo que se está analizando Si al terminar la cadena se está en un estado final, la cadena es reconocida S: {0, 1, 2, E} ∑: {a, b} I: {0} F: {2}

13 Reconocedores de lenguajes Autómatas finitos. Ejemplo: 0 2 a 3 E a b b {a, b} Reconocer cadenas: ab k a k>1 Cadena mínima: aba 1 b a S: {0, 1, 2, 3, E} ∑: {a, b} I: {0} F: {3}

14 Lenguajes orientados al objeto -Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. Al parecer, en este centro, trabajaban en simulaciones de naves, y fueron confundidos por la explosión combinatoria de cómo las diversas cualidades de diversas naves podían afectar unas a las otras.Simula 67Ole-Johan DahlKristen NygaardCentro de Cómputo NoruegoOslo

15 Lenguajes orientados al objeto -Herencia: jerarquía de clases, los objetos heredan propiedades las clases que le preceden - Polimorfismo: objetos de clases distintas comparten nombres de comportamiento que se diferencian en algunos aspectos: ej.: moverse, vehículos/personas -Encapsulamiento: esconder detalles de una clase de objeto a otras clases de objeto: abierto, protegido, cerrado, semicerrado.

16 Herencia y jerarquía de clases en Java (1) Una clase puede se extendida por otra clase más específica: Ejemplo: Esfera +-> burbuja | +->pelota +-> futbol | +-> tenis

17 Slide 5-17 Copyright © 2003 Pearson Education, Inc. Herencia y jerarquía de clases en Java (2) extendida significa que se le agregan detalles más específicos pero las clases herederas pueden hace uso de los recursos de la clase extendida. Estos pueden ser variables y/o métodos Reglas de visibilidad de variables y métodos: public : se puede hacer referencia desde cualquier clase private : sólo se pueden referenciar desde instrucciones en la clase que se ha declarado protected: sólo se puede referenciar desde una subclase locales al método: sólo pueden ser referenciadas desde el interior del método en que se declaran

18 Ventana gráfica (1) class Pizarra extends Frame { Pizarra(){ } } Esta clase aumentará los atributos de una clase existente en java.awt Al crear un objeto de clase Frame y activarlo, se abre una ventana, lo mismo ocurre con la nueva clase Pizarra

19 Slide 5-19 Copyright © 2003 Pearson Education, Inc. class Pizarra extends Frame implements MouseListener { Pizarra(){ } } La implementación de una interfaz (MouseListener), obliga a agregarle unos métodos con nombre estándar que se ejecutan cuando se usan los botones del mouse Ventana gráfica (eventos de mouse)

20 Slide 5-20 Copyright © 2003 Pearson Education, Inc. class Pizarra extends Frame implements MouseListener { Pizarra(){ } public void mousePressed(MouseEvent e){;] public void mouseClicked(MouseEvent e){;} public void mouseReleased(MouseEvent e){;} public void mouseEntered(MouseEvent e){;} public void mouseExited(MouseEvent e){;} } Estos métodos estándar se ejecutan cuando se usan los botones del mouse Tal como está la clase arriba, los eventos del mouse no serán recibidos y hay hacer lo que sigue: Ventana gráfica (3)

21 Slide 5-21 Copyright © 2003 Pearson Education, Inc. class Pizarra extends Frame implements MouseListener { Pizarra(){ this.addMouseListener(this); } public void mousePressed(MouseEvent e){;} public void mouseClicked(MouseEvent e){;} public void mouseReleased(MouseEvent e){;} public void mouseEntered(MouseEvent e){;} public void mouseExited(MouseEvent e){;} } En el constructor, se agrega esta línea que habilita la recepción de eventos de mouse Significa: esta clase atiende los eventos de esta clase (puede ser que una clase atienda los eventos de otra) Ventana gráfica (4)

22 Slide 5-22 Copyright © 2003 Pearson Education, Inc. class Pizarra extends Frame implements MouseListener { int x=0, y=0; Pizarra(){ this.addMouseListener(this); } public void mousePressed(MouseEvent e){;} public void mouseClicked(MouseEvent e){;} public void mouseReleased(MouseEvent e){;} public void mouseEntered(MouseEvent e){;} public void mouseExited(MouseEvent e){;} public void paint(Graphics g){ g.setColor(Color.red); g.fillRect(x,y,60, 30); } Otro método de utilidad para una ventana es paint El método paint es llamado automáticamente cada vez que la ventana se activa Ventana gráfica (5)

23 Slide 5-23 Copyright © 2003 Pearson Education, Inc. class Pizarra extends Frame implements MouseListener { int x=0, y=0; Pizarra(){ this.addMouseListener(this); } public void mousePressed(MouseEvent e){ x = e.getX(); y = e.getY(); repaint(); } public void mousePressed(MouseEvent e){;} public void mouseClicked(MouseEvent e){;} public void mouseReleased(MouseEvent e){;} public void mouseEntered(MouseEvent e){;} public void mouseExited(MouseEvent e){;} public void paint(Graphics g){ g.setColor(Color.red); g.fillRect(x,y,60, 30); } El método paint es llamado indirectamente si se llama directamente repaint Ventana gráfica (6)

24 Slide 5-24 Copyright © 2003 Pearson Education, Inc. class Pizarra extends Frame implements MouseListener { //Lista de objetos puede ir acá Pizarra(){ this.addMouseListener(this); } public void mousePressed(MouseEvent e){ //agregar objetos a lista puede ir en este u otro método repaint(); } public void mousePressed(MouseEvent e){;} public void mouseClicked(MouseEvent e){;} public void mouseReleased(MouseEvent e){;} public void mouseEntered(MouseEvent e){;} public void mouseExited(MouseEvent e){;} public void paint(Graphics g){ //dibujar la lista de objetos puede ir en este método } El método paint puede dibujar muchos objetos si se desea Ventana gráfica (7)

25 Slide 5-25 Copyright © 2003 Pearson Education, Inc. Crear clase nodo class Nodo { int x, y; public Nodo siguiente; Nodo(int xx, int yy){ x = xx; y = yy; } public void dibujarNodo(Graphics g){ } ysiguientex yx

26 Crear una lista: 2.- aux = new Nodo( ); objeto aux null lista 3.- aux.siguiente = lista; 4.- lista = aux; objeto aux null lista objeto aux null lista 5.- aux = new Nodo( ); objeto null lista objeto aux 6.- aux.siguiente = lista; objeto null lista objeto aux 1.- Nodo aux, lista; null aux ¿Qué se debe repetir?


Descargar ppt "Figure: Lenguajes. Generaciones de lenguajes de programación."

Presentaciones similares


Anuncios Google