Beruflich Dokumente
Kultur Dokumente
Tema 1:
Conceptos bsicos de programacin
Profesor
Lic. Hctor Lpez Snchez
Instituto de Educacin Superior Pedaggico Pblico Gamaniel Blanco Murillo
CARRERA PROFESIONAL: COMPUTACIN E INFORMTICA
V SEMESTRE -2014
Qu es la Informtica
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Un poco de historia...
Introduccin a la Programacin
Lenguaje de Programacin V
1.2
Qu es la Informtica
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Ms sobre la Historia de la
Informtica en el MIGS
http://www.fdi.ucm.es/migs
Introduccin a la Programacin
Lenguaje de Programacin V
1.3
Qu es una computadora
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Fundamentos de computadores
Introduccin a la
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.4
Un poco de hardware
Tema 1
Dispositivo de salida
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Monitor
Descripcin de
lenguajes de
programacin
Unidad
de CD-ROM
Unidad Central
de Procesamiento
Unidad
de disquetes
Memoria principal
(ambos dentro)
y Unidad de Disco
Duro
Memori
a
Teclado
Ratn
Dispositivos de
entrada
Introduccin a la Programacin
Lenguaje de Programacin V
Memoria
secundaria
1.5
Lenguajes y
Programas
Unidad AritmticoLgica
Ingeniera del
Software
Unidad de Memoria
Descripcin de
lenguajes de
programacin
Ideas importantes:
Un programa es una cadena secuencial de instrucciones
Las instrucciones ordenan al ordenador realizar una
operacin 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
Introduccin a la Programacin
Lenguaje de Programacin V
1.6
Introduccin:
El Hardware
Selector
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Registro de Intercambio
de Datos (RID)
UM
Introduccin a la Programacin
Lenguaje de Programacin V
...
Celdas
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Banco de Registros
Temporales (BRT)
Operador
Acumulador
Introduccin a la Programacin
Lenguaje de Programacin V
UAL
1.8
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Secuenciador
Decodificador
Registro de Instruccin
(RI)
Operacin
operandos
Direcciones de 3
UC
Introduccin a la Programacin
Lenguaje de Programacin V
1.9
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
DECODIFICAR
INSTRUCCIN
CAPTURAR
DATOS
REALIZAR
OPERACIN
CALCULAR
INSTRUCCIN
SIGUIENTE
ALMACENAR
RESULTADOS
La direccin de celda de la
siguiente instruccin se copia al CP
El resultado del Acumulador se copia en la direccin de la celda
del resultado, generalmente indicada en el ltimo operando de la instruccin
(Esto se repite para todos los resultados)
Introduccin a la Programacin
Lenguaje de Programacin V
Operando 1: X
Operando 2: Y
Operando 3: Z
Explicacin en
PIZARRA
1.11
Qu entiende la computadora?
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
1.12
Lenguaje mquina
Tema 1
Introduccin:
El Hardware
Pasos
a = (b + c)/(d + e)
y
x
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Direcc. Temporal X
Introduccin a la Programacin
Lenguaje de Programacin V
1.13
Inconvenientes
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.14
Lenguaje ensamblador
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
SUM = La suma
DIV = La divisin
a = (b + c)/(d + e)
SUM B, C, X
SUM D, E, Y
DIV
Introduccin a la Programacin
Lenguaje de Programacin V
X, Y, A
1.15
Cuestiones
Cmo entiende la mquina el lenguaje ensamblador?
Si las direcciones de memoria son simblicas en qu
direcciones de memoria se colocan los datos?
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Cdigo fuente
(lenguaje
ensamblador)
Programa
ensamblador
Cdigo objeto
(lenguaje
mquina)
Programa ensamblador
Traduccin a cdigo binario de cdigos simblicos de
operacin
Traduccin de las direcciones simblicas a direcciones
reales de memoria
1.16
Lenguajes y
Programas
Ingeniera del
Software
Capacidad de abstraccin
Abstraccin procedimental (poder representar
operaciones ms complejas como calcular las races de
un polinomio)
Abstraccin de datos (poder representar informacin
ms compleja como el estado de una cuenta bancaria)
Descripcin de
lenguajes de
programacin
Compilador
Analiza el programa fuente y lo traduce a lenguaje mquina
Ej. Turbo Pascal es un compilador de Pascal
Introduccin a la Programacin
Lenguaje de Programacin V
1.17
El sistema operativo
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
1.18
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.19
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
Procesadores de texto
Hojas de clculo
Sistemas de gestin de bases de datos
Herramientas de diseo e ingeniera
Juegos
...
1.20
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.21
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.22
Explicacin en
PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V
1.23
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento
Introduccin a la Programacin
Lenguaje de Programacin V
1.24
Casa
Quiero 3 habitaciones,
2 baos, garaje...
Planos, diseo circuito
elctrico y de agua...
Se construye la casa
Se comprueba la solidez de la
estructura, el funcionamiento de
las instalaciones, el acabado...
Algunas reparaciones, se cierra
la terraza, se instala aire
acondicionado...
Software
Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento
Pequeas modificaciones o
correcciones (parches),
actualizaciones, etc...
1.25
Anlisis
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.26
Diseo
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.27
Implementacin
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.28
Pruebas
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.29
Mantenimiento
Actividad en la que la aplicacin se modifica para
satisfacer cambios o ampliaciones en los requisitos del
usuario, corregir errores, etc.
Es la actividad ms costosa en el desarrollo de
software!
(Tened en cuenta que hay programas que estn muchos
aos en funcionamiento y lo usan miles de personas)
Estos costes pueden aliviarse si se hacen bien todo lo
anterior
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
*Otras actividades
Introduccin a la Programacin
Lenguaje de Programacin V
1.30
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.31
Lenguajes de programacin
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
Nivel sintctico
Descripcin de la forma (= sintaxis) de las
instrucciones
Suelen utilizarse lenguajes artificiales con mucho
formalismo (= rigor matemtico y lgico)
Nivel semntico
Descripcin del significado (= semntica) de las
instrucciones
Puede utilizarse lenguaje natural (espaol, ingls,
etc.) o intentar expresarse de manera ms formal
Nivel pragmtico
Descripcin de cmo se utilizan las instrucciones
Suelen utilizarse tutoriales y ejemplos de
programas
1.32
Lenguajes y
Programas
Ingeniera del
Software
Formalismos utilizados:
Notacin BNF (Backus-Naur Form)
Notacin EBNF (Extended Backus-Naur Form)
Diagramas sintcticos
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
1.33
Notacin BNF
TERMINAL
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Introduccin a la Programacin
Lenguaje de Programacin V
Explicacin
Sintaxis de los nmeros reales en notacin
BNF? en
PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V
1.35
Notacin EBNF
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
BNF
EBNF
TERMINAL
terminal
<no terminal>
No-terminal
Metasmbolo
::= Equivalencia
|Alternativa
Metasmbolo
::=
Equivalencia
|
Alternativa
(...) Agrupacin
[...] Aparicin opcional
{...}
Aparicin 0, 1 o ms
veces
Recursividad permitida
Recursividad NO permitida (se suple con
{})
Introduccin a la Programacin
Lenguaje de Programacin V
Explicacin en
PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V
1.37
Diagramas sintcticos
Tema 1
Introduccin:
El Hardware
TERMINAL
Lenguajes y
Programas
No Terminal
*En las reglas de produccin el no terminal
de la izquierda se deja sin recuadro
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Alternativa
Aparicin 0, 1 o ms veces
Introduccin a la Programacin
Lenguaje de Programacin V
Aparicin opcional
1.38
Ingeniera del
Software
Descripcin de
lenguajes de
programacin
Dgito
Dgito
0
1
PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V
1.39
Federico Peinado
www.federicopeinado.es
1.40