SlideShare una empresa de Scribd logo
Contenido 
• Tipos de Lenguajes 
• Traducción y Ejecución de un 
Programa 
• Paradigmas de Programación 
• Introducción al concepto de 
Objeto 
• Pasos en el desarrollo de un 
software 
• Documentación: Diagramas 
de Flujo, Diccionario de Datos 
y Pseudocódigo
Traducción/Ejecución de un programa 
Primero debemos saber que los lenguajes de clasifican 
en: 
• Lenguajes de Alto Nivel 
• Lenguajes de Bajo Nivel (ensambladores) 
• Lenguajes de máquina
Traducción/Ejecución de un programa 
Problema 
Algoritmo en 
pseudocódigo o DF 
Algoritmo en 
Java 
Código de Máquina 
(Ejecutable) 
Resultado 
Codificación 
Traducción y 
Ejecución
Traducción/Ejecución de un programa 
Intérprete: Es un programa que traduce un código 
fuente en la medida en que lo va ejecutando 
instrucción por instrucción 
Instrucción 1 
Instrucción 2 
.. 
…… 
Instrucción n 
Traduce y ejecuta 
Traduce y ejecuta 
Traduce y ejecuta
Traducción/Ejecución de un programa 
• Compilador: Es un programa que traduce los programas 
fuentes escritos en lenguaje de alto nivel a lenguaje de 
máquina también llamado programa objeto. 
• La traducción se realiza en una sola operación llamada 
compilación, es decir se traduce todo el programa en un solo 
bloque. 
• El programa compilado es ejecutable siempre y cuando se 
hayan depurado todos los errores. 
• Solo se deberá compilar de nuevo si se modifica alguna 
instrucción del fuente.
Traducción/Ejecución de un programa 
• Compilador 
Instrucción 1 
Instrucción 2 
.. 
…… 
Instrucción n 
Traduce a código de maquina 
Real o “virtual”
Traducción/Ejecución de un programa 
• Para conseguir el programa de máquina real se utiliza un 
programa llamado enlazador (linker) 
• Un enlazador : es un programa que toma el código objeto 
generado en los primeros pasos del proceso de compilación, 
la información de todos los recursos necesarios (biblioteca), 
quita aquellos recursos que no necesita, y enlaza el código 
objeto con su(s) biblioteca(s) con lo que finalmente produce 
un archivo ejecutable. 
• En el caso de los programas enlazados dinámicamente, el 
enlace entre el programa ejecutable y las bibliotecas se realiza 
en tiempo de carga o ejecución del programa
Traducción/Ejecución de un programa 
Programa fuente 
Compilador 
Programa objeto 
enlazador 
Programa ejecutable en 
lenguaje de máquina 
Programa fuente 
Compilador 
Existen 
errores de 
compilación 
no 
Programa 
Programa ejecutable 
Ejecución 
Modificación del 
programa 
enlazador
Paradigmas de Programación 
• Un paradigma de programación representa un enfoque 
particular o filosofía para la construcción del software. 
• No es mejor uno que otro, sino que cada uno tiene sus 
ventajas y sus inconvenientes. 
• En una primera clasificación, se encuentran dos grandes 
grupos en donde es posible englobar casi todos los 
paradigmas de programación conocidos hasta ahora.
Paradigmas de Programación 
Paradigmas de 
Programación 
Programación Declarativa Programación Imperativa 
Funcional Orientada a Objetos 
Lógica Visual, Orientada a Eventos, 
Orientada a Aspectos, etc.
Programación Imperativa 
• Consiste en una serie de comandos que una 
computadora ejecutará. 
• Estos comandos detallan de forma clara y específica el 
cómo hacer las cosas y llevarán al programa a través de 
distintos estados. 
• Los elementos mas importantes de este paradigma son: 
• Variables, Tipos de datos, Expresiones y Estructuras de control. 
• FORTRAN, COBOL, Pascal, BASIC, ALGOL, C y Ada
Programación Declarativa 
• En contraste con el Paradigma Imperativo, solicita al programador 
que describa el problema en lugar de encontrar una solución 
algorítmica al problema. 
• Difiere de los otros paradigmas no sólo en sintaxis y semántica, sino 
que en la lógica representa conocimiento, el cual es manipulado 
mediante inferencias. 
• Utiliza el principio de razonamiento lógico para responder a las 
preguntas o cuestiones consultadas. 
• Especifica el que y no el cómo hacerlo. 
• Esta basado en la deducción. 
• El lenguaje por excelencia es el Prolog.
Programación Funcional 
• Considera al programa como una función 
matemática. 
• Donde el dominio representaría el conjunto de todas 
las entradas posibles (inputs) y el rango el conjunto 
de todas las salidas posibles (outputs).
Programación Funcional 
Parámetros Resultado
Programación Funcional 
Podríamos pensar que cualquier tipo de programación podría ser 
clasificada como programación funcional y esto es relativamente cierto 
a excepción de unos puntos clave: 
• No existe el concepto de variables y consecuentemente el de 
asignación (los parámetros son fijos) 
• Existe una propiedad llamada transparencia referencial, la cual 
indica que una función solo depende de sus parámetros y que 
tendrá efecto únicamente en su resultado. 
• Una función puede ser utilizada como parámetros y resultados de 
cualquier otra función. 
• Standard ML, Haskell , Scheme y LISP
Programación Lógica 
Aunque Prolog es el lenguaje mas representativo de 
este paradigma usaremos ejemplos en Structured 
Query Language (SQL) un lenguaje para operar bases 
de datos.
Programación Lógica 
Analicemos este cuadro: 
Título Estelar Género Estreno 
Nosotros los Pobres Pedro Infante Drama 1948 
El Padrecito Cantinflas Comedia 1964 
Pepe el Toro Pedro Infante Drama 1952 
¡Espérame en Siberia, 
Mauricio 
Comedia 1969 
vida mía! 
Garcés 
Santo y Blue Demon 
contra los monstruos 
El Santo Sci‐Fi Mexicano 1969
Programación Lógica 
Ahora, suponiendo este conjunto vamos a realizar una 
operación sobre él: Una consulta que devolvería el 
conjunto ordenado de forma descendente por su fecha 
de estreno: 
SELECT * FROM películas ORDER BY estreno DESC
Programación Lógica 
Quedando como resultado: 
Título Estelar Género Estreno 
¡Espérame en Siberia, 
vida mía! 
Mauricio 
Garcés 
Comedia 1969 
Santo y Blue Demon 
contra los monstruos 
El Santo Sci‐Fi Mexicano 1969 
El Padrecito Cantinflas Comedia 1964 
Pepe el Toro Pedro Infante Drama 1952 
Nosotros los Pobres Pedro Infante Drama 1948
Programación Orientada a Objetos 
Basada en objetos y cómo interactúan entre 
ellos para lograr un objetivo. 
• Abstracción 
• Objeto 
• Clase 
• Herencia
Objetos
Paso en el desarrollo de un Software 
Aunque el proceso de programa es, esencialmente creativo, se pueden 
considerar una serie de pasos comunes: 
• Análisis del problema 
• Diseño del algoritmo 
• Codificación 
• Compilación y ejecución 
• Verificación 
• Depuración 
• Mantenimiento 
• Documentación
Análisis del Problema 
• Obtener una clara definición del problema, en donde se 
contemple QUE debe hacer el programa. 
• Que entradas se requieren? (tipos de datos y cantidad). 
• ¿Cuál es la salida deseada? (tipos de datos de los 
resultados y cantidad). 
• ¿Qué procesos producen la salida deseada? 
• Requisitos o requerimientos adicionales. 
• Restricciones a la solución.
Análisis del Problema 
¡Preparar café! 
Que tipo de café? 
Que tipo de máquina usar para su preparación? 
Cuantas tazas de café? 
…..
Diseño de la Solución 
• COMO hace el programa la tarea solicitada. 
• La resolución de un problema complejo se realiza dividiendo un problema 
complejo en sub problemas: diseño descendente o modular. 
• Refinamientos sucesivos: Romper el problema y expresar cada paso en 
forma más detallada. 
• Cualquier programa bien diseñado consta de un programa principal. 
• Los módulos pueden ser planeados, codificados, comprobados y 
depurados independientemente (incluso por diferentes programadores) y 
a continuaci combinados entre si.
Diseño de la Solución (DS) 
• Es el proceso que convierte el resultado del análisis 
del problema en un diseño modular con 
refinamientos sucesivos que permitan un a posterior 
traducción a un lenguaje de alto nivel. 
• Herramientas para el diseño: Diagramas de Flujo y 
Pseudocódigo.
Herramientas para el DS 
Diagramas de Flujo: es una representación gráfica de 
un algoritmo. Los símbolos utilizados han sido 
normalizados por el Instituto Nacional de 
Normalización (ANSI‐ISO) y los mas frecuentemente 
utilizados son:
Herramientas para el DS 
Termina 
l 
Subprograma 
Entada/Salida Proceso 
Decisión 
Sí 
No
Herramientas para el DS 
• Pseudocódigo: Es una herramienta de programación 
en la que las instrucciones se escriben en palabras 
similares al inglés o el español. 
• Facilitan tanto la lectura como la escritura de los 
programas. 
• Generalmente esta compuesto por palabras 
reservadas.
Herramientas para el DS 
¡Preparar café! 
1. Preguntar por el numero de tazas de cafe a preparar: 
n 
2. Vertir n* 200cc de agua desde la jarra a la cafetera 
3. Colocar n cucharadas de café en la cafetera 
4. Encender la cafetera y esperar a que el café termine 
de pasar 
5. Sírvase el café
Codificación 
• Escritura en un lenguaje de programación de la 
representación del algoritmo desarrollado en la 
etapa previa (diseño). 
• Dado que el diseño es independiente del lenguaje de 
programación, el código puede ser escrito con igual 
facilidad en diferentes lenguajes. 
• Documentación interna: comentarios significativos 
incluidos dentro del código fuente, que permiten que 
los programas sean más fáciles de comprender.
Codificación 
public class Principal{ 
public static void main( String [] 
args) 
{ 
System.out.println("preparando 
cafe!"); 
} 
}
Compilación y Ejecución
Verificación y Depuración 
• Depuración: Encontrar errores en el programa y 
corregirlos o eliminarlos: 
o Errores de compilación 
o Errores de ejecución: instrucciones que se pueden 
comprender pero no ejecutar. 
o Errores lógicos: errores de análisis y/o diseño.
Verificación y Depuración 
• La Verificación consiste en ejecutar el programa con 
una amplia variedad de datos de entrada para 
corregir o eliminar “bugs”. 
• Se debe utilizar diferentes datos de pruebas para 
este proceso: 
o Valores normales de entrada 
o Valores extremos para comprobar los limites 
o Valores especiales
Documentación 
• Descripciones de los pasos a dar en el proceso de resolución de 
un problema. 
• Programas pobremente documentados son difíciles de leer, mas 
difíciles de depurar y casi imposible de mantener y modificar. 
• La documentación incluye: análisis, diagramas de flujo y/o 
pseudocódigos, diccionario de datos, manuales de usuario con 
instrucciones para ejecutar el programa y para interpretar los 
resultados. 
• Es vital cuando a futuro se desee cambiar el programa. Estos 
cambios se denominan mantenimiento del programa.
Documentación 
• El diccionario de datos es un listado organizado de todos los 
datos que pertenecen a un sistema. 
• El objetivo de un diccionario de datos es dar precisión sobre 
los datos que se manejan en un sistema, evitando así malas 
interpretaciones o ambigüedades. 
• Define con precisión los datos de entrada, salida, 
componentes de almacenamiento, flujos, detalles de las 
relaciones entre almacenes, etc. 
• Los diccionarios de datos son buenos complementos 
a los diagramas de flujo de datos, los diagramas de entidad‐relación, 
etc.
Documentación 
• Variables 
• Tipos de Variables: ENTERAS, REALES, BOLEANAS, 
STRING, CARACTER 
• Procesos y Funciones 
• Estructuras de Control 
– SI (condición) ENTONCES 
instrucciones 
FIN SI
Documentación: DF 
39 
INICIO 
Esta 
encendida 
tazas 
tazas 
entre 
1 y 12 
prepararCafe 
Esta Listo ! 
No encendida 
No se puede 
preparar 
FIN 
calcularCafe
Documentación: Pseudocódigo 
40 
INICIO 
ENTEROS tazas, cantidadCafe 
BOOLEANO encendida 
encendida = falso 
SI estaEncendida() ENTONCES 
LEER tazas 
SI (tazas < 1 o tazas > 12) ENTONCES 
ESCRIBIR no se puede preparar café 
SINO 
cantidadCafé = calcCafe(tazas) 
prepararCafe() 
ESCRIBIR esta listo: café disfrutalo! 
FIN SI 
SINO 
ESCRIBIR la cafetera no esta encendida 
FIN SI 
FIN
Documentación: DD 
VARIABLES: 
tazas: valor de entrada. Entero que representa la cantidad de tazas de café a 
preparar. Los valores que puede tomar son 1..12 
cantidadCafe: entero que representa la cantidad de café (en grano o molido) 
requerida para preparar tazas de café. Esta cantidad es calculada por 
prepararCafé() 
encendida: boleano que indica si la cafetera esta encendida o apagada. Los 
valores que puede tomar son: verdadero, falso 
PROCESOS: 
calcCafé: Calcula la cantidad de café necesaria para preparar la cantidad de 
tazas que desea el usuario. Hacemos abstracción acerca de su 
implementación. 
prepararCafe: ….. 
41

Más contenido relacionado

La actualidad más candente

Java basico
Java basicoJava basico
Java basico
Jhon Alvaro Ariza
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
Infomania pro
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
Infomania pro
 
La prueba del software y los special purpose languages
La prueba del software y los special purpose languagesLa prueba del software y los special purpose languages
La prueba del software y los special purpose languages
Software Guru
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
bachispasaca
 
Programacion
ProgramacionProgramacion
Programacion
ProgramacionProgramacion
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
Edna Rheiner
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6
Tonymx
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de Compiladores
Infomania pro
 
Unidad i antecedentes
Unidad i antecedentesUnidad i antecedentes
Unidad i antecedentes
BrayanBaffz
 
Prg java l
Prg java lPrg java l
Prg java l
Gezaias cardozo
 
Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]
Matías Olmos
 
