Tema 2: Conceptos de programación y lenguajes

Anuncio
Metodología y Tecnología de la Programación
Tema 2: Conceptos de programación y lenguajes
• Introducción
• Conceptos elementales de programación
• Lenguajes de programación
• Compilando y ejecutando un programa en Java
• Programación orientada a objetos
• Bibliotecas (libraries)
• Applets Java
Escuela Superior de Informática. UCLM
Tema 2:1
Metodología y Tecnología de la Programación
Introducción
• Comencemos a examinar las ideas básicas tras la
escritura de programas
• Nos centraremos en
–
–
–
–
–
–
la estructura de un programa (en Java)
elementos de programación básicos
preparar y ejecutar un programa
conceptos básicos de orientación a objetos
la estructura de una aplicación Java
Java applets
Escuela Superior de Informática. UCLM
Tema 2:2
Metodología y Tecnología de la Programación
Estructura de un programa (en Java)
• Ver Lincoln.java
• Un programa consiste en una o más clases
• Una clase contiene uno o más métodos
• Un método contiene sentencias de programa
• Una aplicación Java siempre ejecuta el método main
(principal)
Escuela Superior de Informática. UCLM
Tema 2:3
Metodología y Tecnología de la Programación
Espacio en blanco
• Espacios, líneas en blanco y tabuladores se denominan
colectivamente espacio en blanco y se usan para separar
palabras y símbolos en un programa
• Un espacio en blanco extra se ignora
• Un programa válido puede ser formateado de muchas
formas diferentes
• Ver Lincoln2.java y Lincoln3.java
• Los programas deben ser formateados para incrementar
su legibilidad usando sangrado de forma sistemática
Escuela Superior de Informática. UCLM
Tema 2:4
Metodología y Tecnología de la Programación
Comentarios
• Los comentarios en un programa se denominan también
documentación interna
• Los comentarios se incluyen para explicar el propósito
del programa o de los pasos de procesamiento
• Los comentarios en Java pueden adoptar dos formas:
//
comentarios que van hasta fin de línea
/*
comentarios que van hasta el símbolo de
terminación, incluso a través de saltos de
línea */
Escuela Superior de Informática. UCLM
Tema 2:5
Metodología y Tecnología de la Programación
Identificadores
• Los identificadores son los “nombres”
programador usa en un programa
que
un
• La mayoría de los identificadores no tienen un
significado predefinido excepto el que les haya asignado
el programador
• Un identificador puede construirse con letras, dígitos, el
carácter de subrayado (_) y el signo de dólar
• Un identificador no puede comenzar con un dígito y
puede tener cualquier longitud
• Java es sensible a la capitalización, por lo tanto Total
y total son identificadores diferentes
Escuela Superior de Informática. UCLM
Tema 2:6
Metodología y Tecnología de la Programación
Palabras reservadas
• Algunos identificadores palabras reservadas, tienen
significados específicos (en Java) y no pueden usarse
para otra cosa
abstract
boolean
break
byte
byvalue
case
cast
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
future
generic
Escuela Superior de Informática. UCLM
goto
if
implements
import
inner
instanceof
int
interface
long
native
new
null
operator
outer
package
private
protected
public
rest
return
short
static
super
switch
synchronized
this
throw
throws
transient
true
try
var
void
volatile
while
Tema 2:7
Metodología y Tecnología de la Programación
Literales
• Un literal es un valor de dato explícito usado en un
programa
• Literales enteros:
25
69
-4288
• Literales de punto flotante:
3.14159
42.075
-0.5
• Literales de cadena:
"El resultado es: "
"En un lugar de la Mancha..."
Escuela Superior de Informática. UCLM
Tema 2:8
Metodología y Tecnología de la Programación
La API de Java
• La interfase del programador de aplicaciones,
Application Programmer Interface, (API) es una
colección de clases que pueden usarse cuando se
necesiten
• Los métodos println y print son parte de la API
de Java; no son parte del lenguaje
• Ambos métodos imprimen información en la pantalla; la
diferencia es que println salta a la línea siguiente y
print no
• Ver Countdown.java
Escuela Superior de Informática. UCLM
Tema 2:9
Metodología y Tecnología de la Programación
Concatenación y suma de cadenas
• El operador + realiza dos tareas
• Cuando se aplica a dos cadenas, estas se combinan en
una sola (concatenación de cadenas).
• Cuando se aplica a una cadena y a algún otro valor
(como un número), el valor se convierte a cadena y se
concatena a la anterior
• Cuando se aplica a dos tipos numéricos se suman
aritméticamente
• Ver Antarctica.java y Sum.java
Escuela Superior de Informática. UCLM
Tema 2:10
Metodología y Tecnología de la Programación
Lenguajes de programación
• Hay cuatro niveles
programación:
–
–
–
–
básicos
de
lenguajes
de
lenguaje máquina
lenguaje ensamblador
lenguajes de alto nivel
lenguajes de cuarta generación
• Cada CPU tiene su propio y específico lenguaje máquina
• Los otros niveles se crearon para hacer la programación
más fácil
Escuela Superior de Informática. UCLM
Tema 2:11
Metodología y Tecnología de la Programación
Lenguajes de Programación
• Un programa debe traducirse a código máquina antes de
poder ejecutarse sobre un tipo particular de CPU
• Esto se puede conseguir de varias formas
• Un compilador es una herramienta software que traduce
código fuente a un lenguaje específico
• Frecuentemente, este lenguaje específico es el lenguaje
máquina para un tipo particular de CPU
• La aproximación de Java es algo diferente
Escuela Superior de Informática. UCLM
Tema 2:12
Metodología y Tecnología de la Programación
Traducción y ejecución en Java
• El compilador Java traduce código fuente Java en una
representación especial llamada bytecode
• El bytecode Java no es el lenguaje máquina para ninguna
CPU tradicional
• Otra herramienta software, un intérprete, traduce
bytecode en lenguaje máquina y lo ejecuta
• Por lo tanto, el compilador de Java no está atado a
ningún tipo particular de máquina
• Java está considerado como indiferente a la arquitectura
(architecture-neutral)
Escuela Superior de Informática. UCLM
Tema 2:13
Metodología y Tecnología de la Programación
Traducción y ejecución en Java
Código fuente
Java
Compilador
Java
Bytecode
Java
Intérprete
Java
Compilador
de Bytecode
Código
máquina
Escuela Superior de Informática. UCLM
Tema 2:14
Metodología y Tecnología de la Programación
Traducción y ejecución en Java
• En línea de órdenes el compilador se ejecuta así:
>
javac Lincoln.java
• Esto crea un fichero denominado Lincoln.class, el
cual se envía al interprete para ser ejecutado:
>
java Lincoln
• La extensión .java se usa en tiempo de compilación,
pero la extensión.class no se usa por el intérprete
• Otros entornos ejecutan estos procesos de forma
diferente
Escuela Superior de Informática. UCLM
Tema 2:15
Metodología y Tecnología de la Programación
Sintaxis y Semántica
• La sintaxis de un lenguaje define como se pueden poner
juntos símbolos, palabras reservadas, e identificadores
para hacer un programa válido
• La semántica de un constructor de un lenguaje es el
significado del constructor; ella define su papel en un
programa
• Un programa sintácticamente correcto no implica que sea
lógicamente (semánticamente) correcto
• Un programa siempre hará lo que le digamos, no lo que
queríamos decirle que hiciera
Escuela Superior de Informática. UCLM
Tema 2:16
Metodología y Tecnología de la Programación
Errores
• Un programa puede tener tres tipos de errores
• El compilador puede encontrar problemas con la sintaxis
y otros problemas básicos (errores en tiempo de
compilación)
– Si hay errores en tiempo de compilación no se crea versión
ejecutable del programa
• Puede haber problemas durante la ejecución del
programa, tal como intentar dividir por cero, que
provocan que el programa termine anormalmente
(errores en tiempo de ejecución)
• El programa puede correr pero producir resultados
incorrectos (errores lógicos)
Escuela Superior de Informática. UCLM
Tema 2:17
Metodología y Tecnología de la Programación
Argumentos en la línea de órdenes
• Ver Name_Tag.java
• El método main acepta información extra en la línea
de órdenes cuando se ejecuta el programa
> java Name_Tag John
• Cada valor extra se denomina argumento de línea de
órdenes
• En Java, los argumentos de la línea de órdenes se leen
siempre como una cadena de caracteres
Escuela Superior de Informática. UCLM
Tema 2:18
Metodología y Tecnología de la Programación
Ingeniería del software
• Debemos siempre tratar de desarrollar formalmente
nuestro software para hacerlo fiable y mantenible
• Según aumenta la complejidad del programa, sus coste
de desarrollo y revisión aumenta exponencialmente
coste
complejidad
Escuela Superior de Informática. UCLM
Tema 2:19
Metodología y Tecnología de la Programación
Componentes software
• Los programas son más fáciles de construir y codificar
cuando están constituidos por componentes separados
• Un componente software puede considerarse como
cualquier elemento de software que transforma una
entrada en una salida
Entrada
Componente
Salida
15 38
16
Calcular
media
22
Escuela Superior de Informática. UCLM
Tema 2:20
Metodología y Tecnología de la Programación
Componentes software
• Los componentes pueden
componentes mayores
Escuela Superior de Informática. UCLM
combinarse
para
crear
Tema 2:21
Metodología y Tecnología de la Programación
Programación orientada a objetos
• Java es un lenguaje orientado a objetos
• Los programas están hechos de componentes software
llamados objetos
• Un objeto contiene datos y métodos
• Un objeto se define por una clase
• Se pueden crear múltiples objetos a partir de la misma
clase
Escuela Superior de Informática. UCLM
Tema 2:22
Metodología y Tecnología de la Programación
Programación orientada a objetos
• Una clase representa un concepto y un objeto es la
realización de ese objeto
Objetos
Clase
Coche
Mi coche
El coche de Juan
El coche del vecino
Escuela Superior de Informática. UCLM
Tema 2:23
Metodología y Tecnología de la Programación
Programación orientada a objetos
• Los objetos pueden también derivarse unos de otros
usando un proceso denominado herencia
Vehículo
Coche
Avión
Tren
• Objetos, clases y herencia se discutirán en mayor detalle
más adelante
Escuela Superior de Informática. UCLM
Tema 2:24
Metodología y Tecnología de la Programación
Bibliotecas (Libraries) de Clases
• La API de Java es una biblioteca de clase, un grupo de
clases que soportan el desarrollo de programas
• Las clases en una jerarquía de clase están frecuentemente
relacionadas por herencia
• Las clases en la API de Java están separadas en paquetes
• La clase System, por ejemplo, está en el paquete
java.lang
• Cada paquete contiene un
relacionadas de alguna forma
Escuela Superior de Informática. UCLM
conjunto
de
clases
Tema 2:25
Metodología y Tecnología de la Programación
Los paquetes de la API de Java
• Algunos paquetes en la API de Java:
java.applet
java.awt
java.beans
java.io
java.lang
java.math
Escuela Superior de Informática. UCLM
java.net
java.rmi
java.security
java.sql
java.text
java.util
Tema 2:26
Metodología y Tecnología de la Programación
Importando paquetes
• Una clase de la API de Java puede usarse a través su
nombre completo:
java.lang.System.out.println ();
• O el paquete puede importarse usando la sentencia
import, la cual tiene dos formas:
import java.applet.*;
import java.util.Random;
• El paquete java.lang se importa automáticamente
en todo programa Java
Escuela Superior de Informática. UCLM
Tema 2:27
Metodología y Tecnología de la Programación
Applets Java
• Una applet Java es un programa Java creado para ser
enviado a lo largo de una red y ser ejecutado usando un
navegador (browser) web
• Una aplicación Java es un programa autónomo
• Las aplicaciones tienen el método main, pero las
applets no
• Las
applets
están
derivadas
java.applet.Applet
de
la
clase
• Ver Confucius.java y No_Parking.java
• Se pueden colocar enlaces a applets en documentos
HTML
Escuela Superior de Informática. UCLM
Tema 2:28
Metodología y Tecnología de la Programación
Applets Java
Computador local
Código fuente
Java
Computador
remoto
Compilador
Java
Bytecode Java
Navegador Web
Escuela Superior de Informática. UCLM
Intérprete
Java
Tema 2:29
Descargar