Tema 1[1][1]

  • View
    97

  • Download
    1

Embed Size (px)

Transcript

  • Tema 1: Introduccin

    Antonio J. Sierra

  • Indice

    1. Introduccin histrica. Origen de Java.2. Caractersticas de Java.3. La mquina virtual de Java. Bytecode.4. Palabras reservadas.5. Introduccin a la programacin orientada a

    objetos.6. Diferencias entre C/C++ y Java.7. Ejemplo: Hello world, en el modelo de

    aplicacin clsico.

  • Lenguajes de programacin Modelo computacional: coleccin de valores y operaciones Tipos de modelos computacionales (Paradigma): imperativo, funcional, lgico Computacin: aplicacin de una secuencia de operaciones a un valor para obtener otro

    valor Programa: especificacin de una computacin Lenguaje de programacin: notacin para escribir programas Sintaxis de un lenguaje de programacin: estructura o forma de los programas Semntica de un lenguaje de programacin: relaciones entre un programa y un modelo

    de computacin Pragmtica de un lenguaje de programacin: grado de xito con el que un programa

    cumple sus objetivos tanto en su fidelidad con el modelo de computacin subyacente como su utilidad para los programadores

  • Modelo de Programacin.

    Un modelo de programacin provee (y determina) la visin y mtodos de un programador en la construccin de un programa o subprograma.

    Los diferentes paradigmas son el resultado de los distintos estilos de programacin y las diferentes formas de pensar en la solucin de problemas (con la solucin de mltiples problemas se construye una aplicacin).

  • Modelo Imperativo

    Describe la programacin como una secuencia instrucciones o comandos que cambian el estado de un programa.

    El cdigo mquina en general est basado en el paradigma imperativo.

    Su contrario es el paradigma declarativo. En este paradigma se incluye el paradigma

    procedimental (procedural) entre otros.

  • Ejemploa=2b=3c=4

    Programaa=b+cb=b+1

    Estado 0

    a=7b=3c=4

    a=7b=4c=4

    Estado 1

    Estado 2

    a=b+c

    b=b+1

  • Programacin Estructurada La programacin se divide en bloques (procedimientos y

    funciones) que pueden o no comunicarse entre s. Adems la programacin se controla con secuencia,

    seleccin e iteracin. Permite reutilizar cdigo programado y otorga una mejor

    compresin de la programacin. Es contrario al paradigma no estructurado, de poco uso,

    que no tiene ninguna estructura, es simplemente un bloque, como por ejemplo, los archivos batch (.bat)

  • Modelo Declarativo

    No se basa en el cmo se hace algo (cmo se logra un objetivo paso a paso), sino que describe (declara) cmo es algo. En otras palabras, se enfoca en describir las

    propiedades de la solucin buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solucin.

    Es ms complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solucin de determinados problemas.

  • Programacin Declarativa

    Usa bloques de construccin como las funciones, la recursin o la equipacin de patrones, para especificar ms la solucin que su clculo de bajo nivel.

    Tipos: Lenguajes funcionales Lenguajes lgicos

  • Programacin Funcional Usan funciones libres de efectos secundarios como bloques primitivos

    de construccin de programas. Estas funciones pueden aplicarse, construirse y pasarse como argumento a

    otras funciones. Concibe a la computacin como la evaluacin de funciones

    matemticas y evita declarar y cambiar datos. En otras palabras, hace hincapi en la aplicacin de las funciones y

    composicin entre ellas, ms que en los cambios de estados y la ejecucin secuencial de comandos (como lo hace el paradigma procedimental).

    Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones. Haskell, Miranda, Scala, Lisp, Scheme,Ocaml, SAP, Standard ML,

    Erlang,R, F#

  • Paradigma lgico

    Se basa en la definicin de reglas lgicas para luego, a travs de un motor de inferencias lgicas, responder preguntas planteadas al sistema y as resolver los problemas. Ej.: prolog.

  • Programacin Orientado a Objetos

    Basado en la idea de encapsular estado y operaciones en objetos.

    En general, la programacin se resuelve comunicando dichos objetos a travs de mensajes (programacin orientada a mensajes).

    Se puede incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos, que adems posee herencia y subtipos entre objetos. Ej.: Simula, Smalltalk, C++, Java, Visual Basic .NET, etc.

    Su principal ventaja es la reutilizacin de cdigos y su facilidad para pensar soluciones a determinados problemas.

  • Introduccin histrica(I)

    CPLBCPL B C C++ Java CPL (Combined Programming Language):

    1960, basado en ALGOL 60. BCPL (Basic Combined Programming

    Language ): Martin Richards, 1966. B: Ken Thompson y Dennis Ritchie,

    reemplazado por C (1969).

  • Introduccin histrica(II)

    C: Bell Telephone Laboratories (1972) por Dennis Ritchie para usarlo con Unix Propsito general, Estructurado por bloques, Imperativo, Procedimientos

  • Introduccin histrica(II)

    C++: Bjarne Stroustrup (1979) Bell Labs. Como mejora a C: C con clases. C++ in 1983. Las mejoras comenzaron con la adicin de clases,

    funciones virtuales, sobrecarga de operadores, herencia mltiple, plantillas, y manejo de excepciones.

    C++ fue ratificado como estndar en 1998 como ISO/IEC 14882:1998, la actual versin es de 2003, ISO/IEC 14882:2003.

  • Java Sun Microsystems (1995) Sintaxis deriva de C y C++. Orientado a Objetos Compilado a bytecode. Ejecutado sobre cualquier

    Java virtual machine (JVM). Sobre cualquier arquitectura.

    Desde 1995 Sun desarrolla e implementa compiladores, mquinas virtuales y librera de clases.

  • A-0FORTRAN Mark I Autocode

    FLOW-MATIC General Problem SolverFORTRAN II

    FORTRAN IV

    ALGOL/ALGOL58

    ALGOL60

    JOSS

    FORTRAN 66

    ALGOL68FORTRAN 77

    PL/1

    PL/C

    FACT COMTRAN

    COBOLSNOBOL

    BASICSNOBOL 4 MUMPS COWSEL

    POP-1

    POP-2PILOT

    INTERCAL

    ML

    Prolog

    MercuryBourne

    Shell DBase

    DBase-II

    DBase-III

    DBase-IV

    dBase 5.0

    VULCAN

    BETA

    Occam

    Occam2

    Clipper Foxpro

    PARADOX

    COMAL

    GRASS

    AltairBASIC

    Gambas

    VisualBasic

    VB Script

    Ada 95

    PascalConcurrent

    Pascal

    Ada

    Turbo Pascal

    Green

    Ada 83ICON

    MODULA

    MODULA-2

    FORTRAN 90MODULA-3

    Oberon

    Oberon2

    TurboPascalOOP

    Borland Pascal

    ComponentPascal

    Delphi

    ELAN

    APL

    CPL

    BCPL

    B

    B BPL

    C

    D

    Unix-Shell

    sh

    csh ksh bashawk

    Ratfor

    nawk

    gawkPerl

    REXX

    PHP

    PHP/F1

    Perl 5

    Tcl

    J FL K

    NGLS2

    Coyote

    Smalltalk-80

    Smalltalk-72

    Objective C

    C++

    ANSI CISO C90

    MirandaHaskell

    MetaHaskell

    ISO C95

    ISO C99C#

    Nemerle

    ECMAScriptJavaScriptLiveScript

    Java Self

    Pike

    FP

    LPC

    JoyFactor

    Simula OOP

    PostScript

    SIMULA

    Simula-67

    Forth

    Scheme

    LISP

    Logo

    Common LispTRAC

    Ada lovelace

    Plankalkul

  • Caractersticas de Java Simple y seguro Portable OOP Robusto Multihilo Neutral Interpretado Rendimiento Distribuido dinmico

  • Interprete & Compilador

    Un Intrprete es un traductor que toma el programa fuente y lo traduce y ejecuta lna a lnea.

    Basic, Java, Smalltalk.

    Un Compilador de un programa que traduce los programas escritos en lenguaje de alto nivel a lenguaje mquina.

    C, C++, Pascal, Fortran, Cobol.

    Programa Fuente

    Intrprete

    Traduc.y ejec. Lnea a lnea

    Programa Fuente

    Compilador

    Programa Objeto

  • La mquina virtual de Java: Bytecode.

    Programa Java

    Compilador

    Intrprete

    MiPrograma.java

    MiPrograma.class

    00110100

  • Programa Java Compilador

    Intrprete

    MiPrograma.java

    PC-compatibleWindows NT

    Intrprete Intrprete

    Sun UltraSolaris

    Power MacintoshSystem 8

  • Application Programming Interface (API)

    Una Application Programming Interface (API) es un conjunto de funciones, procedimientos o clases que un sistema operativo, librera o servicio proporciona para soportar peticiones realizadas por un programa de ordenador.

    Son dependientes de lenguaje, ya que estn disponibles solo en un lenguaje de programacin particular. Utilizan la sintaxis y elementos de los lenguajes de programacin para hacer que sea adecuada para usarla en un contexto particular.

    Son independientes del lenguaje, ya que estn escritas en una forma en que pueden ser llamadas desde diferentes lenguajes de programacin. Esta caracterstica se conoce como API al estilo servicio, ya que no limita a un proceso particular o sistema y est disponible como una llamada a procedimiento remoto.

  • La mquina virtual de Java

    Mquina Virtual de Java

    Programa Java

    API Java

    Plataforma basada en hardware

    Plataforma Java

  • La mquina virtual de Java

    http://java.sun.com

  • Palabras reservadas (I)abstract Especifica la clase o mtodo que se va a implementar ms tarde en una subclase.boolean Tipo de dato que slo puede tomar valores true o false.break Sentencia de control para salirse de los bucles.byte Tipo de dato que soporta valores en 8 bits.byvalue Reservada para