Está en la página 1de 8

Fundamentos de la programación 1

Tema 1. INTRODUCCION.

1. Concepto de sistema informático.

Sistema: conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a


determinado objeto.

Un sistema se compone a su vez de otros sistemas.

Componentes de un sistema informático: hardware y software.

El hardware o soporte físico es todo aquello que podemos tocar: CPU, disco duro, placa,
disquetes, monitor, etc.

Periféricos de entrada: Periféricos de salida: Periféricos de


- Teclado - Monitor almacenamiento:
- Ratón - Impresora - Disco duro
- Escáner - Altavoces - Disco flexible
- Unidad de cinta

Memoria principal
RAM

Unidad central de proceso (Pentium, Pentium III, AMD K7, etc)


CPU

Esquema básico del hardware de un computador

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.

Esta asignatura trata sobre el software.

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

Mitos falsos sobre el software:

- El hardware es más importante que el software.


- El software es fácil de desarrollar.
- El software consiste únicamente en programas ejecutables.
- El desarrollo de software es sólo una labor de programación.
- Es normal que el software tenga errores.

2. Sistemas operativos.

Un sistema operativo es un programa o conjunto de programas de control que tiene por


objeto facilitar el uso del computador y conseguir que éste se utilice eficientemente.

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.

El sistema operativo trata de gestionar de manera eficiente los recursos disponibles.

3. La programación de ordenadores.

3.1. Definiciones

Un ordenador es un dispositivo que es capaz de ejecutar un conjunto de instrucciones


previamente almacenadas, llamado programa.

Programa
ORDENADOR Resultados
Datos
Fundamentos de la programación 3

La programación de ordenadores es un conjunto de técnicas, métodos y reglas que permiten


construir programas de ordenador legibles, correctos y eficientes.

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.

Codificación: expresión de un algoritmo en un lenguaje de programación determinado.

Componentes de un lenguaje de programación:


- símbolos  léxico
- reglas  sintácticas
 semánticas

3.2 Lenguajes de programación.

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.

Existen varios tipos de lenguajes de programación:

Lenguajes de bajo nivel: lenguaje máquina


lenguaje ensamblador

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

Lenguajes de alto nivel: Intérpretes


Compiladores

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

Según la forma en que se haga esta traducción existen:


- Lenguajes interpretados (BASIC, PERL, JAVA):
o la traducción se realiza cada vez que se ejecuta el programa
o son más lentos
o para ejecutar el programa se precisa el intérprete

- Lenguajes compilados (PASCAL, C, C++):


o la traducción se hace una única vez
o son más rápidos
o se obtiene un ejecutable en lenguaje máquina
o si se cambia el código fuente hay que volver a compilar

Ventajas de lenguajes de alto nivel:


- Más flexibles y fáciles de aprender
- Independencia de la máquina y del SO.
- Portabilidad a otras plataformas.

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

Lenguaje C Lenguaje ensamblador Lenguaje máquina


suma=0; CAR SUM,0 1111 0101 0000 0000
for(i=0;i<10;i++) CAR i,0 1111 0111 0000 0000
suma=suma+i; BUCLE: ADD SUM,i 1110 0101 0000 0000
printf(“%d”,i); ADD i,1 1110 0111 0000 0001
CAR AUX,i 1111 1111 0000 0101
RES AUX,9 0111 1111 0000 1001
STZ SIGUE 0001 1111 1010 1111
STI BUCLE 0010 1111 1010 0011
SIGUE SAL i 0110 0111 0000 0000

3.3 Desarrollo histórico de los lenguajes de programación.

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

4. Algunos conceptos sobre arquitectura de computadores

Periféricos de entrada: Periféricos de salida: Periféricos de


- Teclado - Monitor almacenamiento:
- Ratón - Impresora - Disco duro
- Escáner - Altavoces - Disco flexible
U id d d i t

Memoria principal
RAM

Unidad central de proceso (Pentium, Pentium III, AMD K7, etc)


CPU
Esquema básico del hardware de un computador

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

Distribución de la información en la memoria


Número de byte Contenido
1 0000 1111
2 0101 0101
3 1010 0000
4 1010 0111
.... .....

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.

Así, cuando la CPU necesita captar un dato (instrucción u operando) de la memoria:


1. La CPU indica el número de palabra donde se encuentra almacenado (dirección)
2. La memoria proporciona el contenido de esa palabra
3. La CPU carga el contenido en un registro interno

En cambio, cuando la CPU quiere proporcionar un dato para almacenarlo en la memoria:


1. La CPU indica el número de palabra donde quiere almacenar el dato
2. La CPU proporciona el dato desde uno de sus registros internos
3. La memoria capta el dato y lo almacena en la palabra indicada

Memoria principal CPU

1101 1111
Registro instrucciones
1111 0000

1001 0101 8 líneas de datos


Registro operando 1
1111 1011

...... Registro operando 2

líneas de dirección Unidad


aritmético lógica

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.

Zona Dirección de Contenido Contenido en cristiano


memoria en binario
0000 0001 0000 0000 0
0000 0010 0000 1011 11
Datos 0000 0011 1011 0101 -1,3
0000 0100 0011 0110 ‘D’
0000 0101 0011 0011 ‘A’
.....
1000 0000 0000 0000 Captar el operando 1
Instrucciones 1000 0001 1000 0001 Sumar 1 al operando 1
1000 0010 0001 0000 Almacenar el operando 1

También podría gustarte