Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paradigmas de programacin
Desarrollo del software imposible si las tareas tuviesen que expresarse en cdigo mquina. Lenguajes de ms alto nivel: comprensibles, manejables y automticamente convertibles a cdigo mquina. Concentrar en las propiedades del problema que se pretende resolver, y no en registros, direcciones de memoria, ciclos mquina, ...
Cdigo mquina: depuracin de errores (debugging) compleja Uso de dgitos (hexadecimales) para representar los cdigos de operacin -> Nemotcnicos
LD: Cargar registro ST: Almacenar registro R0, R1, ...: Nombres de los registros 156C 166D 5056 306E C000 LD R5, PRECIO LD R6, IMPUESTOS ADDI R0, R5 R6 ST R0, TOTAL HLT
Diseo del programa en lenguaje ensamblador y traduccin automtica a cdigo mquina por el ensamblador. Nueva generacin de lenguajes de programacin
Primitivas del lenguaje: bsicamente las mismas que el lenguaje mquina correspondiente. Por tanto, dependencia total de la arquitectura de la mquina. No portabilidad. Pensar en trminos de lenguaje mquina y sus estructuras. Necesidad de primitivas de ms alto nivel. Lenguajes de tercera generacin: FORTRAN y COBOL
Total=precio+impuestos
En general, se logra cuasi-independencia de la mquina, sin ms que disponer del traductor adecuado.
Estandarizacin de lenguajes ms habituales: ANSI, ISO Entornos de programacin amigables, lo ms prximos posibles al lenguaje natural. Paradigmas de programacin:
Lisp ML Simula Smalltalk Cdigo Mquina FORTRAN COBOL ALGOL GPSS BASIC APL Scheme C++ Ada95 Funcional Orientada a Objetos Imperativa
Declarativa
Anlisis lxico
Reconocimiento de cadenas de smbolos: palabras clave, variables, constantes Asigna una marca a cada elemento reconocido
Se genera la tabla de smbolos: variables utilizadas y su tipo. Genera mensajes de error en los lenguajes fuertemente tipados
total=precio+impuestos
Generacin de cdigo
Construccin de las sentencias en cdigo mquina Optimizacin de cdigo
precioneto=precio-descuento total=precioneto+impuestos
Carga: traslado del cdigo enlazado a memoria principal, desde donde se ejecuta.
Java: bytecode (cdigo mquina universal) al que se traduce el cdigo fuente. Es ejecutado localmente por un intrprete.
Programacin imperativa o procedural: secuencia de comandos que, siguiendo un procedimiento, manejan los datos de entrada y generan el resultado.
Aproximacin clsica: lenguajes alto/bajo nivel Procedimiento: indicacin paso a paso de las tareas a realizar par resolver el problema, traducida al lenguaje correspondiente.
Programacin declarativa: enfoca cul es el problema ms que cmo resolverlo. Descripcin adecuada del problema en lugar de buscar un algoritmo que lo resuelva. Se basa en el razonamiento deductivo:
Una de dos: o bien estamos en clase o en la cafetera Si sabemos que no estamos en clase, concluiremos que estamos en la cafetera
Principio de resolucin:
[sentencias originales o premisas] PQ PR [resolvente] R Q
para dar
El coche de Manolo est en el bar
PROLOG realizan resolucin repetida sobre una coleccin de sentencias iniciales a las que se aplica razonamiento deductivo
Reglas:
Vuelo(X, Z) :- (Vuelo(X,Y) AND Vuelo(Y,Z))
Programacin funcional: las primitivas son funciones que se construyen para elaborar funciones ms complejas que resuelvan el problema. Aproximacin modular y reutilizable.
Ejemplo:
x+y max2[x, y] suma [x, y] if x>y then x else y max2[max2[x, y], z]
max3[x, y, z]
Propiedades
Herencia: permite que una clase incluya a otras, pero tambin le permite aadir nuevas caractersticas particulares
Polimorfismo: una misma orden se adapta a los objetos (idea d sobrecarga de operadores aritmticos). Encapsulado: acceso restringido a los mtodos y otras propiedades internas de un objeto (privados y pblicos)
Class Ventana { public ... private ... public... }
...Aqu se definirn los nuevos mtodos para indicar cm responder cualquier elemento de la nueva clase ante nuevos. Adems, hereda los mtodos de la clase PequeoNegocio... } PequeoNegocio SupermercadoMarisa; NegociodeMensajera DHL;
Ventajas: