Documentos de Académico
Documentos de Profesional
Documentos de Cultura
01 Paradigm As
01 Paradigm As
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: