Vous êtes sur la page 1sur 36

Formación Profesional a Distancia

ELEMENTOS LÓGICOS
DE UN
SISTEMA INFORMÁTICO

Aplicaciones informáticas
de propósito general
DIRECCIÓN GENERAL DE EDUCACIÓN,
FORMACIÓN PROFESIONAL E
INNOVACIÓN EDUCATIVA
MINISTERIO
DE EDUCACIÓN,
CULTURA Y DEPORTE CENTRO NACIONAL
DE INFORMACIÓN
Y COMUNICACIÓN EDUCATIVA
Coordinación:
Luis Antonio Salcedo Sigüenza
Félix García Zarcero

Autor:
Roberto Antón Marqués

Comisión de Seguimiento Técnico:


Francisco García García
Rafael E. Martínez Morazo
Juan Antonio Olmedo González

Diseño y Maquetación:
Pedro Alfonso Miguel Sánchez

Todas las marcas de equipos, software, sistemas operativos... están registradas por sus respectivas
compañías.

Parte de las imágenes han sido cedidas por cortesía de 3M, AMD, Apple, Borland, Dell, IBM, Intel,
Iomega, Hewlett Packard, Linux, Microsoft, Robotics y Thrustmaster.

 MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE


DIRECCIÓN GENERAL DE EDUCACIÓN, FORMACIÓN PROFESIONAL E INNOVACIÓN EDUCATIVA
CENTRO NACIONAL DE INFORMACIÓN Y COMUNICACIÓN EDUCATIVA

I.S.B.N.: 84-369-3506-3
NIPO: 176-01-102-3
UNIDAD 2

Elementos lógicos
de un
Sistema informático
Aplicaciones informáticas de propósito general

ÍNDICE
NDICE

PRESENTACIÓN.................................................................................................... 4
1. REPRESENTACIÓN DE LA INFORMACIÓN.......................................................... 5
1.1. SISTEMAS DE NUMERACIÓN ................................................................................ 6
1.1.1 Sistema Binario.................................................................................... 6
1.1.2 Operaciones en binario ....................................................................... 8
1.1.3 Sistema Octal ..................................................................................... 11
1.1.4 Sistema Hexadecimal......................................................................... 11
1.2. CÓDIGOS DE REPRESENTACIÓN ........................................................................ 12
1.3. REPRESENTACIÓN I NTERNA DE LOS DATOS ........................................................ 14
2. ORGANIZACIÓN EXTERNA DE LOS DATOS ..................................................... 16
3. FUNDAMENTOS DE LA PROGRAMACIÓN......................................................... 18
3.1. ALGORITMO .................................................................................................... 18
3.2. MÉTODOS DE PROGRAMACIÓN .......................................................................... 20
4. PROGRAMA......................................................................................................... 21
4.1. COMPILADORES E I NTÉRPRETES ........................................................................ 22
4.2. CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN ..................................... 26
4.2.1 Lenguaje de Programación Máquina ................................................ 26
4.2.2 Lenguaje Ensamblador...................................................................... 27
4.2.3 Lenguaje de Alto Nivel....................................................................... 27
4.2.4 Imperativos o Procedurales............................................................... 28
4.2.5 Declarativos ....................................................................................... 29
4.3. CLASIFICACIÓN DE LOS PROGRAMAS ................................................................. 29
4.3.1 Software de Control ........................................................................... 29
4.3.2 Software de Aplicación...................................................................... 29
5. CICLO DE VIDA DEL SOFTWARE....................................................................... 31

2
Elementos lógicos de un Sistema informático

3
Aplicaciones informáticas de propósito general

L
a rápida expansión de los ordenadores se debe en
mayor medida al software. En vez de fabricar una
máquina específica, que realice cada una de las tareas
que se desea resolver, se ha creado una máquina
general, capaz de ejecutar un conjunto muy limitado de
acciones.

Las órdenes de ejecución de estas acciones no se indica


mediante algún componente físico, sino mediante una
combinación de caracteres: un lenguaje escrito. Sobre la base
de este conjunto no muy extenso de acciones primitivas, se
pueden construir otras que realicen tareas más complejas,
que a su vez, serán empleadas para la realización de otras
aún más, y así sucesivamente, hasta llegar a la realización de Al finalizar el estudio de
programas y aplicaciones que resuelven de manera eficaz y esta unidad serás capaz de...
rápida infinidad de tareas de la vida cotidiana.

Se puede comprobar cómo los ordenadores actuales van • Conocer cómo se organizan los
apropiándose de trabajos que hasta hace poco los realizaba datos.
una persona. El ordenador, aunque no quita trabajo (porque
alguien debe fabricarlos y crear ese software), sí obliga a las • Conocer los fundamentos de la
personas a realizar tareas más complejas al irse programación.
adueñándose de las puramente repetitivas. Un director
financiero no está tan preocupado de los cálculos que se han • Saber las fases de elaboración del
de realizar, como de su análisis. Los cálculos, por muy Software.
complejos que sean, se los facilita el ordenador, la
interpretación de esas cifras ya corre de su cuenta. • Reconocer los distintas aplicaciones
que componen el Sistema del
Los componentes lógicos del ordenador forman lo que se ordenador.
denomina software. El software, por tanto, está compuesto
por: los datos, el Sistema operativo, los programas adquiridos • Distinguir los diferentes tipos de
y los programas desarrollados por el propio usuario. Es el que lenguajes de programación.
da identidad a la máquina, lo que hace que nos resulte fácil o
difícil su uso, útil o inservible, lista o torpe...

4
Elementos lógicos de un Sistema informático

1. REPRESENTACIÓN DE LA INFORMACIÓN

Los datos y programas componen lo que se denomina información.


Tanto los programas como los datos están representados mediante un
lenguaje, formado por un alfabeto (números, letras y caracteres
especiales), que, para que pueda ser manipulado por el ordenador,
necesariamente debe estar representado en un medio físico.

Pero el lenguaje que utilizan los humanos para representar los datos
y los programas es distinto al utilizado por los ordenadores, por lo que es
necesaria su codificación. Codificación:
representación de los
La codificación es la operación por la cual se pueden representar elementos de un conjunto
los elementos de un conjunto mediante los de otro, de manera que a mediante los de otro
cada elemento del conjunto inicial le corresponde un solo elemento del
final.

Codificación de provincias

Provincia Código

Álava 01

Albacete 02

Alicante 03

Madrid 28

...

Zamora 49

Zaragoza 50

Por ejemplo, podemos manipular información sobre provincias Codificación de números


asignándole un número a cada una de ellas.
Decimales Binarios
Trabajar con la representación numérica tiene la ventaja de manejar 0 0000
menos caracteres; no es necesario teclear tantos caracteres y será más
difícil equivocarnos. El inconveniente es que si alguien no conoce la 1 0001
codificación (qué nombre de ciudad corresponde a cada número) no 2 0010
entenderá qué representa cada número. Esto se evita realizando la
3 0011
operación inversa (decodificar), representando los números mediante los
nombres de ciudad. 4 0100

5 0101
Otro ejemplo de codificación es la representación de los números
decimales en binario. 6 0110

7 0111
En este ejemplo cada elemento del código binario posee más cifras
8 1000
que el decimal, sin embargo, solamente utiliza para su representación
dos caracteres. Evidentemente, es más fácil construir un dispositivo que 9 1001

5
Aplicaciones informáticas de propósito general

pueda trabajar con un código en el que hay que diferenciar entre dos
valores que elaborar otro para diferenciar entre diez valores.

La información que le llega al ordenador puede provenir de distintas


fuentes: lenguaje escrito u oral de las personas, señales eléctricas de
otros ordenadores..., mediante el respectivo periférico, el ordenador
obtiene la información en un soporte físico, representado en un código
reconocible por él.

1.1. SISTEMAS DE NUMERACIÓN