Lenguaje c
Lenguaje cLenguaje c
Apun3algol
Apun3algolApun3algol
Apun3algol
pabesacv
 
Taller de c sharp
Taller de c sharpTaller de c sharp
Taller de c sharp
Ely Santillán Tarazón
 
Actividad N° 2 - Unidad 4
Actividad N° 2 - Unidad 4 Actividad N° 2 - Unidad 4
Actividad N° 2 - Unidad 4
Pablo Agustin Novillo Audicio
 
Manual de programacion
Manual de programacionManual de programacion
Manual de programacion
Estudiantes ISI_UCA
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
Infomania pro
 

La actualidad más candente (19)

Java basico
Java basicoJava basico
Java basico
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
La prueba del software y los special purpose languages
La prueba del software y los special purpose languagesLa prueba del software y los special purpose languages
La prueba del software y los special purpose languages
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Action script 3_basic
Action script 3_basicAction script 3_basic
Action script 3_basic
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de Compiladores
 
Unidad i antecedentes
Unidad i antecedentesUnidad i antecedentes
Unidad i antecedentes
 
Prg java l
Prg java lPrg java l
Prg java l
 
Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Apun3algol
Apun3algolApun3algol
Apun3algol
 
Taller de c sharp
Taller de c sharpTaller de c sharp
Taller de c sharp
 
