Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informa
Informa
Tema 1:
Conceptos básicos de programación
Profesor
Federico Peinado
Lenguajes y
Programas ordenadores.
Ingeniería del
(Extraído del Diccionario de la RAE, 2001)
Software
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.1
Qué es la Informática
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.2
Qué es una computadora
Lenguajes y
Programas matemáticos y lógicos mediante la utilización automática de
Ingeniería del
programas informáticos.
Software
Descripción de
lenguajes de
programación
Hardware (Voz ingl.).1. m. Software (Voz ingl.).1. m.
Inform. Conjunto de los Conjunto de programas,
componentes que integran la instrucciones y reglas
parte material de una informáticas para ejecutar
computadora. ciertas tareas en una
computadora.
(Extraído del Diccionario de la RAE, 2001)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.3
Un poco de hardware
Tema 1
Dispositivo de salida
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software Monitor Carcasa (tipo torre)
Descripción de
lenguajes de
programación Unidad
de CD-ROM
Unidad
Unidad Central de disquetes
de Procesamiento Memoria principal
Memori
a (ambos dentro)
y Unidad de Disco
Duro
Teclado
Ratón
Memoria
Dispositivos de secundaria
entrada
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.4
Un poco de hardware: el Modelo Von Neumann
Ingeniería del
Software
Ideas importantes:
Un programa es una cadena secuencial de instrucciones
Las instrucciones ordenan al ordenador realizar una
operación sobre unos datos
Las instrucciones se ejecutan una tras otra, aunque puede
haber bifurcaciones condicionales (usar un dato para
decidir entre dos instrucciones diferentes por donde
continuar)
El computador procesa tanto instrucciones como sus datos
Las instrucciones y los datos se almacenan juntos en memoria
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.5
Un poco de hardware: la Unidad de Memoria (UM)
Lenguajes y
Selector
Programas
Descripción de
lenguajes de
programación
UM Celdas
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.6
Un poco de hardware: la Unidad Aritmético-Lógica (UAL)
Ingeniería del
Software Banco de Registros
Descripción de Temporales (BRT)
lenguajes de
programación
Operador
Acumulador UAL
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.7
Un poco de hardware: la Unidad de Control (UC)
Lenguajes y
Programas
Ingeniería del
Software
Descripción de Secuenciador
lenguajes de
programación Contador de Programa (CP)
Decodificador
UC
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.8
Ejecución de una instrucción
REALIZAR
OPERACIÓN
CALCULAR
INSTRUCCIÓN
SIGUIENTE ALMACENAR
RESULTADOS
La dirección de celda de la
siguiente instrucción se copia al CP
El resultado del Acumulador se copia en la dirección de la celda
del resultado, generalmente indicada en el último operando de la instrucción
(Esto se repite para todos los resultados)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión
Ejecución de una instrucción (cont.)
1.10
¿Qué entiende la computadora?
Tema 1
Introducción:
El Hardware La computadora manipula únicamente información digital:
Lenguajes y
Programas
Datos e instrucciones se codifican como
Ingeniería del
Software dígitos binarios (0’s y 1’s)
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.11
Lenguaje máquina
Tema 1 a = (b + c)/(d + e)
Introducción: x y
El Hardware
Pasos
Lenguajes y sumar b y c, y guardar el resultado en una dirección de memoria
Programas
temporal X
Ingeniería del sumar d y e, y guardar el resultado en una dirección de memoria
Software temporal Y
Descripción de dividir el contenido de X por el de Y y guardar el resultado en la
lenguajes de
programación dirección de memoria de a
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.12
Lenguaje máquina (cont.)
Tema 1 Inconvenientes
Introducción:
El Hardware
Grandes posibilidades de error
Portabilidad: máquina-dependiente
Lenguajes y
Programas No se puede llevar el programa a otra máquina porque,
Ingeniería del entre otras cosas, el repertorio de instrucciones es distinto
Software
Tedioso
Descripción de
lenguajes de
programación
Nula capacidad de abstracción
Es muy complicado formular una solución a problemas del
mundo real con ese lenguaje tan específico
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.13
Lenguaje ensamblador
Lenguajes y
Programas
Ejemplo de instrucción de código ensamblador
Ingeniería del
Software
codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes
Descripción de
lenguajes de
programación
Códigos simbólicos de las operaciones
SUM = La suma
DIV = La división
a = (b + c)/(d + e)
SUM B, C, X
SUM D, E, Y
DIV X, Y, A
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.14
Lenguaje ensamblador (cont.)
Tema 1 Cuestiones
Introducción:
El Hardware
¿Cómo entiende la máquina el lenguaje ensamblador?
Si las direcciones de memoria son simbólicas ¿en qué
direcciones de memoria se colocan los datos?
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
Código fuente Programa ensamblador Código objeto
programación (lenguaje ensamblador) (lenguaje máquina)
Programa ensamblador
Traducción a código binario de códigos simbólicos de operación
Traducción de las direcciones simbólicas a direcciones reales de
memoria
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.15
Lenguajes de alto nivel
Tema 1
Lenguaje que permite representar el mecanismo de
Introducción:
resolución de los problemas usando instrucciones
El Hardware
independientemente de la computadora
Lenguajes y Cercanía conceptual al programador
Programas
Pascal, C, Java, etc. son lenguajes de alto nivel
Ingeniería del
Capacidad de abstracción
Software
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.16
El sistema operativo
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.17
El sistema operativo (cont.)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.18
Aplicaciones de propósito específico
Procesadores de texto
Lenguajes y
Programas
Ingeniería del Hojas de cálculo
Software
Sistemas de gestión de bases de datos
Descripción de
lenguajes de
programación
Herramientas de diseño e ingeniería
Juegos
...
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.19
La programación: resolución de problemas
Descripción de
Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite
lenguajes de hallar la solución de un problema.
programación
(Extraído del Diccionario de la RAE, 22ª edición)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.20
La programación: resolución de problemas (cont.)
Descripción de
lenguajes de sintaxis de uno o varios lenguajes de programación
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.21
La programación: resolución de problemas (cont.)
Tema 1
El problema del montón de fichas
Introducción:
El Hardware
Supongamos que tenemos un montón de fichas, cada una de las cuales tiene
escrito el nombre de una persona junto con otros datos personales (fecha de
Lenguajes y nacimiento, dirección, número de teléfono). Las fichas están ordenadas
Programas
alfabéticamente por el nombre.
Ingeniería del
Software Creamos una nueva ficha y deseamos incorporarla al montón existente.
Descripción de ¿Cómo dividimos el montón original en dos montones, tales que todas las
lenguajes de
programación fichas del primer montón precedan a la nueva en la ordenación y todas las
del segundo no le precedan, pudiendo estar alguno de los montones finales
vacío?
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.22
El Ciclo de Vida del Software
Descripción de
lenguajes de
programación
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.23
¿Qué significa todo esto?
Casa Software
¿Qué tiene que hacer
“Quiero 3 habitaciones, Análisis exactamente nuestro
2 baños, garaje...” programa?
¿Cómo vamos a organizar
Planos, diseño circuito
eléctrico y de agua...
Diseño el programa? ¿Qué partes
tendrá y cómo funcionará?
1.24
Fases en el desarrollo de una aplicación (cont.)
Tema 1 Análisis
Introducción:
El Hardware
Actividad en la que se analizan y clarifican los diferentes
aspectos del problema que debe ser resuelto por la aplicación,
Lenguajes y
Programas
con el fin de establecer claramente qué debe ser construido
Ingeniería del
El resultado es, normalmente, un documento de requisitos
Software software que especifica claramente las funcionalidades de la
Descripción de aplicación
lenguajes de
programación
Funcionalidad = lo que tiene que hacerse (sin saber
todavía cómo)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.25
Fases en el desarrollo de una aplicación (cont.)
Tema 1 Diseño
Introducción:
El Hardware
Actividad en la que se decide la organización y la estructura de
una aplicación que satisfaga los diferentes requisitos
Lenguajes y
Programas
establecidos en la fase de análisis
Ingeniería del
El resultado es uno (o varios) documentos de diseño que
Software especifican claramente cómo construir la aplicación
Descripción de
lenguajes de
Mientras que el análisis se ocupa de qué hay que hacer, el
programación
diseño se ocupa de cómo hacerlo
Hay varias técnicas de diseño, nosotros estudiaremos una de las
más básicas: el diseño funcional
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.26
Fases en el desarrollo de una aplicación (cont.)
Tema 1 Implementación
Introducción:
El Hardware
Actividad en la que se construye (codifica) la aplicación
utilizando un lenguaje de programación concreto, y siguiendo,
Lenguajes y
Programas
las directrices marcadas por los documentos de diseño
Ingeniería del
Si las actividades anteriores han sido realizadas correctamente,
Software la fase de implementación debería ser bastante trivial
Descripción de
lenguajes de
La implementación se encarga de concretar el diseño teniendo
programación
en cuenta un lenguaje y herramienta de desarrollo concreta
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.27
Fases en el desarrollo de una aplicación (cont.)
Tema 1 Pruebas
Introducción:
El Hardware
Actividad en la que se asegura que la aplicación construida
satisface los requisitos del usuario
Se debe invertir mucho tiempo en hacer pruebas (¡mucho más
Lenguajes y
Programas
Ingeniería del
que en su implementación!)
Software
Dos pasos diferenciados
Verificación: ¿Se ajusta la aplicación construida a los
Descripción de
lenguajes de
requisitos establecidos?
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.28
Fases en el desarrollo de una aplicación (cont.)
Tema 1 Mantenimiento
Introducción:
El Hardware
Actividad en la que la aplicación se modifica para satisfacer
cambios o ampliaciones en los requisitos del usuario, corregir
Lenguajes y
Programas
errores, etc.
Ingeniería del
¡Es la actividad más costosa en el desarrollo de software!
Software (Tened en cuenta que hay programas que están muchos años
Descripción de en funcionamiento y lo usan miles de personas)
lenguajes de
programación
Estos costes pueden aliviarse si se hacen bien todo lo anterior
*Otras actividades
Confección de los manuales de usuario
Planificación y control del proyecto
Gestión de versiones
...
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.29
Fases en el desarrollo de una aplicación (cont.)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.30
Lenguajes de programación
Descripción de
lenguajes de Nivel semántico
programación
Descripción del significado (= semántica) de las
instrucciones
Puede utilizarse lenguaje natural (español, inglés, etc.) o
intentar expresarse de manera más formal
Nivel pragmático
Descripción de cómo se utilizan las instrucciones
Suelen utilizarse tutoriales y ejemplos de programas…
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.31
Sintaxis de los lenguajes de programación
Lenguajes y
Programas
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.32
Notación BNF
Tema 1
TERMINAL Símbolo (ej. una palabra) del lenguaje a definir
(se escribe en letras mayúsculas)
Introducción:
El Hardware
Descripción de
lenguajes de Regla de producción Descripción de un símbolo no terminal como
programación
equivalente a 1) una combinación de terminales
y no terminales, o 2) al vacío (Ø)
(Un mismo no terminal puede tener varias reglas de producción)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.33
Notación BNF (cont.)
Tema 1
Recursividad
Que un símbolo aparezca dentro de su propia definición
¡OJO! Pero evitando las definiciones circulares
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.34
Notación EBNF
Lenguajes y
Programas
BNF EBNF
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.35
Notación EBNF (cont.)
Tema 1
Dígito ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.36
Diagramas sintácticos
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
TERMINAL No Terminal
Ingeniería del *En las reglas de producción el no terminal
Software de la izquierda se deja sin recuadro
Descripción de
lenguajes de
programación
Alternativa
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.37
Diagramas sintácticos (cont.)
Lenguajes y
Programas
Nº entero positivo
Dígito
Ingeniería del
Software Dígito
+
Descripción de
lenguajes de
programación
0
Dígito
1
…
9
¿Sintaxis de los números reales en notación de diagramas
sintácticos?
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.38
Críticas, dudas, sugerencias…
Federico Peinado
www.federicopeinado.es
1.39