Como se ha visto en la unidad anterior, el computador está


construido con componentes electrónicos capaces de almacenar y
manipular dos estados. El sistema de información que utiliza, es, por
tanto, el binario.

La base B La representación interna se realiza mediante ceros y unos y es


contiene B números. distinta para los números, con los que se van a realizar operaciones
La base más simple aritméticas y, para el resto de caracteres, no numéricos, también
es la binaria, denominados alfanuméricos (letras y caracteres especiales).
con sólo dos elementos
Cuando se trata de números, se utiliza el sistema de numeración en
base dos, como veremos en los siguientes ejemplos.

1.1.1 SISTEMA BINARIO

Los elementos del código binario, base 2, son los dígitos menores de
la base: {0,1}. Estos elementos se denominan cifras binarias o bit.

Con un solo dígito se pueden representar 21=2 valores distintos, al


igual que en base 10 con un solo dígito podemos representar 101=10
números: base número dígitos.

El sistema binario es posicional, la representación de valores


numéricos se realiza colocando los dígitos en un orden determinado, en
los que cada uno tiene un peso específico dependiendo de la posición
que ocupe.

El valor de un número se obtiene sumando los productos de cada


dígito por la base elevada a la posición que ocupa menos uno.

Valores de la potencia de dos Por ejemplo, el número 1001, está formado por:
1x23+0x22+0x21+1x20=1001(2
Valor Potencia
de la misma manera que el número 582 en base 10, está formado por:
0
1 2
5x102+8x101+2x100=500+80+2=582(10
1
2 2

4 2
2 Para convertir un número en base 10 (decimal) en uno binario se
3
divide sucesivamente por dos hasta que el cociente sea uno (menor que
8 2 la base). A continuación, se toma el cociente de la última división y los
16 2
4
restos en orden inverso al de su obtención (del último al primero).
...

6
Elementos lógicos de un Sistema informático

25 2
05 12 2
1 0 6 2
0 3 2
1 1

25(10 11001(2

ACTIVIDADES
CTIVIDADES
1ª Transforma en binario los siguientes números decimales.
16 47 256

Si el número tiene decimales, se convierte a binario multiplicando la


parte decimal por dos y tomando la parte entera en el orden en que se
producen.

Por ejemplo, 0,920x2=1,840 0,840x2=1,680 0,680x2=1,360


0,360x2=0,720, y así sucesivamente dependiendo del número de
decimales que se desee obtener 0,920 – 0,1110. En la figura se muestra
otro ejemplo de conversión a binario de un número con decimales.

0,425 x 2 = 0,85
0,85 x 2 = 1,7
0,7 x 2 = 1,4
0,4 x 2 = 0,8
0,8 x 2 = 1,6
0,6 x 2 = 1,2
0,2 x 2 = 0,4

0,425(10 0,011011(2

Para convertir un número binario en uno decimal, realizamos en


base 10 la suma de los productos de cada valor por la base elevada a la
posición que ocupa.
4 3 2 1 0
11001 = 1x2 +1x2 +0x2 +0x2 +1x2 =16+8+1=25
0,1110 = 1x2-1+1x2-2+1x2-3...

ACTIVIDADES
CTIVIDADES
2ª Pasa a decimal los siguientes números representados en el sistema binario.
1000 1010011 11111111 11010,011

Si cada posición puede representar 21=2, con cuatro bits se podrían


4
representar 2 =16 valores que irían desde el 0000 al 1111; el valor
4
menor sería el 0000 y el mayor el 2 -1=15.

7
Aplicaciones informáticas de propósito general

1.1.2 OPERACIONES EN BINARIO

Los valores que representan números suelen utilizarse para realizar


operaciones con ellos. Como estos valores están representados
internamente en base dos, las operaciones se realizarán en esta base.

Veamos cómo se realizan operaciones aritméticas básicas con


valores aritméticos enteros ya que los valores reales se representan de
forma diferente.

BINARIO NATURAL

El valor del número está representado por todos los dígitos que
componen el número. El número no tiene signo. Las operaciones básicas
son la suma y la resta.

Tabla de la suma

Operando Operando Suma

0 0 0
0 1 1
1 0 1
1 1 10 (0 y me llevo 1)

Los números se ajustan a la derecha y se suman uno a uno teniendo


en cuenta el acarreo.

111
1011
+
0101
10000

La tabla siguiente representa la operación de resta con un solo dígito.

Tabla de la resta

Operando Operando Resta

0 0 0
Sería de 1 a 10,
0 1
es 1 y me llevo 1
1 0 1
1 1 0

Para restar dos números (sin signo), el minuendo debe ser mayor
que el sustraendo y, al igual que en base diez, el acarreo se suma al
sustraendo.

1100
– 11
1001
0011

8
Elementos lógicos de un Sistema informático

• Módulo y signo
En este sistema, el bit situado más a la izquierda del número nos
indica el signo (1 negativo y 0 positivo), el resto de bits representan el
módulo del número.

0 1 0 1 0 1 1
signo módulo

Este sistema tiene el mismo número de valores positivos que


negativos pero, como puedes comprobar tiene dos valores para el cero
00000000 10000000.

• Complemento a uno
Otro sistema utilizado es el complemento a uno (C-1), que, al igual
que en el anterior, el primer bit de la izquierda se utiliza para representar
el signo (por ejemplo, 1 negativo y 0 positivo, aunque podría ser al
contrario) y el resto de bits representan el módulo del número.

Para pasar de un número positivo a otro negativo basta con cambiar


todos los ceros por uno y todos los unos por cero.

+7 00000111
–7 11111000

Como en esta base sólo hay dos elementos, invertir el valor de cada
bit es una tarea fácil y rápida. Este sistema de representación de valores
numéricos, permite realizar las restas como sumas realizando
previamente el complemento a uno del sustraendo.

Por ejemplo, 20-16 = 20+(-16), en complemento a uno sería

+20 00010100
–16 11101111
100000011
+1 Se tiene en cuenta el acarreo
+4 00000100 Valor positivo

+20 00010100
–22 11101001
–2 11111101 Valor negativo

Se tiene que tener en cuenta el acarreo si este se produce.

Este sistema también posee dos valores para el cero 00000000 y


11111111.

9
Aplicaciones informáticas de propósito general

• Complemento a dos

Puedes obtener El complemento a dos (C-2) es similar al complemento a uno y tiene


rápidamente el la ventaja de que el cero sólo tiene una representación. Para obtener el
complemento a dos de un negativo de un número en complemento a dos, se convierten los ceros
número invirtiendo los en unos y los unos en ceros y se suma el valor 1.
ceros por unos y
viceversa, sólo a partir del
primer uno comenzando +8 00001000
por la derecha 11110111 Complemento a uno
+1
–8 11111000 Complemento a dos

Ahora las restas se realizan mediante sumas con el complemento a


dos del sustraendo, pero si se produce un acarreo NO se tiene en
cuenta.
Complemento a dos

Decimal C-2 +20 00010100


-8 1000 –16 11110000
No se
-7 1001 tiene en cuenta el acarreo 100000100
-6 1010 +4 00000100 Valor positivo
-5 1011
-4 1100 +20 00010100
-3 1101 –22 11101010
-2 1110 –2 11111110 Valor negativo
-1 1111
0 0000
1 0001 La principal ventaja de este sistema respecto a los anteriores es que
2 0010 sólo tiene una representación para el valor cero y, por tanto, puede
almacenar un valor más.
3 0011
4 0100 Por ejemplo, los valores que se pueden almacenar en complemento
5 0101 a dos con cuatro bits serían los que figuran en la tabla del margen.
6 0110
7 0111 Compruébalo realizando el complemento uno de cada número
positivo y sumándole uno, si se produce acarreo no se tiene en cuenta.

ACTIVIDADES
CTIVIDADES
3ª Realiza la resta 14-5 en complemento a uno.
4ª Realiza la operación 25-13 en complemento a dos.
5ª Realiza la resta 98-56 en complemento a dos.
6ª ¿Cuál será el valor mayor y el menor que se puede representar con un byte en el sistema de
complemento a uno?
7ª ¿Y en complemento a dos?

Al trabajar con potencias de 2 y debido a que en binario se generan


números con muchas cifras, en informática, se emplea el sistema octal y
el hexadecimal, que, además de permitirnos trabajar con menos

10
Elementos lógicos de un Sistema informático

números, el paso de estas bases a binario se realiza de forma más


rápida que desde base 10.

1.1.3 SISTEMA OCTAL

El sistema de numeración base 8 está compuesto por los elementos:


{0,1,2,3,4,5,6,7} Es también un sistema posicional al igual que el binario.

Para pasar un número decimal a uno en base octal, se realiza igual


que en base dos pero dividiendo por 8.

359 8
39 44 8
7 4 5

359(10 547(8
Sistema Octal

Por ejemplo, el número 547(8 representa al Octal Binario


5x82+4x81+7x80=5x64+4x8+7x1=320+32+7= 359
0 000

Todos los números de esta base se pueden representar en base dos 1 001
con tres dígitos. 2 010
3 011
Como todos los valores de la base octal corresponden con todos los 4 100
valores representados en base dos con tres dígitos, se puede codificar
5 101
de forma directa un número en octal a binario codificando cada número
en octal mediante tres dígitos en binario. 6 110
7 111

256(10 400(8

100 000 000(2

Para pasar un número con decimales a base octal, se realiza igual


que a base dos pero multiplicando por 8.

Por ejemplo, el número decimal 0,742 (0,742x8=5,936;


0,936x8=7,488; 0,488x8=3,904) sería 0,573 en octal.

1.1.4 SISTEMA HEXADECIMAL

Sistema posicional de 16 elementos {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}


(A representa el valor decimal 10, B el 11... y F el 15) cada elemento de
este conjunto se representa en binario con cuatro dígitos.

Para pasar un número en decimal a hexadecimal se divide por 16


teniendo en cuenta los valores de las letras A, B, C, D, E y F. Veámoslo
con el siguiente ejemplo.

11
Aplicaciones informáticas de propósito general

2783 16
118 173 16
063 13 10
15

2783(10 ADF(16

El cambio inverso sería: Ax162+D161+F160=2560+208+15=2783

La codificación de hexadecimal a binario también se hace de forma


inmediata utilizando cuatro bits para cada número hexadecimal.

2783(10 ADF(16

1010 1101 1111(2

La utilización de estos códigos intermedios permite trabajar con


menos números sin perder una visión directa del valor en binario.

ACTIVIDADES
CTIVIDADES
8ª ¿Cuántos valores distintos se pueden representar con un byte?
9ª ¿Cuál es el valor mayor que se puede representar en una palabra de 4 bytes?
10ª Utilizando el sistema octal, pasa a binario el número decimal 481.
11ª Repite el ejercicio anterior utilizando el sistema hexadecimal.
12ª Pasa a binario los números 892,34 673,451 y 629,332.
13ª Calcula las operaciones siguientes en complemento a uno y en complemento a dos: 77-28 y 34-93.
14ª Con un bus de direcciones de ocho hilos, por el que circula un bit por cada uno de ellos, ¿qué
rango de direcciones puede direccionar?
15ª Un nibble o cuarteto está compuesto por cuatro bits, escribe todos los posibles valores que puede
almacenar en orden creciente.

1.2. CÓDIGOS DE REPRESENTACIÓN

Los caracteres que se utilizan para representar la información no son


solamente números, sino que, además, hay letras y caracteres
especiales.

− Números: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
− Letras: a, b, c, d...z, A, B, C, D...Z
− Caracteres especiales: ! ” · $ % / ( ) , . : - _...

Existe una serie de códigos normalizados que utilizan los


constructores de ordenadores para representar los caracteres. Estos
códigos asignan un valor único a cada uno de estos caracteres. No son
códigos posicionales como los anteriores, sino que cada carácter tiene

12
Elementos lógicos de un Sistema informático

una determinada representación mediante ceros y unos que se obtiene Representación de caracteres
de una tabla. en diferentes códigos

Los más importantes son: BCD 6 bits BCD 7 bits


Carácter
(decimal) (octal)

BCD (STANDARD BINARY CODED DECIMAL INTERCHANGE CODE). 1 1 001


2 2 002
Utiliza 6 bits para representar cada carácter. Con 6 bits puede 3 3 103
representar 26=64 valores distintos. ... ... …
A 49 061
Para los valores numéricos del 1 al 9 el código coincide con su B 50 062
representación en binario natural. C 51 163
... ... ...
Una versión de este código (normalizado de 7 bits) utiliza un bit más
de paridad, esto es, añade a la izquierda del número un cero o un uno de
tal manera que el número de unos es siempre impar. Una alteración no Representación de caracteres
deseada en la transmisión de información (ruido) cambiaría un cero en en distintos códigos
uno o viceversa (ya que sólo hay dos valores), esto alteraría la paridad
EBCDIC 6 EBCDIC
del código, pudiéndose así detectar que hay un error. Carácter bits hexa-
(decimal) decimal

1 1 F1
EMISIÓN . Ruido RECEPCIÓN . 2 2 F2
del número 3 en BCD de 7 bits ↓ de un código BCD de 7 bits
3 3 F3
1000011 1010011 ... ... …
Código erróneo ya que tiene un
Transmisión . A 193 C1
número par de bits
B 194 C2
C 195 C3
... ... ...

EBCDIC (EXTENDED BINARY CODED DECIMAL INTERCHANGE


CODED).
Tabla de caracteres ASCII

Este código utiliza 8 bits para cada carácter por lo que puede Código ASCII
Carácter
representar 28=256 símbolos distintos, lo que le permite representar (decimal)
además de las letras mayúsculas, minúsculas y números, una gran A 065
cantidad de caracteres especiales y de control de periféricos como B 066
impresoras y pantalla. ... ...
Z 090
ASCII (AMERICAN STANDARD CODE FOR INFORMATION ... ...
INTERCHANGE). a 097
b 098
Es el más utilizado. Usa 7 bits por carácter pudiendo representar c 099
27=128 símbolos distintos. Existe también un código ASCII de 8 bits.

ACTIVIDADES
CTIVIDADES
16ª En el Glosario inicial (Unidad de introducción) consulta la tabla de códigos para realizar las
siguientes codificaciones:
HUGO 305 → (BCD
CARLOTA 6715 → (EBCDIC
Hola 7/5? → (ASCII

13
Aplicaciones informáticas de propósito general

1.3. REPRESENTACIÓN INTERNA DE LOS DATOS

La codificación de la información, para que pueda ser manejada por


el ordenador, se realiza de forma automática por el periférico de entrada
correspondiente (teclado, ratón, módem...).

Su organización y representación interna dependerá del ordenador


(longitud de palabra) y del lenguaje de programación con el que se ha
realizado el programa que maneja estos datos.

Los datos básicos son las variables y constantes. Son una pequeña
zona de memoria, como un cajoncito que posee un nombre y un
contenido. La diferencia entre ellas es que, mientras las variables
pueden cambiar de contenido, las constantes no cambian de valor
durante la ejecución del programa que las maneja.

Por ejemplo, la variable RADIO es un trocito de memoria con ese


nombre que puede contener el valor 15. Cada vez que quiera modificar
el contenido de dicha variable hago referencia a su nombre. RADIO :=
RADIO +1 tendría como consecuencia el incremento en uno del
contenido de dicha variable en un lenguaje de programación. PI = 3,1415
sería una buena definición de constante, ya que no variará su valor.

Las variables y constantes son las estructuras de datos más simples.


Sobre la base de ellas se construyen las estructuras complejas.

El contenido que puede almacenarse en cada estructura depende


del tipo de esta. Los tipos dependen del lenguaje utilizado, que, con
ciertas diferencias, suelen incluir los siguientes:

• Estructuras de datos simples. Tipos de estructuras simples de


representación de datos como:

− Entero. Permite almacenar números positivos y negativos, sin


decimales. Por ejemplo, el lenguaje Pascal utiliza para almacenar
dicho tipo el sistema complemento a dos con 2 bytes, por lo que
puede almacenar valores enteros que van desde -32768 a
+32767.
− Real. Permite almacenar valores positivos y negativos con
decimales. El rango de valores que puede almacenar es superior
al anterior. Estos número se representan en formato signo(s),
exponencial(e) y mantisa(m), en una determinada base.
Por ejemplo el número n= 463,025 en base 10, se representa
como +0,463025·10-3 (s m·basee). La mantisa es siempre un valor
entre cero y uno. Existen distintos formatos de representación
interna de los números reales, como ejemplo, veamos la que
utiliza 32 bits representada en la figura.

− El exponente utiliza 8 bits y su valor se obtiene de sumar al


exponente +127 para no tener en cuenta el bit de signo. Por
ejemplo, si el exponente es -3, se representa +124. La mantisa
utiliza 24 bits. El número -11011,010111·2-6, se normaliza a
-10
-1,1011010111·2 (como todas los valores de mantisas
comienzan por un uno, éste no se almacena para ahorrar espacio

14
Elementos lógicos de un Sistema informático

pero se tiene en cuenta en las operaciones), se representaría


como: 1 01110101 101101011100000000000000.
− Doble real. Igual al anterior pero con un rango muy superior para
tratar números muy grandes y con muchos decimales. La
representación interna se realiza mediante signo, mantisa y
exponente.
− Carácter. Permite almacenar una letra, número o carácter
especial. Como el numero de caracteres es menor de 256, con un
byte será suficiente.
− Lógico. Permite almacenar sólo dos valores Cierto/Falso,
True/False, Si/No...; con un solo bit es suficiente para almacenar
los datos de este tipo.
− Puntero. El contenido de este dato es una dirección de memoria,
por eso se dice que “apunta a”. A través de este tipo de datos se
puede acceder a una posición de memoria utilizando la dirección
de memoria en que se encuentra, en vez de un identificador.
− Estructuras de datos estructuradas o compuestas. Son
estructuras complejas basadas en los tipos anteriores y en otros
estructurados.
− Cadenas de caracteres. Este tipo de dato que permite tratar con
una serie de caracteres a la vez.
− Tabla. También conocida por vector o matriz, dependiendo del
número de filas y columnas que contenga, es una estructura muy
utilizada que referencia a cada uno de sus elementos por la
posición que ocupa, no por su identificador. En el ejemplo, el
elemento 1 es Andalucía, el 2 es Baleares... Las tablas son
estructuras estáticas; es necesario definir el número de elementos
que la componen y todos ellos deben ser del mismo tipo. El tipo de
los elementos: puede ser cualquier tipo simple e incluso
estructurado.
− Listas. Los elementos de esta estructura se disponen uno a
continuación de otro y se unen mediante el valor de uno o más
campos. El acceso a cada uno de ellos se realiza pasando por los
anteriores. Los elementos pueden ser de cualquier tipo. La ventaja
de esta estructura, frente a las tablas es que el número de
elementos que la componen puede variar durante la ejecución del
programa. Es lo que se denomina estructura de datos dinámica.

− Conjuntos. Se trata de una colección de objetos del mismo tipo.


Esta estructura es muy utilizada en la resolución de problemas en
lo que lo fundamental es la pertenencia o no de un elemento a un
grupo sin tener en cuenta el número de veces que pudiera
repetirse este elemento.
− Registros. Es una estructura compuesta de campos referida a
una entidad que puede ser manejada en su conjunto. Cada campo
puede ser de cualquier tipo visto anteriormente.

15
Aplicaciones informáticas de propósito general

En la siguiente figura puedes ver la declaración de estructuras


simples y compuestas de datos de un programa Pascal.

{Ejemplo de definición de datos de un programa Pascal. Los identificadores creados por el usuario están en azul}
const
Espacio = ‘ ‘; {constante cuyo valor es un espacio}
MaxCon = 100;
type
Digito = ‘0’..’9’; {tipo de dato, puede almacenar del 0 al 9 como carácter}
Cadena10 = packed array [1..10] of Digitos
Digitos; {vector de 10 elementos}
Infracciones = 1..6; {tipo de dato, puede almacenar de 1 a 6 como número}
Conjinfracciones = set of Infracciones;
Infracciones
Tclase = (A1,A2,B1,B2,C1,C2,D,E);
Regtipo = record {tipo de registro}
Numero : Cadena10;
Cadena10
Clase : Tclase;
Tclase
Puntos : 0..Maxint;
Infra : Conjinfracciones;
Conjinfracciones
end;
Puntospena : 1..3;
Eletabla = record
Impuesto : integer;
Penalizaciones : array [Infracciones
Infracciones] of Puntospena;
Puntospena
end;
Tablatipo = array [Tclase
Tclase] of Eletabla;
Eletabla
var
Rconductores : Regtipo;
Regtipo {varible de tipo registro}
Fconductores : file of Regtipo;
Regtipo {variable de tipo fichero}
Tconsulta : Tablatipo;
Tablatipo {variable de tipo tabla}

ACTIVIDADES
CTIVIDADES
17ª Si una variable numérica puede contener valores desde –32765 a 32766. ¿Qué sistema numérico
utiliza para representar los valores? ¿Cuántos bits utiliza para representarla?
Si se utiliza el sistema de 32 bits visto anteriormente para representar los números reales, ¿cuál
será el número mayor que se puede representar?, ¿y el menor?

2. ORGANIZACIÓN EXTERNA DE LOS DATOS

En el ejemplo anterior has visto lo que es un registro; estructura


compleja de datos que contiene información referente a una entidad. Los
registros están compuestos de campos, cada uno de ellos de un tipo
determinado que a su vez determina su contenido.

Los registros se almacenan en archivos dentro de soportes de


almacenamiento secundario capaces de conservar la información de
forma inalterable a lo largo del tiempo. Recuerda que los datos
almacenados en la memoria principal se mantienen solamente durante la
ejecución del programa que los maneja.

16
Elementos lógicos de un Sistema informático

La definición general de un fichero, ya esté informatizado o sea


manual, es un conjunto de datos registrados en un soporte físico que los
hace susceptibles de tratamiento.

Un fichero manejado por un ordenador es un conjunto de registros


homogéneos de diferentes entidades y que se refieren a un tema común.
Por ejemplo, fichero de alumnos, fichero de empleados, fichero de datos
de vehículos...

Las operaciones que se realizan con un fichero son: creación,


inclusión de registros, eliminación de registros, modificación de los datos
de un campo o de varios campos de un determinado registro y la
localización de uno o varios registros.

Los archivos suelen clasificarse atendiendo a su duración en el


tiempo, en: temporales y permanentes.

• Un fichero es temporal cuando es utilizado por un programa para


almacenar datos necesarios para resolver un problema. Los ficheros
temporales pueden ser:

− Intermedios. El fichero es creado por un programa para que lo


utilice otro perteneciente a la misma aplicación.
− Maniobra. Los utiliza un programa para almacenar temporalmente
datos que no puede tener en memoria. Una vez finalizada la
ejecución del programa, el fichero suele ser eliminado.
− Resultados. Almacenan datos elaborados y preparados para ser
mostrados por un dispositivo de salida.

• Un archivo es permanente cuando sus datos duran más que el


tiempo de ejecución del programa que lo maneja. Este tipo de archivo
contiene datos importantes que se van actualizando cada vez que se
ejecuta el programa. Estos archivos se denominan:

− Maestros. Contienen los datos principales que manejan los


distintos programas de la aplicación. Estos archivos contienen los
datos actualizados por toda la aplicación y en cuyo proceso han
intervenido los archivos temporales.
− Constantes. Contienen datos que no varían y se utilizan en la
aplicación.
− Históricos. Almacenan datos que reflejan movimientos realizados
en un tiempo pasado. Se pueden utilizar para reconstruir el estado
de una situación o para realizar estadísticas.

• El software de un sistema de ordenador es el conjunto de datos, programas y manuales...


RECUERDA
ECUERDA

• Para que la información pueda ser tratada debe representarse mediante un código reconocido por el
ordenador.
• Los datos se organizan en estructuras que dependen del lenguaje de programación que se utiliza
para manipularlas.

17
Aplicaciones informáticas de propósito general

3. FUNDAMENTOS DE LA PROGRAMACIÓN
PROGRAMACIÓN

La programación de un sistema en general, consiste en indicar la


secuencia de acciones que ha de seguir el procesador, entendiendo
como procesador “toda entidad capaz de ejecutar una tarea”, para
resolver un problema en una cantidad de tiempo finita.

Por ejemplo, imaginemos el sistema cocina con todos sus elementos


(utensilios) y con un procesador que es el Cocinero. El procesador (el
cocinero) es capaz de realizar un conjunto de tareas, manejando
perfectamente el instrumental de la cocina. Podríamos darle una receta
para que llevase a cabo el plato de “un huevo pasado por agua” de la
siguiente manera:

1. Coge un huevo.
2. Vierte unos siete centímetros agua en un cazo.
3. Pon a calentar el agua.
4. Introduce el huevo cuando esté hirviendo el agua.
5. Espera cuatro minutos desde que hierva de nuevo.
6. Apaga el fuego.
7. Saca el huevo.
8. Sírvelo en una huevera.

Si suponemos que el procesador es capaz de realizar cada una de


estas acciones, su realización en el orden indicado tendría como
resultado el esperado.

La representación gráfica de estas acciones es lo que se denomina


Algoritmo.

Un procesador En este ejemplo el procesador es el cocinero mientras que la receta


es una entidad capaz de es el algoritmo.
ejecutar tareas

3.1. ALGORITMO

La programación de Sistemas Informáticos se basa en el diseño de


algoritmos para resolver problemas atendiendo a una metodología
(técnicas, métodos) y expresados en un lenguaje (signos y reglas).

Un algoritmo se puede definir como una secuencia ordenada y finita


de acciones que se deben realizar para obtener un resultado deseado.
En definitiva, un algoritmo es un método que soluciona un problema.

Un algoritmo se expresa en un lenguaje, que como tal, tiene su


léxico, sintaxis y semántica.

El léxico es el conjunto de elementos como letras, números,


caracteres especiales y símbolos que lo forman. La sintaxis son las
reglas de combinación de los elementos para formar elementos más
complejos: palabras reservadas del lenguaje que forman las
instrucciones y palabras creadas por el programador para definir
estructuras de datos y subprogramas. Por ejemplo, en el lenguaje natural

18
Elementos lógicos de un Sistema informático

se podrían formar las palabras perro o coche mientras que no serían


válidas pettro o pochre.

La semántica vigila que las construcciones sintácticas tengan


sentido. Por ejemplo, en nuestro lenguaje natural, las oraciones
formadas por palabras deben estar bien construidas y que tengan
sentido. Errores semánticos son: “El marrón perro es” o “El perro mató al
coche”.

Los algoritmos, no sólo deben estar bien construidos semántica-


mente, sino que, además, el método que describe debe obtener la
solución del problema. De nada sirve realizar un algoritmo sin errores
gramaticales pero que obtiene un resultado erróneo.

Los algoritmos se basan fundamentalmente en tres tipos de


acciones:

• Acciones secuenciales. Las acciones a llevar a cabo se ejecutan


una a continuación de otra en el mismo orden en que se
encuentran.

• Acciones alternativas. Se realiza una serie de acciones u otras


dependiendo del resultado de la evaluación de una expresión
lógica. Una expresión lógica es aquella que tiene como resultado
uno de los dos posibles valores que puede tomar: CIERTO o
FALSO.

• Acciones repetitivas. Una acción o conjunto de acciones se


ejecutan de forma repetitiva mientras se dé una condición.

Para facilitar la comprensión y seguimiento de la secuencia de


acciones que resuelven un problema, los algoritmos incorporan
elementos gráficos como los círculos, rectángulos, llaves...

Los diagramas de acción propuestos por James Martin constituyen


un buen método para el desarrollo de algoritmos. Están basados en el
método de programación estructurada y aportan una representación
gráfica a las estructuras del lenguaje.

Se componen de dos partes, una Declarativa donde se definen las


estructuras de datos utilizadas y otra Operativa donde se incluye la
secuencia de acciones que, manejando los datos anteriormente
definidos, resuelven un problema determinado.

19
Aplicaciones informáticas de propósito general

El algoritmo se suele expresar en un lenguaje general muy próximo


al lenguaje de la persona que lo realiza (programador) y está dirigido a
un procesador ficticio.

Una vez que el programador estima que las especificaciones de las


acciones a llevar a cabo son correctas, traducirá estas acciones a un
lenguaje que comprenda el procesador.

Por ejemplo, si el algoritmo del huevo pasado por agua lo tiene que
ejecutar un cocinero japonés las acciones se expresarían de forma
distinta que si fuese un cocinero español. Es el mismo método
representado de forma distinta.

Cuando el que tiene que ejecutar estas acciones es un ordenador, el


algoritmo debe traducirse a un lenguaje comprensible por él: un lenguaje
de programación.

Algoritmo para Un algoritmo traducido a un lenguaje de programación es un


ordenadores → Programas programa.

Aunque como se ha dicho, en principio, el algoritmo debe ser


independiente del lenguaje de programación al que va a ser traducido,
en la práctica se debe realizar el algoritmo orientado al lenguaje que se
va a utilizar, sobre todo que sea un tipo de lenguaje declarativo o
imperativo.

3.2. MÉTODOS DE PROGRAMACIÓN

La programación de sistemas se realiza atendiendo a unos métodos.


Los métodos tienen como finalidad crear un software con las siguientes
características.

• Fiable. Debe de ser capaz de responder a determinados errores o


usos inadecuados.

• Modificable. El software debe de estar escrito de tal manera que


facilite su mantenimiento.

20
Elementos lógicos de un Sistema informático

• Portable. Su diseño debe permitir que se codifique en diferentes


lenguajes de programación así como en diferentes sistemas.

• Legible. Cualidad muy importante, ya que, como se ha dicho


anteriormente, el software cambia frecuentemente. Cuanto más
claro y sencillo sea un programa, más fácilmente podrá ser
actualizado. Ten en cuenta que en un mismo programa pueden
estar trabajando varias personas o que la actualización de un
programa puede llevarla a cabo una persona distinta de la que lo
creó.

• Eficiente. Un buen software debe aprovechar al máximo los


recursos de la máquina.

Los métodos básicos son la programación estructurada, la


programación modular y el refinamiento progresivo.

• La programación estructurada consiste en utilizar solamente los


tres tipos de acciones vistos anteriormente: secuencial, alternativa
y repetetitiva. Se excluye, por tanto, la utilización de acciones tipo
“vete a”, “salta a la acción...”. Los lenguajes de programación que
incluyen este tipo de estructuras se denominan lenguajes
estructurados.

• La programación modular es un método basado en el lema


“divide y vencerás”. Un problema, por muy complejo que sea, se
puede dividir en partes perfectamente diferenciadas. A su vez,
estas se pueden dividir en otras que puedan ser analizadas,
codificadas, programadas y probadas de forma independiente.

• El refinamiento progresivo consiste en resolver un problema


para un procesador ficticio. A continuación, descomponer un
proceso en otros más simples hasta que puedan ser ejecutados en
el procesador real. El refinamiento se suele hacer de arriba abajo;
de lo general a lo específico, y se denomina diseño descendente.
Pero también puede hacerse al contrario: resolver un problema
general partiendo de la resolución de partes específicas, a través
de un diseño ascendente. Este método está muy unido con la
programación modular.

4. PROGRAMA

Un programa es una secuencia ordenada y finita de acciones Procesador el ordenador y


expresadas en un lenguaje reconocido por la computadora, y cuya algoritmo es un programa
ejecución permite obtener un resultado deseado.

Los programas indican al ordenador qué operaciones hay que


realizar con unos determinados datos. El valor de estos datos puede
variar; no tendría ningún sentido ejecutar un programa cuyos datos de
entrada fuesen siempre los mismos ya que produciría siempre la misma
salida.

Las operaciones que el programa puede realizar con los datos


vienen determinadas por la máquina y por el tipo de lenguaje de
programación utilizado.

21
Aplicaciones informáticas de propósito general

El único lenguaje que el procesador es capaz de comprender es el


lenguaje máquina, sin embargo, la programación no se realiza en este
lenguaje sino en otros más cercanos al lenguaje humano y que
previamente será necesario traducir.

4.1. COMPILADORES E INTÉRPRETES

Los compiladores e intérpretes son programas que traducen un


lenguaje de programación de alto nivel a lenguaje máquina.

Suelen estar incluidos dentro de una aplicación que incluye varios


programas que permite realizar la creación, traducción y ejecución de un
programa. En la figura siguiente puedes ver el entorno de Turbo Pascal
con su editor de textos para escribir el programa y la barra de menús
donde se pueden realizar, entre otras, las operaciones de compilar y
ejecutar el programa.

El programa escrito en el lenguaje de programación de alto nivel se


denomina programa fuente y al programa resultante de la traducción se
denomina programa objeto.

La diferencia entre los programas compiladores y los intérpretes está


en la forma en que realizan la traducción.

Los compiladores traducen el programa fuente a lenguaje máquina,


generando un fichero que contiene el programa objeto. A continuación se
añaden a este programa objeto una serie de instrucciones del Sistema
operativo generándose el programa ejecutable. Este programa ya puede
ser ejecutado fuera de la aplicación del compilador.

Los programas intérpretes traducen y ejecutan instrucción a


instrucción del programa fuente. No generan ningún fichero ejecutable
por lo que la ejecución del programa se hace siempre dentro del entorno
de la aplicación del intérprete.

La traducción se realiza en varios pasos que describiremos a


continuación.

22
Elementos lógicos de un Sistema informático

• Análisis lexicográfico. Comprueba que los símbolos elementales


que componen el lenguaje se unen correctamente para formar las
palabras reservadas del lenguaje o identificadores del
programador. Por ejemplo, la línea de programa que contiene
“procedure Permutar “, al analizador léxico lee carácter a carácter
detectando los espacios entre las dos palabras y detectando que
“procedure” es una palabra del lenguaje de programación mientras
que “Permutar” es una palabra del usuario. Sin embargo, si por
error, se hubiese tecleado “procedurePermutar”, el analizador sólo
habría reconocido una sola palabra de usuario.

• Análisis sintáctico. Vigila que las palabras del lenguaje están


colocadas en el orden correcto. Para describir el análisis sintáctico
de los lenguajes se utiliza la notación BNF y los diagramas
sintácticos.
Los diagramas sintácticos son representaciones gráficas que
definen una categoría sintáctica de forma gráfica. Comienza por el
nombre de la categoría y está compuesta de elementos
rectangulares y circulares dependiendo de sin son otras
estructuras complejas o elementos terminales respectivamente.
Las líneas unen los elementos y las flechas indican la dirección
que debe seguir el diagrama.

Según el diagrama sintáctico de la figura, un identificador o


palabra definida por el usuario debe empezar siempre por una
letra de las incluidas en la definición de letra y a continuación
puede seguirle o no letras y números. Serían identificadores
válidos “contador” o “cont03” o “a”. No serían válidos “1cont” por
comenzar por un número, “suma 3” por contener un espacio y
“tanto%” por contener un carácter que no es ni letra ni espacio.
La notación BNF utiliza los signos “<” y “>” para diferenciar los
elementos no terminales de los terminales. La barra vertical “|”
para delimitar opciones, los paréntesis para agrupar, las llaves
para indicar posible repetición y el signo “::=” para asignar. De este
modo, la representación de la figura anterior en BNF sería.

• Análisis semántico. Comprueba que las construcciones


sintácticas tengan sentido. Por ejemplo, la expresión AREA :=
BASE*ALTURA/2, está bien construida, pero el análisis semántico
detectará un error si, por ejemplo, AREA está definida de tipo
entero cuando debería ser de tipo real: la división generará
decimales.

23
Aplicaciones informáticas de propósito general

• Generación y optimización de código. En esta fase se añadirá


al programa objeto una o varias instrucciones del lenguaje
máquina equivalente a la del lenguaje fuente. En algunas
ocasiones se genera un lenguaje intermedio, y posteriormente,
mediante otros programas (montadores o linkadores) se genera y
optimiza el código máquina.

La utilización de un lenguaje intermedio reduce el número de


traductores necesarios para L lenguajes y M máquinas.

En resumen, el proceso de creación de un programa comienza con


el planteamiento del problema, la realización de un algoritmo que
resuelva el problema y la traducción a un lenguaje de programación.

En este momento nos encontramos con el programa escrito en un


fichero fuente, compilamos o ejecutamos el programa y lo más normal es
que se detecten errores gramaticales. Se corrigen en el programa fuente
y se repite el proceso las veces necesarias.

24
Elementos lógicos de un Sistema informático

A continuación debemos comprobar que el programa funciona


perfectamente introduciendo distintos valores de entrada y comprobando
que la salida es válida. Si esto es así ha finalizado la realización del
programa. En el caso de que el programa no obtenga los resultados
deseados debemos volver a la fase de realización del algoritmo y
localizar dónde esté el error del método para, a continuación, repetir
todos los pasos.

• La ingeniería del software es una ciencia que se encarga de las fases por las que debe pasar la
creación de aplicaciones.
RECUERDA
ECUERDA

• Un algoritmo expresa el método que se debe llevar a cabo para resolver un problema.
• Un programa es un algoritmo expresado en un lenguaje comprensible por el ordenador.
• La programación estructurada y la programación modular son métodos que permiten crear un
software más claro y eficaz.

25
Aplicaciones informáticas de propósito general

4.2. CLASIFICACIÓN DE LOS LENGUAJES DE


PROGRAMACIÓN

Los lenguajes de programación se suelen clasificar atendiendo a su


proximidad al lenguaje de la máquina o al lenguaje humano dando lugar
a lenguajes máquina, ensambladores y de alto nivel.

También se pueden clasificar atendiendo al modo de ejecución del


programa, dividiéndose en lenguajes imperativos (los que indican a la
máquina el orden de ejecución de las acciones) y lenguajes declarativos
(en este caso, los programas se ejecutan de la misma forma pero las
funciones o relaciones definidas hace que se obtenga el resultado
esperado).

Atendiendo a su nivel, veamos los distintos tipos de lenguajes de


programación.

4.2.1 LENGUAJE DE PROGRAMACIÓN MÁQUINA

Estos lenguajes, utilizados en los comienzos de la informática, están


formados únicamente por ceros y unos como elementos del léxico. Estos
ceros y unos abren o cierran los circuitos permitiendo ejecutar una
determinada instrucción.

La sintaxis utilizada es un código de instrucción, y a continuación


están los operandos. En este lenguaje se trabaja con direcciones de
memoria para hacer referencia a los cajoncitos donde se almacenan los
datos (no se utilizan identificadores) y con los registros de la UCP donde
se realizan cálculos y se almacenan temporalmente los datos.

Por ejemplo, imaginemos que un procesador es capaz de realizar,


entre otras, las siguientes operaciones:

− 00XX(8 Cargar el contenido de una dirección de memoria X en el


registro A.
− 50XX(8 Sumar al valor del registro A, el contenido de una posición
de memoria X.
− 40XX(8 Almacena el contenido del registro A la posición de
memoria X.

Si deseamos incrementar el contenido de la memoria 7 con el


contenido de la memoria 5, el conjunto de instrucciones que llevan a
cabo el proceso, ya que no hay ninguna que sume el contenido de dos
posiciones de memoria, sería:

Dirección 000000000111
101000000101
100000000111

El lenguaje máquina utiliza directamente las instrucciones del


procesador (una instrucción del lenguaje equivale a una instrucción de la
máquina).

Están, por tanto, completamente ligados al tipo de máquina y no se


pueden ejecutar en otra máquina distinta.

26
Elementos lógicos de un Sistema informático

Bien se utilicen ceros y unos o códigos intermedios como el octal o


hexadecimal, el programa es una secuencia de números difícil de
comprender y más aún de modificar.

Como inconvenientes podemos destacar la facilidad para cometer


errores, la dificultad para la detección, corrección y actualización de
programas, la imposibilidad de trasportar el programa a otra máquina y la
dificultad de expresar la forma de pensar de los humanos mediante estos
lenguajes.

La ventaja fundamental es el perfecto aprovechamiento de la


máquina al no incluir procesos redundantes que pueden tener lugar al
traducir un lenguaje de alto nivel al de máquina.

4.2.2 LENGUAJE ENSAMBLADOR

Para evitar los inconvenientes de los lenguajes máquina, surgió el


lenguaje ensamblador. Este lenguaje ya está basado en un léxico
compuesto de letras y números y, por lo tanto, se comprende mejor que
el anterior.

Cada operación está identificada por un nombre nemotécnico y los


datos y registros utilizados están nombrados mediante un identificador.

La semántica puede resumirse en código de operación, un espacio y


los operandos separados por un punto y coma.

El ejemplo anterior podría estar escrito así:

CAR A;M(7)
SUM A;M(5)
MEM M(7);A o CAR M(5);A

Además, las instrucciones de este lenguaje pueden contener unas


etiquetas que permiten saltar directamente al comienzo de ellas sin
necesidad de utilizar direcciones de memoria.

Evidentemente, el programa es más legible, las correcciones se


hacen mejor y el programador puede abstraerse un poco de la máquina.

Estas instrucciones no son comprensibles por la máquina que las


tienen que ejecutar, por lo que es necesario hacer una traducción al
lenguaje máquina. Esta traducción la realiza de forma automática el
propio computador mediante la ejecución de un programa ensamblador
que traduce las instrucciones del lenguaje ensamblador a las del
lenguaje máquina.

4.2.3 LENGUAJE DE ALTO NIVEL

Los lenguajes de alto nivel utilizan un léxico cercano al lenguaje


humano (sobre todo al inglés).

Los lenguajes de alto nivel tienen como ventajas las siguientes:

− Utilizan notaciones cercanas al lenguaje humano.


− Utilizan identificadores para definir las distintas estructuras de
datos.

27
Aplicaciones informáticas de propósito general

− Disponen de acciones muy potentes que posteriormente se


traducirán en instrucciones máquinas.
− Permiten utilizar técnicas como la programación estructurada,
modular o recursividad (posibilidad de que un procedimiento se
llame a si mismo).
− Son independientes de la máquina donde se ejecutará el
programa.

Como inconvenientes podemos destacar éstos:

− No son directamente ejecutables por el procesador.


− Necesitan un proceso de traducción.
− Si este proceso de traducción no se optimiza, se podría estar
desaprovechando el potencial de la máquina.

Ejemplos de lenguajes de este tipo son Ada, C++, Cml, Cobol,


Fortran, Java, Lisp, Modula-2, Pascal, PL/I, Prolog, Snobol, Turbo C,
Turbo Pascal...

Atendiendo a su forma de ejecución, los lenguajes de alto nivel


(lenguaje máquina y ensamblador son imperativos), pueden ser de
distintos tipos según sean imperativos o declarativos. Veámoslos.

4.2.4 IMPERATIVOS O PROCEDURALES

Indican al procesador las acciones que debe ejecutar el procesador y


en qué orden. El programa controla la secuencia de ejecución de las
acciones, pudiendo saltar de una a otra instrucción del programa.

• Fortran. Es un lenguaje orientado al proceso numérico en


aplicaciones científicas, matemáticas y estadísticas que incluye
numerosas funciones matemáticas.

Fragmento de un programa Cobol. • Cobol. Orientado a aplicaciones de gestión comercial que implica
el manejo de gran volumen de datos. Es un lenguaje potente en el
ADD 1 TO NUM2
manejo y organización de registros, archivos y bases de datos.
SUBSTRACT N2 FROM N3 GIVING AUX
MULTIPLY AUX BY NUM2 ROUNDED GIVING
RESULT • Pascal. Desarrollado por Nicklaus Wirth en 1968 para explicar a
PERFORM Escribe VARIYNG I FROM 1 BY 1 UNTIL I sus alumnos programación, tiene una gran aceptación en la enseñanza.
> NUMVECES Es un lenguaje muy didáctico que permite aprender a programar de una
forma clara y fácil, evitando muchos de los defectos de otros lenguajes.
Los programas creados son fáciles de comprender por otros
programadores.

• PL/I. Lenguaje muy complejo de propósito general utilizado tanto


en aplicaciones numéricas como comerciales.

• Modula 2. Basado en el lenguaje de programación Pascal,


completa la modulación y abstracción de datos.

• Lenguaje C y C++. Es un lenguaje de nivel medio que permite


acceder a instrucciones de nivel máquina. Lenguaje utilizado para
implementar el Sistema operativo Unix, en la actualidad ha derivado a la
abstracción de datos.

28
Elementos lógicos de un Sistema informático

• Ada. Lenguaje de propósito general que incluso se ha utilizado


para implementar sistemas operativos.

4.2.5 DECLARATIVOS

El programa siempre se ejecuta de la misma manera, pero


dependiendo del programa se obtendrá una salida u otra.

• Lisp. Lenguaje utilizado en las aplicaciones de comprensión del


lenguaje natural, utiliza como estructura de datos principal las listas.

• Prolog. Está basado en el cálculo de predicados de primer orden. Fragmento de programa Prolog
Se utiliza en aplicaciones relacionadas con la Inteligencia Artificial:
compresión del lenguaje natural, robótica, sistemas expertos... ave(X):-
sangre_caliente(X),
vertebrado(X),
tipo_piel(X,plumas).
4.3. CLASIFICACIÓN DE LOS PROGRAMAS mamifero(X):-
sangre_caliente(X),
vertebrado(X),
El software está formado por los programas, los datos y la tipo_piel(X,pelo).
documentación de ambos. pone_huevos(X):-
sangre_fria(X).
Cuando se emplea más de un programa para resolver un problema, pone_huevos(X):-
se agrupan formando aplicaciones. Dependiendo de la finalidad para la ave(X).
que se realicen los programas o aplicaciones, se pueden dividir en sabe_volar(X):-
entorno(X,aire).
software de control y en software de aplicación.
puede_convivir(X,Y):-
entorno(X,Z),
4.3.1 SOFTWARE DE CONTROL entorno(Y,Z).
puede_convivir(X,Y):-
Son un conjunto de programas que gobiernan los recursos hardware entorno(X,tierra),
entorno(Y,aire).
del ordenador y controlan la ejecución de otros programas. Los
puede_convivir(X,Y):-
programas que forman el Sistema operativo son un ejemplo de este tipo. entorno(X,aire),
entorno(Y,tierra).
El Sistema operativo gestiona todos los recursos del ordenador. Se articula_sonido(X):-
encarga de preparar y ejecutar los programas de usuario, controlando en mamifero(X).
todo momento el proceso; asigna memoria a cada uno de ellos, articula_sonido(X):-
ave(X).
establece el orden de ejecución, asigna tiempos de utilización del
piel_suave(X):-
procesador, comparte dispositivos periféricos y asigna memoria a los tipo_piel(X,pelo).
datos utilizados por cada uno de ellos liberándola cuando no se utilice. piel_suave(X):-
tipo_piel(X,plumas).
Dentro de este apartado, se incluyen también los programas piel_dura(X):-
específicos de los fabricantes de hardware, destinados a la detección y tipo_piel(X,escamas),
entorno(X,tierra).
diagnóstico de fallos de funcionamiento en los equipos.

4.3.2 SOFTWARE DE APLICACIÓN

Incluye todos los programas que le permiten al usuario manejar los


elementos del ordenador para resolver un problema. Dentro de este
apartado se encuentran los programas que nos permiten realizar
nuestros propios programas como compiladores e intérpretes y los
adquiridos a fabricantes de software que nos permiten realizar tareas de
manipulación de texto, realización de cálculos, tratamiento de
imágenes...

Estos programas no sólo utilizan los componentes físicos del


ordenador, sino que también usan funciones del Sistema operativo por lo
que debe haber una compatibilidad entre ambos. Dentro de este
apartado se encuentra el software de programación y el de usuario.

29
Aplicaciones informáticas de propósito general

SOFTWARE DE PROGRAMACIÓN

Programas que facilitan la creación de aplicaciones por parte del


usuario. Este proceso de creación de software, normalmente, se basa en
la utilización de un editor de textos básico (que no introduzca
caracteres de control del tipo Bloc de notas, edit...) que nos permita
introducir y corregir el programa escrito y lo almacene en un fichero
como texto; un programa compilador para traducir las instrucciones
expresadas en un lenguaje de alto nivel a lenguaje ensamblador
generando un programa objeto; y, por último, un montador o linkador que
añadirá al programa objeto rutinas del Sistema operativo obteniendo un
programa ejecutable.

Algunas aplicaciones de programación incluyen el editor, el


compilador e intérprete y el montador juntos.

SOFTWARE DE USUARIO

Dentro de este apartado se incluyen las aplicaciones compradas a


un fabricante de software y las realizadas por nosotros mismos. Dentro
de los programas adquiridos se puede diferenciar entre los realizados
por encargo para resolver un problema específico y las aplicaciones
estándar. Estos programas realizan funciones específicas, entre las que
se pueden describir las siguientes.

30
Elementos lógicos de un Sistema informático

• Editores de texto. Permiten realizar documentos, informes,


memorandos... de forma fácil y con un aspecto profesional. Los editores
modernos disponen de una gran cantidad de tipos de letras y diferentes
formatos que facilitan la presentación de documentos. Ejemplos de estos
programas son Word y WordPerfect.

• Hojas de cálculo. Esta aplicación permite realizar cálculos


complejos con valores numéricos. La principal característica de la hoja
de cálculo es que cualquier modificación en los datos implica una
actualización de los resultados de las operaciones.

Además de las operaciones, las hojas de cálculo permiten una


presentación muy clara en la que se puede incluir gráficos. Por ejemplo,
Excel, Quattro Pro y Lotus 1,2,3.

• Bases de datos. Permiten manipular gran cantidad de datos. El


usuario no tiene que preocuparse de cómo están almacenados los datos
realmente, sino que mediante una serie de utilidades puede obtenerlos
de forma distinta. Permiten realizar consultas, informes y listados en
diferentes formatos de los datos almacenados.

• Correo electrónico. Utilidad cada vez más utilizada, permite


enviar y recibir documentos escritos a través de una red de ordenadores.

• Diseño gráfico. Permiten la elaboración y manipulación de


imágenes. Por ejemplo, Adobe Photoshop, con el que se ha retocado la
fotografía del margen.

• Autoedición. Aplicaciones diseñadas para la composición de


textos e imágenes para ser impresas. Por ejemplo, PageMaker y
QuarkXPress.

5. CICLO DE VIDA DEL SOFTWARE


SOFTWARE

El ciclo de vida de un programa y de una aplicación comprende


desde que el usuario siente la necesidad de realizar un trabajo mediante
el ordenador hasta que la aplicación realizada deja de ser utilizada.

De todo este proceso se encarga la ciencia denominada Ingeniería


del Software que establece en fases y pautas la vida del software con el
fin de que sea fiable, legible, modificable, portable y económico, entre
otras características. El ciclo contempla las siguientes fases.

• Fase de definición del problema. Esta fase comienza cuando se


plantea la necesidad de crear una determinada aplicación que realice un
determinado trabajo. Esta fase de análisis debe obtener como resultado
un documento en el que se reflejen todas las especificaciones que debe
cumplir la aplicación; en resumen, QUÉ deseamos realizar. En esta fase
se determinará también si el proceso es viable tanto tecnológicamente
como económicamente.

31
Aplicaciones informáticas de propósito general

• Fase de desarrollo del software. En esta fase se aborda CÓMO


se resuelve el problema. El desarrollo se divide, a su vez, en las
siguientes fases.

− Diseño del programa. El objetivo es la realización de los distintos


algoritmos que resuelven el problema. En este diseño es muy
importante utilizar las técnicas de programación estructurada, la
programación modular y el refinamiento progresivo.
− Codificación en un lenguaje de programación. Consiste en
traducir los algoritmos de la fase anterior a un lenguaje de
programación. En esta fase se debe incluir, además, la
documentación necesaria que facilite su actualización, como
comentarios dentro de los programas, sangrado de las líneas de
código y la utilización de nombres de datos apropiados que nos dé
una idea de lo que contienen.
− Pruebas de funcionamiento. Se debe comprobar que el software
creado es robusto. Para ello se realizan ejecuciones del programa
con una serie de datos de prueba que detecten los errores
posibles. Una vez localizados los errores, se deben corregir
(depurar el programa). Si son errores de especificación, debemos
volver a la fase inicial. Estos son los peores errores, pues en este
punto ya se ha empleado mucho tiempo, por ello es importante
conocer perfectamente lo que se desea realizar. Los errores de

32
Elementos lógicos de un Sistema informático

lógica necesitan un nueva realización de los algoritmos, mientras


que los errores léxicos son debidos a la codificación.

• Fase de mantenimiento del sistema. Esta fase controla cómo se


comporta la aplicación a lo largo del tiempo. Pueden ser necesarias
determinadas correcciones, adaptaciones a cambios externos a la
aplicación y mejora en la obtención de resultados. Periódicamente se
comprobará el buen funcionamiento de la aplicación.

ACTIVIDADES
CTIVIDADES
18ª ¿Qué es una variable?; ¿y una constante?
19ª ¿Qué es un Algoritmo?; ¿y un Programa?
20ª ¿Cuáles son los métodos de programación más importantes? Explica brevemente cada uno de
ellos.
21ª ¿Qué diferencia hay entre un programa compilador y un intérprete?
22ª ¿Cuáles son las fases, y en qué consisten, de un ciclo de vida software?

• El lenguaje máquina es el único que comprende el ordenador.


RECUERDA
ECUERDA

• Los lenguajes de alto nivel necesitan ser traducidos al lenguaje máquina antes de ser ejecutados.
• El Sistema operativo contiene programas imprescindibles para el manejo del ordenador.
• Los programas de aplicación utilizan recursos del Sistema operativo, por lo tanto, deben estar
orientados a él.

33

Vous aimerez peut-être aussi