Actividad N° 2 - Unidad 4
Actividad N° 2 - Unidad 4 Actividad N° 2 - Unidad 4
Actividad N° 2 - Unidad 4
 
Manual de programacion
Manual de programacionManual de programacion
Manual de programacion
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
 

Similar a Presentacion2

TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
Marta Quintero
 
programación :)
programación :)programación :)
programación :)
Dacota del Norte
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
Uniminuto - San Francisco
 
3 Conceptos progamacion-tema3
3 Conceptos progamacion-tema33 Conceptos progamacion-tema3
3 Conceptos progamacion-tema3
Elba Sepúlveda
 
Tema1 b
Tema1 bTema1 b
Presentacion c
Presentacion cPresentacion c
Presentacion c
Presentacion cPresentacion c
Presentacion
PresentacionPresentacion
Algoritmos - Curso UNE
Algoritmos - Curso UNEAlgoritmos - Curso UNE
Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01
Fernando Jim
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
lupitagarcia07
 
Programacion
ProgramacionProgramacion
Programacion
AmableHerrera
 
QUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMASQUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMAS
sergiosalazarcano
 
Presentacion info
Presentacion infoPresentacion info
Presentacion info
mariopoza00
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
MaraIsabel87
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
KathGon1
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
Katherine Gonzales
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
Ts101924450Ts101924450
BRANDON VELASQUEZ
BRANDON VELASQUEZBRANDON VELASQUEZ
BRANDON VELASQUEZ
Brandon Velasquez Romero
 

