Introducción a la Programación. Lenguaje de Máquina.

37
Introducción a la Programación

Transcript of Introducción a la Programación. Lenguaje de Máquina.

Page 1: Introducción a la Programación. Lenguaje de Máquina.

Introducción a la Programación

Page 2: Introducción a la Programación. Lenguaje de Máquina.
Page 3: Introducción a la Programación. Lenguaje de Máquina.

Lenguaje de Máquina

Page 4: Introducción a la Programación. Lenguaje de Máquina.

Lenguaje de Bajo Nivel

Page 5: Introducción a la Programación. Lenguaje de Máquina.

Lenguaje de Alto Nivel

Page 6: Introducción a la Programación. Lenguaje de Máquina.

Relación entre lenguajes

Page 7: Introducción a la Programación. Lenguaje de Máquina.

Faces de la Compilación

Page 8: Introducción a la Programación. Lenguaje de Máquina.

Intruducción a Java

Programar aplicaciones y algoritmos sencillos en JAVA conociendo:El entorno de programaciónLos tipos de datos primitivosOperadores básicos InstruccionesManejo de documentación

Page 9: Introducción a la Programación. Lenguaje de Máquina.

Aspectos generalesJava es... Lenguaje alto nivel Simple Orientado objetos Distribuido Interpretado Robusto

Neutro en arquitectura

Portable Seguro

Page 10: Introducción a la Programación. Lenguaje de Máquina.

Objetivos de la tecnología Java

Proveer un lenguaje estructuradoQue facilite la programación y evite erroresOrientado a Objetos

Proveer un ambiente para Incrementar la velocidad de desarrollo de

aplicacionesPortabilidad del código

Page 11: Introducción a la Programación. Lenguaje de Máquina.

Las metas tecnológicas de Java

Permitir ejecutar aplicaciones multi hilos Cargar clases dinámicamente, en el

momento que son requeridas Soportar dinámicamente cambios en

programas mientras la API se ejecuta Ofrecer una mejor seguridad

Page 12: Introducción a la Programación. Lenguaje de Máquina.

¿ Que puedo programar con Java ?

Aplicaciones independientes(Como cualquier otro lenguaje de propósito general)

Applets(Pequeñas aplicaciones que se ejecutan en un documento HTML)

Aplicaciones para intraredes, Cliente/Servidor Aplicaciones distribuidas en redes locales Internet.

Page 13: Introducción a la Programación. Lenguaje de Máquina.
Page 14: Introducción a la Programación. Lenguaje de Máquina.
Page 15: Introducción a la Programación. Lenguaje de Máquina.

Las metas principales de Java

La JVM (Java Virtual Machine) Recolector automático de memoria

(Garbage collector) Seguridad del código

Page 16: Introducción a la Programación. Lenguaje de Máquina.

Arquitectura Java es compilado e interpretado

Se convierte a un bytecodeUn intérprete lo ejecuta en la CPU

mi_prog.javami_prog.java

Compiladormi_prog.class

mi_prog.class

Intérprete

Page 17: Introducción a la Programación. Lenguaje de Máquina.

La máquina virtual Java

Provée las especificaciones de la plataforma de hardware

Lee el bytecode compilado que es independiente de la plataforma

Puede ser implementada como software ó hardware

Puede ser implementada como herramienta de desarrollo de Java ó como un navegador Web

Page 18: Introducción a la Programación. Lenguaje de Máquina.

La máquina virtual de Java

Provée definiciones para:Juego de instrucciones (CPU)Juego de registrosEl formato de los archivos de clasesEl colector automático de memoriaEspacio de memoria

Page 19: Introducción a la Programación. Lenguaje de Máquina.

Colector automático de memoria La memoria que no es usada se libera En otros lenguajes esto es

responsabilidad del programador Aspectos

Revisa y libera memoria no usadaEs automático

Page 20: Introducción a la Programación. Lenguaje de Máquina.

Entorno de desarrollo JDK

Herramienta básica JDK (Java Developer´s Kit)

El kit contiene básicamente:

El compilador: javac.exe El depurador: jdb.exe El intérprete: java.exe y javaw.exe El visualizador: appletviewer.exe El generador de documentación: javadoc.exe Un desensamblador de clases: javap.exe El generador de archivos fuentes y de cabecera (.c y .h) para clases nativas en

C: javah.exe

Page 21: Introducción a la Programación. Lenguaje de Máquina.

El ambiente de ejecución

Conocido como el JRE (Java Runtime Environment)

Realiza las siguiente tareas sobre el código:Carga VerificaExecuta

Page 22: Introducción a la Programación. Lenguaje de Máquina.

El cargador de clases

Carga las clases necesarias para la ejecución del programa

Distingue por nombre clases del sistema local de archivos de aquellas de la red Ofrece seguridad evitando caballos de Troya

Previene el acceso a areas restringidas de código Solo asigna memoria una vez que todas las clases han

sido cargadas en el sistema

Page 23: Introducción a la Programación. Lenguaje de Máquina.

El verificador del bytecode

Asegura que el códigoSea coherente con la especificación JVMNo viola la integridad del sistemaNo causa desbordamientos de pilasQue todos los tipos de parámetros son

correctosQue no hay conversion ilegal de datos

Ej. enteros a apuntadores.

Page 24: Introducción a la Programación. Lenguaje de Máquina.

Comparando C y Javavoid sort (int a[], int size){}//main#include <iostream.h>#include <stdlib.h>extern "C" long random();int main(int argc, char *argv[]){

if (argc =! 2){cerr <<"error"<<endl;exit (1);

}cout << "hola" << endl;return 0;

}

