Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1. INTRODUCCION.
El hardware o soporte físico es todo aquello que podemos tocar: CPU, disco duro, placa,
disquetes, monitor, etc.
Memoria principal
RAM
El software o soporte lógico es todo aquello que no es hardware: los programas, ficheros,
bases de datos, el sistema operativo, etc. El contenido de un disquete es software mientras que
el disquete por sí mismo es hardware.
El software se estructura en capas, donde cada capa trata de crear una abstracción para la capa
siguiente que así puede tratar con un dispositivo virtual más sencillo de utilizar.
Fundamentos de la programación 2
Aplicaciones de usuario
Herramientas y utilidades
Sistema Operativo
Hardware
2. Sistemas operativos.
Al utilizar un sistema operativo el usuario no tiene que tratar con el hardware directamente
sino con una máquina virtual más sencilla de utilizar.
El sistema operativo aisla todos los aspectos técnológicos del computador de forma que el
usuario no tiene porqué conocer cómo funcionan estos elementos de forma exacta.
3. La programación de ordenadores.
3.1. Definiciones
Programa
ORDENADOR Resultados
Datos
Fundamentos de la programación 3
Estructuras
Análisis Codificación
de datos
PROBLEMA PROGRAMA
Algoritmo
Un algoritmo es una secuencia finita de pasos que permite obtener sin ambigüedad la
solución a un problema en un tiempo finito.
Los ordenadores son máquinas que sólo entienden un lenguaje binario, es decir, sólo
entienden dos estados (encendido y apagado). Conceptualmente podemos considerar que el
ordenador está compuesto por millones de interruptores donde cada interruptor puede tomar
los valores 1 ó 0, donde 1 significa que pasa corriente por ese interruptor y 0 significa que no
pasa.
Sin embargo, los seres humanos usamos el lenguaje natural que cuenta con muchos más
símbolos y reglas, que sin embargo no es entendido por el computador.
Los lenguajes de bajo nivel son aquellos que están más próximos al lenguaje que entiende el
computador.
El lenguaje máquina:
- es un lenguaje de 1s y 0s que es directamente entendible por el ordenador
- es muy engorroso
- es fácil cometer errores y difícil detectarlos
- depende del hardware
Fundamentos de la programación 4
El lenguaje ensamblador:
- es un lenguaje de etiquetas, donde se sustituye cada instrucción máquina por una
etiqueta más fácil de recordar que un conjunto de 1s y 0s
- precisa que otro programa traduzca las etiquetas a lenguaje máquina
- menos engorroso que el lenguaje máquina
- depende del hardware
Los lenguajes de alto nivel están más próximos al lenguaje natural. Por tanto no son
entendibles directamente por el computador. Es necesario hacer una traducción.
Traducción
Código fuente Código máquina
En esta asignatura vamos a aprender a programar con el lenguaje C, que es de alto nivel y
compilado.
Fundamentos de la programación 5
1. Primera generación.
Códigos binarios.
Ensamblador.
Depende del soporte físico concreto.
2. Segunda generación.
Lenguajes de alto nivel.
Tipos de datos abstarctos: vectores, matrices.
Estructuras de control.
Ejemplos: Fortran, Cobol, Algol, Basic.
3. Tercera generación.
Programación estructurada.
Fuertemente tipados.
Se facilita la verificación en compilación.
Ejemplos: Pascal, Modula-2, C, Ada.
Lenguajes dirigidos a objetos, funcional o lógico: Smalltalk, C++, Eiffel,
LISP, PROLOG.
4. Cuarta generación.
Mayor nivel de abstracción.
No son de propósito general.
Código poco eficiente: prototipos.
Ejemplos: bases de datos, generadores de programas, cálculo, otros.
Fundamentos de la programación 6
Memoria principal
RAM
La CPU es un circuito electrónico que es el encargado de realizar todos los cálculos y ejecutar las
instrucciones de un programa. Para realizar cualquier cálculo o ejecutar cualquier instrucción en
un momento dado, los operandos necesarios e instrucciones deben almacenarse temporalmente en
los llamados registros internos de la CPU.
Para ejecutar cualquier programa es necesario que éste se encuentre almacenado en la memoria
principal. La CPU va captando las instrucciones y operandos necesarios de esta memoria y
transfiriendo los resultados obtenidos a dicha memoria.
Cargador (S.O)
Disco duro Memoria Principal
Ejecución
CPU
Recordemos que los ordenadores internamente trabajan en binario, luego tanto los datos como las
instrucciones se almacenan con códigos de 1s y 0s (bits). Para ello, la memoria principal se
encuentra estructurada en palabras, donde cada palabra está constituida por varios bits.
Típicamente se usan palabras de 8 bits, llamadas bytes.
Fundamentos de la programación 7
De esta forma, cada byte codifica o bien instrucciones o bien operandos. Para acceder a una
instrucción o a un operando se usa una dirección de memoria, que no es más que el número de
byte donde se encuentra almacenado el dato en la memoria.
1101 1111
Registro instrucciones
1111 0000
línea de
lectura/escritura
en memoria
Fundamentos de la programación 8
Pregunta: si la memoria codifica tanto instrucciones como operandos, ¿cómo distingue la CPU
lo que es instrucción de lo que es operando?
Respuesta: las instrucciones se almacenan en una parte de la memoria y los operandos en otra,
por lo que según de qué rango de direcciones se haya captado el dato se conoce si es una cosa u
otra.