Similar a Presentacion2 (20)

TEMA Nº 1
TEMA Nº 1TEMA Nº 1
TEMA Nº 1
 
programación :)
programación :)programación :)
programación :)
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
3 Conceptos progamacion-tema3
3 Conceptos progamacion-tema33 Conceptos progamacion-tema3
3 Conceptos progamacion-tema3
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 
Presentacion c
Presentacion cPresentacion c
Presentacion c
 
Presentacion c
Presentacion cPresentacion c
Presentacion c
 
Presentacion
PresentacionPresentacion
Presentacion
 
Algoritmos - Curso UNE
Algoritmos - Curso UNEAlgoritmos - Curso UNE
Algoritmos - Curso UNE
 
Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01Tema1b 120417003759-phpapp01
Tema1b 120417003759-phpapp01
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
QUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMASQUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMAS
 
Presentacion info
Presentacion infoPresentacion info
Presentacion info
 
Conceptos Básicos de Programación
Conceptos Básicos de ProgramaciónConceptos Básicos de Programación
Conceptos Básicos de Programación
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
BRANDON VELASQUEZ
BRANDON VELASQUEZBRANDON VELASQUEZ
BRANDON VELASQUEZ
 

Más de Actuaria, Facultad de Ciencias, UNAM

Diagrama er extendido
Diagrama er extendidoDiagrama er extendido
Presentacion6
Presentacion6Presentacion6
Triangulo
TrianguloTriangulo
Tema4 buenas practicas
Tema4 buenas practicasTema4 buenas practicas
Tema4 buenas practicas
Actuaria, Facultad de Ciencias, UNAM
 
