Paradigmas de Programacion
• Desarrollo del software imposible si las tareas tuviesen que
expresarse en código máquina.
• Lenguajes de más alto nivel: comprensibles, manejables y
automáticamente convertibles a código máquina.
• Concentrar en las propiedades del problema que se
pretende resolver, y no en registros, direcciones de
memoria, ciclos máquina, ...
Fundamentos deprogramación-GSTIC. Tema 1.
1
1.1. Perspectiva histórica
• Código máquina: depuración de errores (debugging)
compleja
• Uso de dígitos (hexadecimales) para representar los
códigos de operación -> Nemotécnicos
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
HLTDiseño del programa en lenguaje ensamblador y traducción
automática a código máquina por el ensamblador.
Nueva generación de lenguajes de programación
Fundamentos de programación-GSTIC. Tema 1.
2
1.1. Perspectiva histórica
• Primitivas del lenguaje: básicamente las mismas que el
lenguaje máquina correspondiente.
• Por tanto, dependencia total de la arquitectura de la
máquina. Noportabilidad.
• Pensar en términos de lenguaje máquina y sus estructuras.
Necesidad de primitivas de más alto nivel.
• Lenguajes de tercera generación: FORTRAN y COBOL
Total=precio+impuestos
• Traductores: convierten un programa en código máquina.
Compiladores: Traducción global y posterior ejecución
Intérpretes: Traducción simultánea a la ejecución
En general, se logra cuasi-independencia de lamáquina, sin más
que disponer del traductor adecuado.
Fundamentos de programación-GSTIC. Tema 1.
3
1.1. Perspectiva histórica
– Menor tiempo de formación del programador y de elaboración
– Depuración más sencilla
– Mayor consumo de recursos: memoria y tiempo de ejecución
• Estandarización de lenguajes más habituales: ANSI, ISO
• Entornos de programación “amigables”, lo máspróximos
posibles al lenguaje natural.
• Paradigmas de programación:
Lisp
ML
Scheme
Simula
C++
Funcional
Ada95
Visual
Java
Basic
C
Ada
Smalltalk
Código
Máquina
FORTRAN
BASIC
COBOL ALGOL
GPSS
APL
Orientada
a Objetos
Imperativa
Pascal
Prolog
Fundamentos de programación-GSTIC. Tema 1.
Declarativa
4
1.2. Proceso de traducción
• Traductores:toman el código fuente y generan el código
objeto.
–Análisis léxico
•Reconocimiento de cadenas de símbolos: palabras clave, variables, constantes
•Asigna una marca a cada elemento reconocido
Fundamentos de programación-GSTIC. Tema 1.
5
1.2. Proceso de traducción
–Análisis sintáctico
•“Ve” las marcas del A.L. e identifica la estructura gramatical del programa,
reconociendo el papelde cada componente
•“signos de puntuación” para facilitar la identificación: { } ; ‘’ “” y palabras que
identifican las diferentes estructuras sintácticas
if (expresión_lógica)
sentencia ;
•Se genera la tabla de símbolos: variables utilizadas y su tipo. Genera mensajes de
error en los lenguajes fuertemente tipados
total=precio+impuestos
–Generación de código
•Construcción de lassentencias en código máquina
•Optimización de código
precioneto=precio-descuento
total=precioneto+impuestos
Fundamentos de programación-GSTIC. Tema 1.
6
1.2. Proceso de traducción
• Enlazado: posterior a la traducción y previo a la ejecución
del programa.
– La traducción puede ser diferida.
– El código objeto contiene llamadas al S.O. o a otras aplicaciones.
– Deben “conectarse” losdiferentes módulos y tareas pendientes.
• Carga: traslado del código enlazado a memoria principal,
desde donde se ejecuta.
Java: bytecode (código máquina “universal”) al que se traduce el código fuente.
Es ejecutado localmente por un intérprete.
Fundamentos de programación-GSTIC. Tema 1.
7
1.3. Programación imperativa
• Programación imperativa o “procedural”: secuencia de...
Regístrate para leer el documento completo.