Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DESARROLLO DE APLICACIONES
WEB
FUNDAMENTOS DE
PROGRAMACIÓN
1. INTRODUCCIÓN
2. ARQUITECTURA VON NEUMANN
3. COMPILADORES E INTÉRPRETES
4. LENGUAJES DE PROGRAMACIÓN
5. ALGORITMOS
6. IMPLEMENTACIÓN DE PROGRAMAS
FUNDAMENTOS DE PROGRAMACIÓN
1. INTRODUCCIÓN
CONCEPTO DE PROGRAMA
UN PROGRAMA ES UNA
SECUENCIA DE
UN COMPUTADOR ES UNA
INSTRUCCIONES QUE EL
MÁQUINA CON CAPACIDAD
COMPUTADOR PUEDE
PARA RESOLVER UNA TAREA
COMPRENDER Y EJECUTAR
PARA RESOLVER UNA TAREA
PROPUESTA EN 1947
LA UC ENVÍA SEÑALES A
EL PC APUNTA A LA LAS DEMÁS UNIDADES
SIGUIENTE FUNCIONALES PARA
INSTRUCCIÓN EJECUTAR LA
INSTRUCCIÓN
EL RESULTADO DE LA
EJECUCIÓN PUEDE
GUARDARSE EN UN
REGISTRO O EN
MEMORIA PRINCIPAL
FUNDAMENTOS DE PROGRAMACIÓN
3. COMPILADORES E INTÉRPRETES
EL PROCESO DE TRADUCCIÓN
ES NECESARIO TRADUCIR EL
LA CPU SÓLO PUEDE EJECUTAR PROGRAMAR UNA APLICACIÓN LENGUAJE DE PROGRAMACIÓN
ESTA OPERACIÓN LA REALIZAN
INSTRUCCIONES DE CÓDIGO DE EN CÓDIGO DE MÁQUINA ES (CÓDIGO FUENTE) A UNA
LOS TRADUCTORES
MÁQUINA (BINARIO) INVIABLE, POR SU COMPLEJIDAD REPRESENTACIÓN EQUIVALENTE
EN CÓDIGO DE MÁQUINA
TRADUCCIÓN
FUNDAMENTOS DE PROGRAMACIÓN
3. COMPILADORES E INTÉRPRETES
EL PROCESO DE TRADUCCIÓN
C#
...
int resultado = operando1 + operando2;
TRADUCCIÓN
CÓDIGO DE MÁQUINA
... EJEMPLO DEL FORMATO DE INSTRUCCIÓN DE UN
PROCESADOR MIPS DE 32 BITS
000000 10001 10010 01000 00000 100000
000010 00000 10010 01000 00000 100000
000001 10001 11010 01000 00000 100000
...
FUNDAMENTOS DE PROGRAMACIÓN
3. COMPILADORES E INTÉRPRETES
TIPOS DE TRADUCTORES
COMPILADOR INTÉRPRETE
TOMA SECUENCIALMENTE CADA INSTRUCCIÓN
ANTES DE REALIZAR LA TRADUCCIÓN, ANALIZA EL DEL CÓDIGO FUENTE, LA TRADUCE Y LA EJECUTA,
CÓDIGO FUENTE EN SU TOTALIDAD, EN BUSCA EN UN SÓLO PASO
DE ERRORES
NO SE ANALIZA LA TOTALIDAD DEL CÓDIGO (NO
SE DETECTAN ERRORES ANTES DE LA EJECUCIÓN)
FASES DE UN COMPILADOR
FASE DE ANÁLISIS
FASE DE SÍNTESIS
FICHEROS ANÁLISIS CÓDIGO
EXPANSIÓN DE SINTÁCTICO INTERMEDIO
MACROS ANÁLISIS OPTIMIZACIÓN DE
SEMÁNTICO CÓDIGO
GENERACIÓN DE
CÓDIGO OBJETO
FUNDAMENTOS DE PROGRAMACIÓN
3. COMPILADORES E INTÉRPRETES
FASES DE UN COMPILADOR
FASES DE UN COMPILADOR
• En los sistemas Windows, un ejecutable suele tener • Durante la fase de síntesis se generan sucesivas
extensión “.exe” (aunque existen ejecutables con otras traducciones hasta llegar a obtener código máquina
extensiones, como los ejecutables en modo comando, ejecutable.
‘.com”.
• El trabajo de traducción del compilador gira en torno a
• En los sistemas Linux, los ficheros ejecutables se tres estructuras: la tabla de símbolos, el árbol
pueden identificar por tener asociado un permiso de sintáctico y la tabla de literales. En ellas se registran
ejecución. (fase de análisis) y consultan (fase de síntesis) los
elementos léxicos, las construcciones gramaticales y los
• Algunos de los lenguajes compilados más conocidos literales del código fuente, respectivamente.
son C o C++.
FUNDAMENTOS DE PROGRAMACIÓN
3. COMPILADORES E INTÉRPRETES
FASES DE UN COMPILADOR
• La fase de análisis consta de las siguientes etapas: • La fase de síntesis consta de las siguientes etapas:
✓ Análisis léxico: se analiza el código fuente para ✓ Generación de código intermedio: se consulta la
identificar los tokens que lo componen y verificar tabla de símbolos para obtener una traducción a
que se corresponden con elementos del código genérico (para un procesador abstracto).
lenguaje.
✓ Optimización: se obtiene una versión optimizada
✓ Análisis sintáctico: se verifica que las del código generado en la etapa anterior.
construcciones del código fuente cumplen las
✓ Generación de código objeto: a partir del código
reglas gramaticales del lenguaje.
generado en la etapa anterior, se obtiene una
traducción a un formato que el procesador real
✓ Análisis semántico: verifica que las puede identificar: código máquina relocalizable
construcciones gramaticales del código fuente o código objeto. Este código todavía no es
tienen significado. ejecutable puesto que no define en qué lugar de
la memoria se ubicarán las instrucciones y las
variables. Además, en el código relocalizable, las
referencias a otras bibliotecas tampoco están
resueltas. Esto permite compilar separadamente
los distintos módulos y bibliotecas del programa.
INTÉRPRETE
COMPONENTES
REGLAS SINTÁCTICAS
DEFINEN LAS
CONSTRUCCIONES QUE
PUEDEN REALIZARSE CON LOS
SÍMBOLOS.
SÍMBOLOS REGLAS SEMÁNTICAS
(ELEMENTOS LÉXICOS O TOKENS)
DEFINEN EL SIGNIFICADO DE LAS
PUEDEN CONSIDERARSE COMO LAS CONSTRUCCIONES.
‘PALABRAS’ QUE FORMAN EL
LENGUAJE DE PROGRAMACIÓN.
LENGUAJE DE
PROGRAMACIÓN
FUNDAMENTOS DE PROGRAMACIÓN
4. LENGUAJES DE PROGRAMACIÓN
• Abstraen al programador de
las particularidades del
hardware.
COMPILADO A MÁQUINA
COMPILADO INTERPRETADO
VIRTUAL
• Se necesita un compilador • Se necesita un intérprete • Se necesita un motor de
específico para la arquitectura específico para la arquitectura ejecución específico para la
y sistema operativo en el que y sistema operativo en el que arquitectura y sistema
se ejecutará el programa. se ejecutará el programa. operativo en el que se
ejecutará el programa.
• No son multiplataforma. • Generalmente, son
multiplataforma. • Son multiplataforma
• C • Python • Java
• C++ • Javascript • C#
• … • … • …
FUNDAMENTOS DE PROGRAMACIÓN
4. LENGUAJES DE PROGRAMACIÓN
COMPILACIÓN A IL
EL IL ES EL CÓDIGO DE MÁQUINA
DE UNA MÁQUINA ABSTRACTA
INTERMEDIATE
(MÁQUINA VIRTUAL)
LANGUAGE
EJECUCIÓN EL IL SE ALMACENA EN UN
INTERPRETADA FICHERO. ES UN EJECUTABLE
MULTIPLATAFORMA
TRADUCCIÓN A
CÓDIGO
MÁQUINA REAL DURANTE LA EJECUCIÓN, EL
Y EJECUCIÓN MOTOR DE EJECUCIÓN DEL
LENGUAJE INTERPRETA EL IL
FUNDAMENTOS DE PROGRAMACIÓN
4. LENGUAJES DE PROGRAMACIÓN
ORIENTADO A
IMPERATIVO ESTRUCTURADO DECLARATIVO FUNCIONAL LÓGICO
OBJETOS
• Secuencia de • Añade restricciones • Incluye al • Se declara el • Evolución del • Evolución del
instrucciones dadas al paradigma paradigma anterior dominio del paradigma paradigma
al procesador que imperativo. pero lo envuelve en problema mediante declarativo pero declarativo pero
indican cómo debe una capa de proposiciones, centrado en centrada en
ejecutar una tarea. • Programas con un abstracción condiciones y aplicaciones aplicaciones de
único punto de semántica. transformaciones. matemáticas inteligencia
• No hay una entrada y salida artificial.
metodoLgía que • Se representa el • Se solicita un • Basado en la teoría
defina cómo debe • Cualquier programa dominio del resultado sin del cálculo lambda • Basado en la teoría
organizarse el puede (debe) problema mediante especificar cómo se del cálculo lambda.
programa. escribirse objetos. debe obtener. • Centrado en la
combinando utilización de • Centrado en el uso
únicamente 3 funciones de proposiciones y
estrucutas: • Los objetos tienen aritméticas predicados.
sencuencial, propiedades y
condicional e pueden realizar • Únicamente utiliza
iterativa. acciones. definiciones de
funciones y
• Introduce el uso de recursividad.
subrutinas
(funciones y
procedimientos)
• Ensamblador • Pascal, C • Java, C++, C# • SQL, PL-SQL, • F#, Haskell • Prolog, LISP
Transact-SQL
FUNDAMENTOS DE PROGRAMACIÓN
4. LENGUAJES DE PROGRAMACIÓN
IMPERATIVO
ESTRUCTURADO
1ª Generación
ORIENTADO A OBJETOS
2º Generación 3ª Generación
- Eventos 4ª generación
- Diseño visual
4ª generación
LÓGICO
5ª generación
FUNCIONAL
5ª generación
FUNDAMENTOS DE PROGRAMACIÓN
5. ALGORITMOS
CONCEPTO Y REPRESENTACIÓN
NO SÍ
xx+4 k>j mód(i, j)
Desde i = 0
hasta i = 20
Leer (x)
sentencias
ALGORITMO
QUE PIDE DOS
NÚMEROS, LOS
SUMA, Y Leer (i)
MUESTRA EL
RESULTADO
Leer (j)
ki+j
Escribir (k)
FUNDAMENTOS DE PROGRAMACIÓN
5. ALGORITMOS
REPRESENTACIÓN EN PSEUDOCÓDIGO
Leer (i)
Inicio
LA REPRESENTACIÓN EN
Escribir ("Introduce un número: ")
PSEUDOCÓDIGO UTILIZA
i <número_1>
Leer (j) LENGUAJE NATURAL
Escribir ("Introduce otro número: ")
j <número_2>
ki+j k i + j NO ES UNA
REPRESENTACIÓN
Escribir ("La suma es: ") ESTANDARIZADA: PUEDE
Escribir (k) USARSE CUALQUIER
TÉRMINO QUE SE
Escribir (k) Fin CONSIDERE ADECUADO
FUNDAMENTOS DE PROGRAMACIÓN
5. ALGORITMOS
DISEÑO DE ALGORITMOS
DISEÑO
• Identificar tareas
1 principales.
DESCENDENTE
(TOP-DOWN)
PROBLEMA A RESOLVER
• Ordenación de TAREA TAREA
tareas. TAREA PRINCIPAL 1 PRINCIPAL PRINCIPAL
2 2 …
• Especificar y
concretar SUBTAREA SUBTAREA
SUBTAREA 1.2
3 subtareas. 1.1 …
• Depuración.
6
FUNDAMENTOS DE PROGRAMACIÓN
6. IMPLEMENTACIÓN DE PROGRAMAS
INSTRUCCIONES
DE CONTROL DE
FLUJO
INSTRUCCIONES
INSTRUCCIONES
DE DECLARACIÓN
DE LLAMADA A
DE CONSTANTES Y
MÓDULOS
VARIABLES
BIBLIOTECAS DE
TIPOS DE DATOS Y LENGUAJE DE
PROGRAMACIÓN FUNCIONES Y/O
OPERADORES
CLASES