Tema3 modelo entidadrelacion
Tema3 modelo entidadrelacionTema3 modelo entidadrelacion
Tema3 modelo entidadrelacion
Actuaria, Facultad de Ciencias, UNAM
 
Tema2 bases dedatosrelacional
Tema2 bases dedatosrelacionalTema2 bases dedatosrelacional
Tema2 bases dedatosrelacional
Actuaria, Facultad de Ciencias, UNAM
 
Tema 1 base de datos
Tema 1   base de datosTema 1   base de datos
P1
P1P1
Presentacion5
Presentacion5Presentacion5
Presentacion4
Presentacion4Presentacion4
Presentacion1
Presentacion1Presentacion1

Más de Actuaria, Facultad de Ciencias, UNAM (11)

Diagrama er extendido
Diagrama er extendidoDiagrama er extendido
Diagrama er extendido
 
Presentacion6
Presentacion6Presentacion6
Presentacion6
 
Triangulo
TrianguloTriangulo
Triangulo
 
Tema4 buenas practicas
Tema4 buenas practicasTema4 buenas practicas
Tema4 buenas practicas
 
Tema3 modelo entidadrelacion
Tema3 modelo entidadrelacionTema3 modelo entidadrelacion
Tema3 modelo entidadrelacion
 
Tema2 bases dedatosrelacional
Tema2 bases dedatosrelacionalTema2 bases dedatosrelacional
Tema2 bases dedatosrelacional
 