void sort (int a[], int size){}//main#include <iostream.h>#include <stdlib.h>extern "C" long random();int main(int argc, char *argv[]){

if (argc =! 2){cerr <<"error"<<endl;exit (1);

}cout << "hola" << endl;return 0;

}

import java.ioimport java.util.RandomClass Sorttest{

static void sort(int a[], int size){

}}public static void main (string

argv[]){if (argv.lenght != 1){

System.out.println("error");System.exit(1);

}System.out.println("hola");System.exit(0);

}

import java.ioimport java.util.RandomClass Sorttest{

static void sort(int a[], int size){

}}public static void main (string

argv[]){if (argv.lenght != 1){

System.out.println("error");System.exit(1);

}System.out.println("hola");System.exit(0);

}

Sort.C Sort.java

Page 25: Introducción a la Programación. Lenguaje de Máquina.

Declaración de clases

[modif_clase] class id_clase {bloque} modif_clase -

opcional: public, abstract ó final class -

Texto indicando declaración de clase id_clase -

nombre de la clase bloque -

variables y métodos conformando clase

Page 26: Introducción a la Programación. Lenguaje de Máquina.

Elementos Básicos de Java

Un programa esta formado por archivos fuentes y en cada uno habrá una o varias clases.

Declaración de la clase

class Hola {

Cuerpo de la clase

…..

} (fin de la clase)

Page 27: Introducción a la Programación. Lenguaje de Máquina.

Elementos Básicosde Java

Palabra reservada class (minusculas)

El nombre de la clase Hola (Primera mayuscula)

Es susceptible a Minúsculas y Mayúsculas

El cuerpo de la clase comienza con { y finaliza con }

Al final de cada instrucción lleva «punto y coma» ;

Dentro del cuerpo se declaran los atributos y métodos

Para que un programa se pueda ejecutar debe de contener el método main ( )

public static void main (String argumentos [] )

(Esta línea debe de estar en la declaración de la clase principal al inicio)

Page 28: Introducción a la Programación. Lenguaje de Máquina.

Tener en cuenta

Cuando una clase es pública se debe de guardar esta clase con idéntico nombre al de la clase: Ej.

public class Hola {

Cuerpo de la clase

…..

} (fin de la clase)

Page 29: Introducción a la Programación. Lenguaje de Máquina.

Practica Hola Mundo!

1. Se guardara el archivo con el mismo nombre de la clase principal, cuidando la inicial con mayúscula y extensión .java

Hola.java

2. Digita el código

class Hola {public static void main (String argumentos [ ] ){

System.out.println(“Hola, mundo! “); } \\fin método } \\fin clase

3. Se compila: javac Hola.javaNos genera el archivo Hola.class (Que contiene el código bytecode)

4. Se ejecuta: java Hola (El interprete buscará el archivo Hola.class)

Hola, mundo!

Page 30: Introducción a la Programación. Lenguaje de Máquina.

Explicación Hola Mundo! Declaración del método main():

public: Indica que el método es público, puede ser llamado desde otras clases. (Todo método main() debe ser público para poder ejecutarse desde el intérprete de Java (JVM)

static: Indica que la clase no necesita ser instanciada para poder utilizar el método al que califica, indica que el método es el mismo para todas las instancias que se pudieran crear.

void: Indica que la función main no devuelve ningún valor.

El método main debe aceptar siempre, como parámetro, un vector de string, que contendrá los posibles argumentos que se le pasen al programa en la línea de comandos, en este caso no se utiliza.

El métod main ( ) siempre se declara de la misma forma.

Page 31: Introducción a la Programación. Lenguaje de Máquina.

Explicación Hola Mundo!

System.out.println(“Hola, mundo! “);

println( ): Este método se encarga de mostrar los valores a través de la salida estándar, realiza un retorno de carro y nueva línea.

Este método pertenece al atributo out y se encuentra incluido en la clase System.

Page 32: Introducción a la Programación. Lenguaje de Máquina.

Gramática de Java

Comentarios En Java hay tres tipos de comentarios:

// comentarios para una sola línea

/* comentarios de una o más líneas */

/** comentario de documentación, de una o más líneas */

Page 33: Introducción a la Programación. Lenguaje de Máquina.

Tipos de Datos en Java (Numéricos)

byte 1Byte (8 bits) short 2 Bytes (16 bits) int 4 Bytes (32 bits) long 8 Bytes (64 bits)

float 4 Byte (32 bits) double 8 Bytes (64 bits)

Page 34: Introducción a la Programación. Lenguaje de Máquina.

Tipos de Datos en Java

Char (un caracter) 2Bytes por caracter String (cadena de caracteres) Se maneja con una clase Boolean (true / false) 1 bit

Page 35: Introducción a la Programación. Lenguaje de Máquina.

Coversión de Tipos de Datos

Las operaciones entre diferentes tipos de datos generalmen llevan a una conversion.

Page 36: Introducción a la Programación. Lenguaje de Máquina.

Definición de Variable

Una variable es un espacio de memoria que se reserva para almacenar un dato.

Dependiendo del dato que se quiera almacenar dependera el tipo de dato a utilizar para dicha variable.

Por norma general se deben almacenar como datos de tipo numérico, solo aquellos que intervengan en operaciones matemáticas.

Page 37: Introducción a la Programación. Lenguaje de Máquina.

Ejercicio

Diga el tipo de dato que se debe utilizar para almacenar la siguiente información:

• El número de páginas de un libro• El salario devengado de un empleado• La nota final de un estudiante de lógica• El estrato socioecinómico de una persona• El código de un estudiante• El porcentaje de utilidad de un producto• La edad de una persona• Una letra del abecedario