Tema 1 base de datos
Tema 1   base de datosTema 1   base de datos
Tema 1 base de datos
 
P1
P1P1
P1
 
Presentacion5
Presentacion5Presentacion5
Presentacion5
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Presentacion1
Presentacion1Presentacion1
Presentacion1
 

Presentacion2

  • 1. Contenido • Tipos de Lenguajes • Traducción y Ejecución de un Programa • Paradigmas de Programación • Introducción al concepto de Objeto • Pasos en el desarrollo de un software • Documentación: Diagramas de Flujo, Diccionario de Datos y Pseudocódigo
  • 2. Traducción/Ejecución de un programa Primero debemos saber que los lenguajes de clasifican en: • Lenguajes de Alto Nivel • Lenguajes de Bajo Nivel (ensambladores) • Lenguajes de máquina
  • 3. Traducción/Ejecución de un programa Problema Algoritmo en pseudocódigo o DF Algoritmo en Java Código de Máquina (Ejecutable) Resultado Codificación Traducción y Ejecución
  • 4. Traducción/Ejecución de un programa Intérprete: Es un programa que traduce un código fuente en la medida en que lo va ejecutando instrucción por instrucción Instrucción 1 Instrucción 2 .. …… Instrucción n Traduce y ejecuta Traduce y ejecuta Traduce y ejecuta
  • 5. Traducción/Ejecución de un programa • Compilador: Es un programa que traduce los programas fuentes escritos en lenguaje de alto nivel a lenguaje de máquina también llamado programa objeto. • La traducción se realiza en una sola operación llamada compilación, es decir se traduce todo el programa en un solo bloque. • El programa compilado es ejecutable siempre y cuando se hayan depurado todos los errores. • Solo se deberá compilar de nuevo si se modifica alguna instrucción del fuente.
  • 6. Traducción/Ejecución de un programa • Compilador Instrucción 1 Instrucción 2 .. …… Instrucción n Traduce a código de maquina Real o “virtual”
  • 7. Traducción/Ejecución de un programa • Para conseguir el programa de máquina real se utiliza un programa llamado enlazador (linker) • Un enlazador : es un programa que toma el código objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s) biblioteca(s) con lo que finalmente produce un archivo ejecutable. • En el caso de los programas enlazados dinámicamente, el enlace entre el programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecución del programa
  • 8. Traducción/Ejecución de un programa Programa fuente Compilador Programa objeto enlazador Programa ejecutable en lenguaje de máquina Programa fuente Compilador Existen errores de compilación no Programa Programa ejecutable Ejecución Modificación del programa enlazador
  • 9. Paradigmas de Programación • Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. • No es mejor uno que otro, sino que cada uno tiene sus ventajas y sus inconvenientes. • En una primera clasificación, se encuentran dos grandes grupos en donde es posible englobar casi todos los paradigmas de programación conocidos hasta ahora.
  • 10. Paradigmas de Programación Paradigmas de Programación Programación Declarativa Programación Imperativa Funcional Orientada a Objetos Lógica Visual, Orientada a Eventos, Orientada a Aspectos, etc.
  • 11. Programación Imperativa • Consiste en una serie de comandos que una computadora ejecutará. • Estos comandos detallan de forma clara y específica el cómo hacer las cosas y llevarán al programa a través de distintos estados. • Los elementos mas importantes de este paradigma son: • Variables, Tipos de datos, Expresiones y Estructuras de control. • FORTRAN, COBOL, Pascal, BASIC, ALGOL, C y Ada
  • 12. Programación Declarativa • En contraste con el Paradigma Imperativo, solicita al programador que describa el problema en lugar de encontrar una solución algorítmica al problema. • Difiere de los otros paradigmas no sólo en sintaxis y semántica, sino que en la lógica representa conocimiento, el cual es manipulado mediante inferencias. • Utiliza el principio de razonamiento lógico para responder a las preguntas o cuestiones consultadas. • Especifica el que y no el cómo hacerlo. • Esta basado en la deducción. • El lenguaje por excelencia es el Prolog.
  • 13. Programación Funcional • Considera al programa como una función matemática. • Donde el dominio representaría el conjunto de todas las entradas posibles (inputs) y el rango el conjunto de todas las salidas posibles (outputs).
  • 15. Programación Funcional Podríamos pensar que cualquier tipo de programación podría ser clasificada como programación funcional y esto es relativamente cierto a excepción de unos puntos clave: • No existe el concepto de variables y consecuentemente el de asignación (los parámetros son fijos) • Existe una propiedad llamada transparencia referencial, la cual indica que una función solo depende de sus parámetros y que tendrá efecto únicamente en su resultado. • Una función puede ser utilizada como parámetros y resultados de cualquier otra función. • Standard ML, Haskell , Scheme y LISP
  • 16. Programación Lógica Aunque Prolog es el lenguaje mas representativo de este paradigma usaremos ejemplos en Structured Query Language (SQL) un lenguaje para operar bases de datos.
  • 17. Programación Lógica Analicemos este cuadro: Título Estelar Género Estreno Nosotros los Pobres Pedro Infante Drama 1948 El Padrecito Cantinflas Comedia 1964 Pepe el Toro Pedro Infante Drama 1952 ¡Espérame en Siberia, Mauricio Comedia 1969 vida mía! Garcés Santo y Blue Demon contra los monstruos El Santo Sci‐Fi Mexicano 1969
  • 18. Programación Lógica Ahora, suponiendo este conjunto vamos a realizar una operación sobre él: Una consulta que devolvería el conjunto ordenado de forma descendente por su fecha de estreno: SELECT * FROM películas ORDER BY estreno DESC
  • 19. Programación Lógica Quedando como resultado: Título Estelar Género Estreno ¡Espérame en Siberia, vida mía! Mauricio Garcés Comedia 1969 Santo y Blue Demon contra los monstruos El Santo Sci‐Fi Mexicano 1969 El Padrecito Cantinflas Comedia 1964 Pepe el Toro Pedro Infante Drama 1952 Nosotros los Pobres Pedro Infante Drama 1948
  • 20. Programación Orientada a Objetos Basada en objetos y cómo interactúan entre ellos para lograr un objetivo. • Abstracción • Objeto • Clase • Herencia
  • 22. Paso en el desarrollo de un Software Aunque el proceso de programa es, esencialmente creativo, se pueden considerar una serie de pasos comunes: • Análisis del problema • Diseño del algoritmo • Codificación • Compilación y ejecución • Verificación • Depuración • Mantenimiento • Documentación
  • 23. Análisis del Problema • Obtener una clara definición del problema, en donde se contemple QUE debe hacer el programa. • Que entradas se requieren? (tipos de datos y cantidad). • ¿Cuál es la salida deseada? (tipos de datos de los resultados y cantidad). • ¿Qué procesos producen la salida deseada? • Requisitos o requerimientos adicionales. • Restricciones a la solución.
  • 24. Análisis del Problema ¡Preparar café! Que tipo de café? Que tipo de máquina usar para su preparación? Cuantas tazas de café? …..
  • 25. Diseño de la Solución • COMO hace el programa la tarea solicitada. • La resolución de un problema complejo se realiza dividiendo un problema complejo en sub problemas: diseño descendente o modular. • Refinamientos sucesivos: Romper el problema y expresar cada paso en forma más detallada. • Cualquier programa bien diseñado consta de un programa principal. • Los módulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuaci combinados entre si.
  • 26. Diseño de la Solución (DS) • Es el proceso que convierte el resultado del análisis del problema en un diseño modular con refinamientos sucesivos que permitan un a posterior traducción a un lenguaje de alto nivel. • Herramientas para el diseño: Diagramas de Flujo y Pseudocódigo.
  • 27. Herramientas para el DS Diagramas de Flujo: es una representación gráfica de un algoritmo. Los símbolos utilizados han sido normalizados por el Instituto Nacional de Normalización (ANSI‐ISO) y los mas frecuentemente utilizados son:
  • 28. Herramientas para el DS Termina l Subprograma Entada/Salida Proceso Decisión Sí No
  • 29. Herramientas para el DS • Pseudocódigo: Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o el español. • Facilitan tanto la lectura como la escritura de los programas. • Generalmente esta compuesto por palabras reservadas.
  • 30. Herramientas para el DS ¡Preparar café! 1. Preguntar por el numero de tazas de cafe a preparar: n 2. Vertir n* 200cc de agua desde la jarra a la cafetera 3. Colocar n cucharadas de café en la cafetera 4. Encender la cafetera y esperar a que el café termine de pasar 5. Sírvase el café
  • 31. Codificación • Escritura en un lenguaje de programación de la representación del algoritmo desarrollado en la etapa previa (diseño). • Dado que el diseño es independiente del lenguaje de programación, el código puede ser escrito con igual facilidad en diferentes lenguajes. • Documentación interna: comentarios significativos incluidos dentro del código fuente, que permiten que los programas sean más fáciles de comprender.
  • 32. Codificación public class Principal{ public static void main( String [] args) { System.out.println("preparando cafe!"); } }
  • 34. Verificación y Depuración • Depuración: Encontrar errores en el programa y corregirlos o eliminarlos: o Errores de compilación o Errores de ejecución: instrucciones que se pueden comprender pero no ejecutar. o Errores lógicos: errores de análisis y/o diseño.
  • 35. Verificación y Depuración • La Verificación consiste en ejecutar el programa con una amplia variedad de datos de entrada para corregir o eliminar “bugs”. • Se debe utilizar diferentes datos de pruebas para este proceso: o Valores normales de entrada o Valores extremos para comprobar los limites o Valores especiales
  • 36. Documentación • Descripciones de los pasos a dar en el proceso de resolución de un problema. • Programas pobremente documentados son difíciles de leer, mas difíciles de depurar y casi imposible de mantener y modificar. • La documentación incluye: análisis, diagramas de flujo y/o pseudocódigos, diccionario de datos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados. • Es vital cuando a futuro se desee cambiar el programa. Estos cambios se denominan mantenimiento del programa.
  • 37. Documentación • El diccionario de datos es un listado organizado de todos los datos que pertenecen a un sistema. • El objetivo de un diccionario de datos es dar precisión sobre los datos que se manejan en un sistema, evitando así malas interpretaciones o ambigüedades. • Define con precisión los datos de entrada, salida, componentes de almacenamiento, flujos, detalles de las relaciones entre almacenes, etc. • Los diccionarios de datos son buenos complementos a los diagramas de flujo de datos, los diagramas de entidad‐relación, etc.
  • 38. Documentación • Variables • Tipos de Variables: ENTERAS, REALES, BOLEANAS, STRING, CARACTER • Procesos y Funciones • Estructuras de Control – SI (condición) ENTONCES instrucciones FIN SI
  • 39. Documentación: DF 39 INICIO Esta encendida tazas tazas entre 1 y 12 prepararCafe Esta Listo ! No encendida No se puede preparar FIN calcularCafe
  • 40. Documentación: Pseudocódigo 40 INICIO ENTEROS tazas, cantidadCafe BOOLEANO encendida encendida = falso SI estaEncendida() ENTONCES LEER tazas SI (tazas < 1 o tazas > 12) ENTONCES ESCRIBIR no se puede preparar café SINO cantidadCafé = calcCafe(tazas) prepararCafe() ESCRIBIR esta listo: café disfrutalo! FIN SI SINO ESCRIBIR la cafetera no esta encendida FIN SI FIN
  • 41. Documentación: DD VARIABLES: tazas: valor de entrada. Entero que representa la cantidad de tazas de café a preparar. Los valores que puede tomar son 1..12 cantidadCafe: entero que representa la cantidad de café (en grano o molido) requerida para preparar tazas de café. Esta cantidad es calculada por prepararCafé() encendida: boleano que indica si la cafetera esta encendida o apagada. Los valores que puede tomar son: verdadero, falso PROCESOS: calcCafé: Calcula la cantidad de café necesaria para preparar la cantidad de tazas que desea el usuario. Hacemos abstracción acerca de su implementación. prepararCafe: ….. 41