You are on page 1of 38

MATRIZ DE EVALUACIN DE SOFTWARE

ANTECEDENTES

Desde tiempos antiguos diferentes civilizaciones han mencionado en sus textos


diversos parmetros de calidad ya sea en la construccin de estructuras seleccin
de semillas o de frutos y herramientas para el uso de los artesanos.

Con el transcurrir del tiempo y con la llegada de la revolucin Industrial, se


comenz a fabricar todo tipo de productos pero a gran escala, lo que implicaba un
mayor control de la calidad. Distintas piezas que se ensamblaban despus unas
con otras. Todos estos procesos de fabricacin en cadena implicaban que toda la
cadena de produccin se basase en las mismas medidas de control de calidad.

La especializacin esta creando un mundo de mercado cada vez ms competitivo que exige de
nuevas mejoras y nuevas referencias de calidad estos a su vez ntimamente relacionados con
la toma de decisiones.

El auge, en los ltimos aos, de la tcnica de simulacin ha trado como consecuencia un


incremento de este tipo de software en el mercado. La complejidad y dificultad inherente a la
evaluacin de cualquier clase de software,aunado al abanico de posibilidades que existen de
Software de Simulacin de Eventos Discretos (SSED),representan un dilema para las
organizaciones a la hora de una seleccin adecuada. Por lo tanto esta investigacin propone
desarrollar un modelo de especificaciones de calidad que permite evaluar SSED aplicables al
rea de logstica de suministro, manejo, transporte y distribucin de hidrocarburos en la
industria petrolera. Como producto de esta investigacin se gener el Modelo Sistmico de
Calidad (MOSCA ), identificndose 40 criterios y 131 subcriterios que soportan el proceso de
evaluacin de SSED en esta rea particular de aplicacin. En este trabajo se describe en
detalle el modelo propuesto MOSCA y los resultados obtenidos de su utilizacin para la

evaluacin de SSED en una organizacin que presta servicios de consultora en el rea de


logstica de la industria petrolera.
INTRODUCCIN

Tecnologas de la informacin y su creciente presencia en los diversos mbitos de


la industria (robots, centros de control, etc.) y sus productos finales (medicina,
aviacin, automviles, electrodomsticos, telefona, toma de decisiones etc.)
conlleva cada vez ms la presencia de software lo cual representan una
herramienta que las organizaciones tienen a su disposicin. Si bien es cierta la
calidad es el conjunto propiedades que son parte del objeto que le confiere
capacidad para emplear en su beneficio satisfacer necesidades implcitas o
explcitas, no es menos cierto que dicha seleccin debe tomar en cuenta una serie
de factores que permitan adquirir el software mas ajustado a las necesidades de
dicha empresa.

Evaluar software es una tarea compleja que en ocasiones puede conducir a las organizaciones
a tomar decisiones inadecuadas. Segn Rojas et al
(2001), la utilizacin de enfoques que tienden a subestimar o ignorar aspectos importantes para
la seleccin y uso de la tecnologa que compran, puede conducir a escoger software que no se
ajusta a las necesidades o intereses especficos de la organizacin. Adems, destacan lo difcil
que es disear un conjunto de criterios adecuados para evaluar todas los softwares y medir sus
beneficios.
Por otra parte, Nikoukaran, Hlupic y Paul (1998) indican que la tcnica de simulacin ha
tomado un auge creciente en un amplio rango de aplicaciones, incrementndose el nmero de
software de alta calidad con fines especficos que se encuentran en el mercado. Asimismo,
Hlupic (1999) afirma que el conjunto de herramientas de Software de Simulacin de Eventos
Discretos (SSED) disponibles conforman un abanico de posibilidades que representan un
dilema para las organizaciones a la hora de una seleccin adecuada.
Nikoukaran et al (1998) explican que en la seleccin de software de simulacin, stos se
evalan bien sea por sus propios mritos o comparndolos con otros, pero en cualquier caso
se requiere una lista de criterios para hacer una seleccin adecuada.
Asimismo, agregan, que una vez identificados, los criterios deben ser estructurados en
trminos de un modelo de decisin, capaz de maximizar la
racionalidad en la transferencia de la tecnologa correspondiente.
El objetivo de este trabajo es proponer un modelo de especificaciones de calidad que permita
evaluar SSED, a ser empleado en logstica de suministro, manejo, transporte y distribucin de
hidrocarburos en la industria petrolera.

MODELO SISTMICO DE CALIDAD (MOSCA)


En la bsqueda de trabajar con un sistema organizado que permita ordenar la informacin
sobre SSED y,que conduzca a obtener una herramienta que sea til para evaluar este tipo de
software, se aplic el modelo propuesto por Mendoza et al (2002), Modelo Sistmico de
Calidad (MOSCA), cuyo propsito es estimar la calidad sistmica dentro de una organizacin
desarrolladora de software.

Las siguientes tablas y matrices estn basadas a la discusin de cmo evaluar un


software y los criterios propuestos en la pgina de Matriz de Evaluacin , los
productos a evaluar son:

Software 1
Software 2

El anlisis comparativo tcnico se har sobre productos finales; es decir


productos ensamblados que vienen en formato de ejecutables. Para lo cual
se apreciaran las caractersticas de cada software y se estimaran, dndoles
ponderacin a cada una, verificando y comparando as que programa es mejor
en cada aspecto y cul es el ms conveniente al momento de su uso.

La siguiente tabla indica lo que se evaluara para ambos software:


matriz_222.JPG

La Matriz que se presenta a continuacin presenta la evaluacin de los criterios de ambos


software comparndolos y dndoles puntuacin a cada una. La matriz indica, ponderacin
mxima, tipos de calidad, caractersticas sub-caractersticas, descripcin de cada
caracterstica, si se tuvo evaluacin de dicha caracterstica y el puntaje correspondiente y el
total que obtuvo cada software:

matriz_descripcion.JPG
Ahora a continuacin tenemos la misma matriz evaluativa pero sin la
descripcin para poder detallar mejor las caractersticas y sub-caractersticas se
evalan junto con su puntuacin correspondiente para ambos software
evaluados:

matriz_sin_descripcion.JPG

COMPARACIN GRAFICA DE LOS RESULTADOS OBTENIDOS:


A parte de realizar la evaluacin numrica como se reflejo en la matriz, la parte
grfica de este ejemplo permitir visualizar como de manera ms fcil las
comparaciones realizadas:

1. FUNCIONALIDAD:
G-1.jpg

FIABILIDAD:

G-2.jpg

3. EFICIENCIA:
G-3.jpg

4. PORTABILIDAD:

G-4.jpg

5. CALIDAD DE USO:
G-5.jpg

ANLISIS DE RESULTADOS Y CONCLUSIONES:

As pudimos evaluar el Software y el Software, obteniendo que:

Software1 segn los criterios evaluados obtuvo mayor puntuacin, ya que


permite la utilizacin de recursos de manera ms efectiva y eficiente, provee
ms tolerancia a fallas lo que lo indica que su tiempo de recuperacin ante
amenazas tanto tecnolgicas o por parte de usuario es mucho menor al obtenido
con respecto a Software2, y gran reemplazabilidad con capacidad de ser utilizado en
lugar de otro software en el mismo entorno.
Efectivamente aunque ambos software estn dirigidas a la misma funcin tras
evaluarlos se hizo notable la gran diferencia entre las fortalezas y debilidades
con respecto a varios aspectos, es decir, que uno de ellos es ms competentes
para lograr satisfacer tanto a los usuarios como a sus vendedores.

ASPECTOS A CONSIDERAR
CATEGORAS PARA EL SUBMODELO DEL PRODUCTO

Funcionalidad (FUN) Es la capacidad de la herramienta para proveer funciones que


cumplan con necesidades especficas implcitas.

Fiabilidad (FIA) Es la capacidad del producto para mantener un nivel especificado de


rendimiento cuando es utilizado bajo condiciones especificadas.

Usabilidad (USA) Se refiere a la capacidad del producto para ser atractivo, entendido,
aprendido, y utilizado por el usuario bajo condiciones especficas.

Eficiencia (EFI) Es la capacidad del producto para proveer un rendimiento apropiado,


relativo a la cantidad de recursos utilizados, bajo condiciones especficas.
Mantenibilidad (MAN) Es la capacidad del software para ser modificado. Las
modificaciones pueden incluir correcciones, mejoras o adaptaciones antes cambios del
ambiente, requerimientos y especificaciones funcionales.

Portabilidad (POR) Es la capacidad del producto para ser transferido de un ambiente


a otro.

CATEGORAS PARA EL SUBMODELO DEL PROCESO

Cliente-Proveedor (CUS) Est conformada por procesos que impactan directamente


al cliente, apoya el desarrollo y la transicin del software hasta el cliente, y provee la correcta
operacin y uso del producto o servicio de software.

Ingeniera (ENG) Consisten en procesos que directamente especifican, implementan o


mantienen el producto de software, su relacin con el sistema y su documentacin.

Soporte (SUP) Consta de procesos que pueden ser empleados por cualquiera de los
procesos (incluyendo a los de soporte) en varios niveles del ciclo de vida de adquisicin.

Gestin (MAN) Consiste en procesos que contienen prcticas de naturaleza genrica,


que pueden ser utilizadas por cualquier personaje que dirija algn tipo de proyecto o proceso,
denrto de un ciclo de vida de primario.

Organizacional (ORG) Est relacionado con procesos que establecen las metas
comerciales de la organizacin y desarrollan bienes (valores) de proceso, producto y recurso,
que ayudarn a la organizacin para alcanzar sus metas en los proyectos.

QUE ES MANTENIMIENTO PREVENTIVO?


El mantenimiento preventivo consiste en la revisin peridica de ciertos aspectos,
tanto de hardware como de software en un ordenador. Estos influyen en el desempeo
fiable del sistema, en la integridad de los datos almacenados y en un intercambio de
informacin correcta, a la mxima velocidad posible dentro de la configuracin ptima
del sistema.
MANTENIMIENTO PREVENTIVO HARDWARE

En las operaciones de mantenimiento, el mantenimiento preventivo es el


destinado a la conservacin de equipos o instalaciones mediante realizacin
de revisin y reparacin que garanticen su buen funcionamiento y fiabilidad.
El mantenimiento preventivo se realiza en equipos en condiciones de
funcionamiento, Las tareas de mantenimiento preventivo incluyen acciones
como cambio de piezas desgastadas, cambios de aceites y lubricantes, etc.
El mantenimiento preventivo debe evitar los fallos en el equipo antes de que
estos ocurran.

Kit de herramientas
*Desarmador
*Pulcera antiesttica
*Espuma o limpiador para computadora
*Franela
*Soplador
*Estopa
*Aire comprimido o soplador
*isopos de algodon

Medidas de Seguridad e Higiene Para un Mantenimiento


Preventivo
*Usar pulsera antiesttica que este conectada al chasis en todo momento.
* Herramientas limpias y totalmente libres de polvo.
*No hacerca demasiado el aire comprimido, usarlo en momentos pausados
pues si se usa prolongadamente se puede daar el equipo.
*No tocar componentes interno inesesariamente.
PASOS PARA UN MANTENIMIENTO PREVENTIVO HARWARE

1.-Desconectar el equipo de la corriente electrica y despues el


monitor,bocinas, ratn,teclado y unidades conectadas al equipo.

2.-Destornillar el chasis.

3.-Ponerse la pulsera antiestatica y conectarla al


chasis.

4.-Desconectar los componentes necesarios para una mejor limpieza:


fuente de poder, ventilador,etc.

5.- Soplar los ventiladores y al hacerlo poner un desarmador en los


ventiladores para que cuando empiece a soplar no den vuelta.
6.-Empesar a soplar muy bien por dentro y por fuera pero siempre y cuando
no pegemos tanto las mangera a la tarjeta madre por que podemos daar
algo.

7.-Conectar los componentes que se hayan quitado asegurando muy bien los
tornillos para que ningun componente se mueva.

8.- Volver a armar CPU debes de seguridad muy bien los tornillos.

9.- Limpiar gabinete por fuera con la espuma o en liquido y la estopa.

10.- Limpiar el monitorcon mucho cuidado, el teclado con la


ayuda de isopos y raton con el soplador muy bien y despus limpiarlo con la
estopa y la espuma o lquido (el raton no necesita soplar).

11.-Cuando tengas toda limpio hasta la mesa donde se va a colocar


puedes empezar a conectar todo de nuevo con cuidado y de manera
correcta. (Al final conectar la corriente electrica).

MANTENIMIENTO PREVENTIVO SOFTWARE


El mantenimiento preventivo de software es el proceso por el cual se mejora y optimiza

el software que se ha instalado, este mantenimiento se realiza para la prevencin de

posibles problemas que puedan llegar a surgir a medida que se utiliza el computador.

La revisin de instalacin por SETUP:

Consiste en una revisin que se realiza ingresando directamente al men que se

encuentra en la setup detectando las unidades conectadas a la computadora. Mediante

este se puede detectar alguna falla en conectores.

Depuracin de archivos:

Este proceso consiste en la eliminacin de los archivos generados por las


aplicaciones instaladas en la computadora y que ya no se utilizan.
La desfragmentacion de disco duro:

la desfragmentacion es el proceso en el cual se acomodan los archivos de un disco, este

se realiza cuando el disco se fragmenta, esto sucede cuando el sistema ha escrito

diferentes versiones de los archivos, esto es, cuando un archivo despus de ser

modificado no ocupa direcciones de memoria contiguas en el disco duro.

La eliminacin de archivos TMP (temporales):

Este proceso consiste en la eliminacin de los archivos generados por las aplicaciones

instaladas en la computadora y que ya no se utilizan.

Liberacin de espacio en el disco duro:

El liberador de espacio busca en la unidad y enumera los archivos temporales, archivos

de cache de Internet y archivos de programa innecesarios que puede eliminar de forma

segura.
Ejecucin de Antivirus:

Este se utiliza para realizar una anlisis del sistema en busca de algn virus para
prevenir que el equipo se infecte o bien para eliminar alguno ya adquirido. Aunque hoy
en dia, la eliminacin de un virus se convierte en una tarea titanica ya que estos han ido
evolucionando hasta ser casi indetectables.

Deteccin de errores:
Consiste en una revisin que se realiza ingresando directamente al men que
se encuentra en la setup detectando las unidades conectadas ala
computadora. Mediante este se puede detectar alguna falla enconectores.

Papelera de reciclaje:

La papelera de reciclaje no es ms que una carpeta ms, creada por Windows para
almacenar los archivos que el usuario desea eliminar del computador, solo que el usuario
en ciertas veces cambia de parecer con respecto a borrar dicha informacin, entonces
ah esta otra funcin de la papelera de reciclaje. Como parte de un mantenimiento
preventivo la papelera de reciclaje debe estar vaca, ya que almacena datos que
pueden perjudicar el equipo.

PRACTICAS HECHAS EN CLASE:


MANTENIMIENTO PREVENTIVO HARDWARE
LIMPIANDO EL TECLADO
DURANTE EL MANTENIMIENTO

MANTENIMIENTO PREVENTIVO SOFTWARE:

Procesamiento manual de datos


Aunque el uso generalizado del trmino procesamiento de datos slo data de
los aos 1950 funciones de procesamiento de datos se ha realizado
manualmente por milenios. Por ejemplo contabilidad involucra funciones como
el envi de las transacciones y la produccin de informes como el balance y el
estado de flujos de efectivo . Mtodos completamente manual fueron
aumentados por la aplicacin de las calculadoras mecnicas o electrnicas . Una
persona cuyo trabajo consista en realizar los clculos manualmente o utilizando
una calculadora se llama un "computador" .

El Censo de los Estados Unidos 1850 fue el primero en recopilar datos


individuales en vez de los hogares. Una serie de preguntas puede ser
respondida por hacer una marca en la casilla correspondiente en el formulario.
Desde 1850 hasta 1880 la Oficina del Censo utiliza un sistema de cmputo, el
cual, debido a la cada vez mayor nmero de combinaciones de clasificaciones
requeridas, se hizo cada vez ms complejo. Slo un nmero limitado de
combinaciones puede ser registrada en una cuenta, por lo que era necesario
manejar los programas de 5 o 6 veces, para tantos recuentos independientes".
"Se tard ms de 7 aos para publicar los resultados del censo de 1880"
utilizando mtodos de procesamiento manual.

Procesamiento automtico de datos


El trmino procesamiento automtico de datos se refiere a las operaciones
realizadas por medio de equipos de registros unitario, tales como el sistema de
tarjetas perforadas creada por Herman Hollerith basado en la lgica de Boole,
utilizado para realizar el Censo de los Estados Unidos 1890, la Oficina del Censo
fue capaz de completar la tabulacin de la mayora de los datos del censo de
1890 de 2 a 3 aos, en comparacin con 7 a 8 aos para el censo de 1880.
Tambin se estima que el uso del sistema de Herman Hollerith ahorr unos $5
millones en costos de procesamiento" (en 1890).

Procesamiento electrnico de datos


Procesamiento de datos computarizada, o el procesamiento electrnico de
datos representa la evolucin ulterior, con el ordenador tomando el lugar de
varias piezas independientes de equipos. La Oficina del Censo hizo por
primera vez el uso limitado de equipos electrnicos para el Censo de
Estados Unidos de 1950, con el uso de la UNIVAC I .

La evolucin posterior
El trmino procesamiento de datos a largo plazo ha sido subsumida bajo el
trmino ms nuevo y general que es tecnologa de la informacin (IT). El
procesamiento de datos ha adquirido una connotacin negativa, lo que
sugiere el uso de las tecnologas ms antiguas. A modo de ejemplo, en 1996
la Asociacin de Gestin de Proceso de Datos ("DPMA") cambi su nombre
por el de Asociacin de Profesionales de Tecnologa de la Informacin . Sin
embargo, los trminos son casi sinnimos.

DATO, PROCESO E INFORMACIN


DATO, PROCESO E INFORMACIN
Dato e informacin son dos trminos que suelen confundirse. Se consideran datos a toda en-
trada de informacin a una computadora. Estos datos pueden ser administrativos, cientficos,
co-merciales, etc. son elementos primitivos, de los cuales a travs del procesamiento se obtiene
la in-formacin.
La computadora se utiliza para procesar en forma automtica y a gran velocidad esos datos.
Como resultado del procesamiento de esos datos se obtiene la informacin deseada, la cual ser
til en la toma de decisiones.
DATO PROCESO INFORMACIN

SISTEMA
Un sistema es un conjunto de componentes relacionados que interactan para realizar una
tarea. Un sistema de informtica est compuesto por el Hardware (CPU, dispositivos perifri-
cos) y el Software (sistema operativo y los programas). El software de un sistema de informacin
est formado por los datos, los programas de ingreso, actualizacin e informe de resultados y los
procedimientos manuales y por mquina.
ESTRUCTURA DE UNA COMPUTADORA
Una PC es una computadora personal, originalmente diseada para servir a un slo usua-rio.
Sale al mercado en 1981 y va evolucionando en capacidad y velocidad, adems su costo se va
reduciendo. Existen diferentes configuraciones para adecuarse a la mltiples necesidades de los
usuarios.
La informtica es la ciencia que estudia el tratamiento, elaboracin , transmisin y utilizacin de
la informacin. Es una ciencia porque constituye un conjunto de conocimientos de validez uni-
versal y porque utiliza el mtodo cientfico para el logro de sus objetivos.
Se denomina HARDWARE (ferretera) a todos los componentes electrnicos y mecnicos, es
decir fsicos de una computadora.
Se denomina SOFTWARE al conjunto de programas o procedimientos que determinan las ac-
ciones de la mquina, es todo lo concerniente a la programacin.
Las computadoras estn estructuradas segn un modelo bsico de funcionamiento que des-cribe
la interaccin que se realiza entre los elementos que la componen. Este modelo es:

MONITOR

MOUSE
CPU IMPRESORA

SCANNER TECLADO MDEM


UNIDADES
Las unidades son las partes fsicas que componen nuestro ordenador, y se clasifican en uni-
dades de entradasalida (E/S) denominadas perifricos, y la unidad de proceso (UCP o CPU).
Adems de las unidades encontramos los soportes, que son elementos externos al ordenador, no
imprescindibles para su funcionamiento, pero necesarios para el almacenamiento de la
informacin.
Unidades E/S
Las unidades de entradasalida son aquellos elementos del hardware que fueron diseados para
el ingreso y egreso de los datos. Existen unidades cuya tarea especfica es el ingreso de da-tos,
otras que solo sirven para el egreso de la informacin, y hay un tercer grupo que puede cumplir
con ambas funciones.
Teclado
Mouse o Ratn, TrackBall, Cat
Scanner
Entrada Lectora de barras
Lpiz ptico
Lectora de CD-ROM (DVD)
Micrfono
Monitor
Sistema de vdeo
Unidades de Placa de vdeo
Impresora
EntradaSalida Salida Plotter
Parlante
Placa de audio
Sistema de audio
Parlantes
Modem
Disqueteras
E/S Grabadora/Reproductora de CD
Integer
Pantallas tctiles
Soportes de la informacin
Los soportes de la informacin son medios fsicos de almacenamiento de informacin. Ellos
pueden ser clasificados como:
Papel: es el soporte ms antiguo de informacin que an sigue en uso. Listados
Magnticos: son aquellos medios que estn basados en las propiedades magnticas para el
registro de la informacin. La mayora de los mismos son usados como elemento de
almacenamiento masivo.
Cintas de carrete abierto de 1/2" de ancho.
Cintas de vdeo (casete denominado super 8)
Disquetes
Cintas en tarjetas plsticas
Medios pticos: estn basados en la capacidad de poder o no reflejar la luz emitida por un
determinado elemento (emisor)
CD-ROM.
DVD (Digital Vdeo Disk o Digital Versatil Disk
El Disco Rgido es difcil de catalogar ya que es un sistema en s mismo, y posee una unidad de
entrada/salida que son las cabezas lectoras-grabadoras y un soporte que son los discos
propiamente dicho. Alguno de ellos vienen con una pequea pero completa uni-dad de proceso.
LA UNIDAD CENTRAL DE PROCESO Y EL PROCESADOR
La unidad central de proceso UCP es el verdadero cerebro de la computadora; su misin con-
siste en coordinar y controlar o realizar todas Las operaciones del sistema. Se compone de
elemen-tos cuya naturaleza es exclusivamente electrnica (circuitos).
Sus partes principales son Las siguientes:
El Procesador (P). Que a su vez se compone de:
La unidad de control (UC).
La unidad aritmticolgica (UAL).
La Memoria Central (MC).
La unidad central de proceso tambin incorpora un cierto nmero de registros rpidos (peque-
as unidades de memoria) de propsito especial, que son utilizados internamente por la misma.
Una aproximacin a diseo interno de un microprocesador es el siguiente

Figura 1

Como vemos en el esquema 1, la unidad de control y la unidad aritmticolgica constituyen lo


que se ha venido a denominar el procesador central del sistema; este elemento es parte de la
unidad central de proceso encargada del control y ejecucin de las operaciones del sistema.
Estos elementos en un ordenador personal se encuentran integrados en un nico chip llamado
micropro-cesador. Las funciones principales de la UCP de un ordenador son:
Ejecutar las instrucciones de los programas almacenados en la memoria del sistema.
Controlar la transferencia entre la UCP y la memoria o las unidades de E/S
Responder a las peticiones de servicio procedente de los perifricos.
Todo programa tiene como objetivo realizar diferentes funciones o aplicaciones, solo limitadas
por la capacidad e imaginacin del programador.
Para que un programa sea ejecutado el mismo se debe hallar en determinadas posiciones de
memoria y escrito en un lenguaje que la UCP pueda entender. La UCP lo nico que comprende
es lenguaje binario.
La UCP lee en forma ordenada la lista de instrucciones, luego las interpreta, y posteriormente
controla su ejecucin de cada una de ellas. Las ejecuciones se realizan en forma consecutiva una
tras otra.
Para ejecutar cada instruccin la UCP realiza la siguiente serie de pasos:
Lee de la memoria la instruccin que hay que ejecutar y la guarda en un regis-tro interior de la
UCP.
Identifica la instruccin que acaba de leer
Comprueba si la instruccin necesita utilizar nuevos de memoria, si fuera as, determina donde
debe ir a buscarlos.
Busca los datos en la memoria y los trae en UCP.
Ejecuta la instruccin propiamente dicha.
El resultado de la misma puede ser que se almacene o invoque la necesidad de tener que
comunicarse con la memoria o con otro elemento externo a la propia UCP.
Vuelve al primer paso para empezar una nueva instruccin.
La anterior es una lista simplificada de los pasos que ejecuta el microprocesador.
La ejecucin de cada instruccin implica el movimiento de datos, como estos pasos deben ser se
deben realizar en forma secuencial y ordenada, para lo cual la UCP siguen las seales dadas por
un reloj. El reloj es un elemento simple pero de gran importancia como se ver luego. Para una
mejor compresin del funcionamiento de la UCP, la misma se puede dividir en dos unidades la
uni-dad de control y la unidad aritmtico-lgica.
.
Unidad de control (UC)
La unidad de control (UC) es el centro nervioso de la computadora; desde ella se controla y
gobiernan todas las operaciones (bsqueda, decodificacin, y ejecucin de la instruccin). Para
realizar su funcin, consta de los siguientes elementos:
Registro de contador de programas (CP)
Registro de Instrucciones (RI)
Decodificador (D)
Reloj (R)
Generador de Seales o Secuenciador (S)

Registro de contador de programas (CP). Tambin denominado registro de control de Se-


cuencia (RCS), contiene permanentemente la direccin de memoria de la prxima instruccin a
ejecutar. Si la instruccin que se est ejecutando en un instante determinado es de salto o de
ruptu-ra de secuencia, el RCS tomar la direccin de la instruccin que se tenga que ejecutar a
continua-cin; esta direccin la extraer de la propia instruccin en curso.
Como ya se dijo el primer paso para la ejecucin de una instruccin, consiste en ir a buscarla en
memoria, el CP indica cual es la direccin de memoria donde se halla esa instruccin. Una vez
obtenida y antes de continuar con los siguientes pasos una seal de control incrementa el CP en
una unidad, por lo cual los programas deben estar escritos (cargados) en posiciones
consecutivas de memoria. El CP pasa la direccin al Registro de Direcciones
Registro de Direcciones (RD). Contiene la direccin de memoria donde se encuentra la prxi-ma
instruccin y esta comunicado con el Bus de Direcciones. El tamao de este registro determina
el tamao de la memoria que puede direccionar.( Si es de 32 bits se puede direccionar
232=4.294.967296 (4 GB posiciones de memoria).
Con la direccin de memoria, se transfiere a travs el Bus de Datos desde la memoria central al
Registro de Datos en la UC la instruccin correspondiente. Esta transferencia se realiza
mediante seales de control. Una vez que la instruccin se encuentra en la UCP, el cdigo de la
instruccin pasa al registro de instrucciones.
Registro de Instrucciones (RI). Contiene la instruccin que se est ejecutando en cada mo-
mento. Esta instruccin llevar consigo el cdigo de operacin (CO), accin de que se trata, y en
su caso los operandos o las direcciones de memoria de los mismos. Pasa el CO al decodificador.
Decodificador (D). Se encarga de extraer y analizar el cdigo de operacin de la instruccin en
curso (que est en el RI) y dar las seales necesarias al resto de los elementos para su ejecu-cin
por medio del Generador de Seales.
Generador de Seales(GS). En este dispositivo se generan rdenes muy elementales (mi-
crordenes) que, sincronizadas por los impulsos del reloj, hacen que se vaya ejecutando poco a
poco la instruccin que est cargada en el RI.
Reloj (R). Proporcionar una sucesin de impulsos elctricos a intervalos constantes (frecuen-cia
constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta
cada instruccin.

Figura 2

Unidad aritmticolgica (UAL)


Esta unidad es la encargada de realizar las operaciones elementales de tipo aritmtico (gene-
ralmente sumas o restas) y de tipo lgico (generalmente comparaciones). Para realizar su
funcin, consta de los siguientes elementos:
Banco de registros (BR).
Circuitos operadores (CIROP).
Registro de resultado (RR).
Sealizadores de estado (SE).

Banco de registros (BR). Est constituido por 8, 16 32 registros de tipo general que sirven para
situar dates antes de cada operacin, para almacenar datos intermedios en las operaciones y
para operaciones internas del procesador.
Circuitos operadores (CIROP). Compuesto de uno o varios circuitos electrnicos que reali-zan
operaciones elementales aritmticas y lgicas (sumador, complementador, desplazador, etc).
Registro de resultado (RR). Se trata de un registro especial, en el que se depositan los resul-
tados que producen los circuitos operadores.
Sealizadores de estado (SE). Registro con un conjunto de biestables en los que se deja
constancia de algunas condiciones que se dieron en la ltima operacin realizada.

LA MEMORIA CENTRAL (MC)


Es la parte de la unidad central de proceso de una computadora donde estn almacenadas las
instrucciones y los datos necesarios para que un determinado proceso pueda ser realizado.
La memoria central est constituida por una multitud de celdas o posiciones de memoria, nu-
meradas de forma consecutiva, capaces de retener, mientras la computadora est conectada, la
informacin necesaria.
Por otra parte, es una memoria de acceso directo, es decir, puede accederse a una de sus celdas
conociendo su posicin. Para esta memoria el tiempo de acceso es ms corto que para Las
memorias auxiliares, por tanto, los datos que manejan los procesos deben residir en ella en el
mo-mento de su ejecucin.
Es importante no confundir los trminos celda o posicin de memoria con el de palabra de
computadora, ya que esta ltima es el conjunto de posiciones de memoria que pueden
introducirse o extraerse de la memoria de una solo vez (simultneamente).
La memoria central tiene asociados dos registros para la realizacin de operaciones de lectura o
escritura, y un dispositivo encargado de seleccionar una celda de memoria en coda operacin de
acceso sobre la misma:
Registro de direccin de memoria (RDM)).
Registro de intercambio de memoria (RIM).
Selector de memoria (SM).

Registro de direccin de memoria (RDM). Contiene la direccin de memoria donde se en-


cuentran o va a ser almacenada la informacin (instruccin o dato), tanto si se trata de una
lectura como de una escritura de o en memoria central, respectivamente.
Registro de intercambio de memoria (RIM). Si se trata de una operacin de lectura, el RIM es
quien recibe el dato de la memoria sealado por el RDM, para su posterior envo a uno de Los
re-gistros de la UAL. Si se trata de una operacin de escritura, la informacin a grabar tiene que
ester en el RIM, para que desde l se transfiera a la posicin de memoria indicada por el RDM.
Selector de memoria (SM). Es el dispositivo que, tras una orden de lectura o escritura, conecta
la celda de memoria cuya direccin figure en el RDM con el RIM, posibilitando la transferencia
de Los dates en un sentido o en otro.
La memoria central suele ser direccionable por octeto o byte; por tanto, una celda o posicin de
memoria contiene 8 bits. Una de Las caractersticas fundamentales de una computadora es su
ca-pacidad de memoria interna (memoria central), la cual se mide en un mltiplo del byte
denominado Kilobyte, Kbyte, Kb o simplemente K, y que equivale a 1 024 bytes (1 024 = 2').
Otro mltiplo utili-zado ampliamente en Los ltimos tiempos es el Megabyte o simplemente
Mega, que equivale a 1 024 * 1 024 Bytes; es decir, a 1 048 576 bytes.

Bus de
Direcciones

Bus de
Datos
Registro
de de direccin
memoria Registro
de de intercambio
memoria
Bus de

Control

Selector
Memoria Central

0001

0010

0110

1011

TIPOS DE INSTRUCCIONES
Nos referiremos en este apartado a instrucciones del lenguaje mquina. Son aquellas que puede
ejecutar directamente el hardware de la computadora.
Las instrucciones mquina se pueden clasificar por la funcin que desempean en:
Instrucciones de transferencia de datos.
Instrucciones de ruptura de secuencia.
Instrucciones aritmticas y lgicas.
Instrucciones declarativas.
Etctera.
O por su contenido, teniendo en cuenta que todas ellas tienen en primer lugar lo que se lla-ma
cdigo de operacin (CO), que indica qu operacin se debe realizar por el procesador, y
aquellas en Las que su misin sea hacer alguna operacin con determinados dates; llevarn,
ade-ms, implcita o explcitamente dichos dates, que denominaremos operandos.
Instrucciones de tres operandos
Tambin se denominan instruccin es de tres direcciones. En primer lugar constan de un c-
digo de operacin al que siguen tres operandos, de Los cuales, Los dos primeros son Los
operandos y el tercero es la direccin donde se depositar el resultado. Este formato de
instruccin es el ms cmodo de trabajar, pero es el que precise mayor nmero de bits.
Esquema siguiente.
Cdigo de operacin Operando1 Operando2 Operando3
Instrucciones de dos operandos
Constan de un cdigo de operacin, seguido de dos operandos, de Los cuales uno de ellos acta
adems como receptor del resultado. Tambin se denominan instrucciones de dos direccio-nes.
En el siguiente esquema se ve la Instruccin de dos operandos.
Cdigo de operacin Operando 1 Operando2
Instrucciones de un operando
Tambin denominadas instrucciones de una direccin. Son Las que se utilizan generalmente en
mquinas cuya arquitectura funciona con filosofa de acumulador.
El acumulador es un registro especial, en el que se encuentra uno de Los operandos para es-te
tipo de instrucciones y donde adems se guarda el resultado.
En la instruccin se encuentra el cdigo de operacin seguido del segundo operando
Cdigo de operacin Operando 1
Instrucciones sin operandos
Tambin denominadas instrucciones sin ninguna direccin. Este tipo de instrucciones se utili-
zan generalmente en computadoras cuya arquitectura tiene filosofa de pila.
Una pila est formada por dates almacenados en orden consecutivo en la memoria, existiendo
un registro especial denominado puntero de pila que nos indica la direccin del ltimo dato
introdu-cido en ella. Cuando un dato es sacado de ella, el puntero de pila decrece, apuntando al
dato que est a continuacin en la pila hacia el fondo de la misma y que ser aquel dato que se
introdujo en primer lugar. Cuando se trata de introducir un dato en ella el puntero toma la
direccin de memoria siguiente en orden ascendente y se introduce en dicha direccin.
Estas instrucciones slo llevan cdigo de operacin, de tal forma que cuando se trata de una
operacin, se sacan Los operandos de la pila (previamente introducidos) y el resultado se
introduce en la misma.
cdigo de operacin
Una computadora en su lenguaje mquina puede tener instrucciones de las anteriores, segn
sea su arquitectura.
METODOS DE DIRECCIONAMIENTO
Se habla de direccionamiento en una instruccin al modo de indicar en la misma el lugar don-de
est situado el dato que va a intervenir en ella. Los direccionamientos utilizados en Las instruc-
ciones son Los siguientes:
Direccionamiento inmediato: en l, el dato a utilizar se halla en la propia instruccin, en el
acumulador o en la pila.
Direccionamiento directo: en este caso la instruccin contiene la direccin de me-moria central
donde se encuentra el dato.
Direccionamiento indirecto: la instruccin contiene la direccin de memoria central donde se
encuentra la direccin de memoria que contiene el dato.
Direccionamiento indexado: en el la direccin de memoria central donde se encuen-tra el dato,
se obtiene sumndole a la direccin que lleva la ins-truccin una cantidad, que se encuentra en
un registro especial llamado ndice.

LENGUAJES DE PROGRAMACIN
Para poder desarrollar las capacidades del hardware, se ha necesitado la creacin de cdigos por
medio d los cuales hacer que el ordenado ejecute una serie de rdenes a este conjunto de c-
digos se denomina lenguaje.
Un lenguaje de programacin es una notacin para escribir programas, a travs de los cuales
podemos comunicarnos con el hardware y dar as las rdenes adecuadas para la realizacin de
un determinado proceso. Un lenguaje viene definido por una gramtica o conjunto de reglas que
se aplican a un alfabeto constituido por el conjunto de smbolos utilizados.
Los distintos niveles en que se clasifican los lenguajes, no son ndice de la capacidad del len-
guaje. Cuando se habla de lenguajes de bajo nivel implica indicar que el lenguaje es fcil de ser
procesado por el microprocesador, ocupa poca lugar en memoria y de muy difcil programacin
para el hombre, cuando hablamos de alto nivel nos indica que el mismo programa es de fcil
programar por un programador pero ocupa mucho lugar de memoria y es de difcil acceso al
hardware, de tal forma que segn utilicemos un nivel u otro as tendremos que utilizar un
determinado lenguaje liga-do a sus correspondientes traductores.
El siguiente esquema representan la evolucin de los distintos lenguajes.
Periodo Influencias Lenguajes
1950 - 1955 Ordenadores primitivos Lenguajes ensamblador.
Lenguajes experimentales de alto nivel
1956 - 1960 Ordenadores pequeos, caros y lentos
Cintas magnticas.
Compiladores e intrpretes
Optimizacin del cdigo. FORTRAN
ALGOL 58 y 60
COBOL
LISP
1961 - 1965 Ordenadores grandes y caros
Discos magnticos
Sistemas operativos
Lenguajes de propsito general. FORTRAN IV
COBOL 61 Extendido
ALGOL 60 Revisado
APL (como notacin slo)
1966 - 1970 Ordenadores de diferentes tamaos, velocidades, y costes.
Sistemas caros de almacenamiento masivo de datos.
Sistemas operativos multitarea e inter-activos.
Compiladores con optimizacin. Len-guajes estndar, flexibles y generales. PL/I
FORTRAN 66 (estndar)
COBOL 65 (estndar)
ALGOL 68
SIMULA 67
BASI
C
APL/360
1971 - 1975 Micro ordenadores.
Sistemas pequeos y baratos de alma-cenamiento masivo de datos. Progra-macin
estructurada.
Ingeniera del software.
Lenguajes sencillos. PASCAL
COBOL 74
PL/I
1976 - 1980 Ordenadores baratos y potentes. Sis-temas distribuidos.
Programacin interactiva.
Abstraccin de datos.
Programacin con fiabifidad y fcil man-tenimiento. ADA
FORTRAN 77
PROLOG
C
1980 Ordenadores ms baratos y potentes.
Mayor abstraccin de datos.
Menor costo de memorias
Programacin Orientada o Objetos SmallTalk
OOCOBOL
C++
Ojective C
Object Pascal (Delphi)
Visual Basic
Lenguajes de programacin se clasifican:
Bajo nivel (Lenguaje mquina)
Intermedios (Lenguaje ensamblador), C
Alto nivel Gestin Cientficos Propsito general y especficos
Lenguaje mquina
El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el alfabeto
binario que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura inglesa de
dgi-tos binarios). Fue el primer lenguaje utilizado en la programacin de computadoras, pero
dej de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms
fciles de aprender y utilizar, que adems reducen la posibilidad de cometer errores.
EJEMPLO
0000 0001 1010 0001 01 A1
1000 1001 1001 1010 89 9A
0011 1010 1001 1100 3A 9C
0111 0100 0111 0000 74 70
1110 1001 0010 0000 E9 20
Lenguaje ensamblador
El lenguaje ensamblador es el primer intento de sustituir el lenguaje mquina por otro ms si-
milar a los utilizados por las personas. En este lenguaje cada instruccin equivale a una
instruccin en lenguaje mquina, utilizando para su escritura palabras nemotcnicas en lugar de
cadenas de bits.
EJEMPLO
INICIO: ADD B, 1
MOV A, E
CMP A, B
JE FIN
JMP INICIO
FIN : END
Este lenguaje presenta la mayora de los inconvenientes del lenguaje mquina:
Cada modelo de computadora tiene un lenguaje ensamblador propio diferente del de los
dems, por lo cual un programa slo puede utilizarse en la mquina para la cual se program.
El programador ha de conocer perfectamente el hardware del equipo, ya que maneja
directamente las posiciones de memoria, registros del procesador y dems elementos fsicos.
Todas las instrucciones son elementales, es decir, en el programa se deben describir con el
mximo detalle todas las operaciones que se han de llevar a cabo en la m-quina para la
realizacin de cualquier proceso.
Por otro lado, tanto el lenguaje mquina como el ensamblador gozan de la ventaja de mnima
ocupacin de memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la
compi-lacin del programa equivalente escrito en otros lenguajes.
Lenguajes de alto nivel
Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con pos-
terioridad a los anteriores, con los siguientes objetivos, entre otros:
Lograr independencia de la mquina, pudiendo utilizar un mismo programa en dife-rentes
equipos con la nica condicin de disponer de un programa traductor o compi-lador, que lo
suministra el fabricante, para obtener el programa ejecutable en lengua-je binario de la mquina
que se trate. Adems, no se necesita conocer el hardware especfico de dicha mquina.
Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma
ms sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el
lenguaje mquina, ya que se utilizan palabras (en ingls) en lugar de cadenas de smbolos sin
ningn significado aparente.
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemti-cas,
manejo de tablas, etc, que figuran en una especie de librera del lenguaje, de tal manera que se
pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran
cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL,
SNO-BOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID,
BASIC), adems de las diferentes versiones o dialectos que se han desarrollado de algunos de
ellos.
FORTRAN
Abreviatura de Frmula Translator (traductor de frmulas), fue definido alrededor del ao 1955
en los Estados Unidos por la compaa IBM. Es el ms antiguo de los lenguajes de alto nivel,
pues antes de su aparicin todos los programas se escriban en lenguaje ensamblador o en
lengua-je mquina.
Es un lenguaje especializado en aplicaciones tcnicas y cientficas, caracterizndose por su
potencia en los clculos matemticos, pero estando limitado en las aplicaciones de gestin,
manejo de archivos, tratamiento de cadenas de caracteres y edicin de informes.
A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la reali-zada
en 1966 por ANSI (American National Standard Institute) en la que se definieron nuevas re-glas
del lenguaje y se efectu la independencia del mismo con respecto a la mquina, es decir, co-
menz la transportabilidad del lenguaje. Esta versin se denomin FORTRAN IV o FORTRAN
66. En 1977, apareci una nueva versin ms evolucionada que se llam FORTRAN V o
FORTRAN 77, esta versin est reflejada en el documento ANSI X3.9-1978: Programming
Language FORTRAN y define dos niveles del lenguaje denominados FORTRAN 77 completo y
FORTRAN 77 bsico, siendo el segundo un subconjunto del primero. Esta ltima versin incluye
adems instrucciones para el manejo de cadenas de caracteres y de archivos, as como otras para
la utilizacin de tcni-cas de programacin estructurada. Estas caractersticas hacen que el
lenguaje tambin sea vlido para determinadas aplicaciones de gestin.
COBOL
Es el lenguaje ms usado en las aplicaciones de gestin, creado en 1960 por un comit de-
nominado CODASYL, patrocinado por el Departamento de Defensa de los Estados Unidos, a fin
de disponer de un lenguaje universal para aplicaciones comerciales como expresa su nombre
(COm-mon Business Oriented Language).
Entre sus caractersticas se pueden citar su parecido al lenguaje natural (ingls), es auto- do-
cumentado y tiene gran capacidad en el manejo de archivos, as como en la edicin de informes
escritos. Entre sus inconvenientes estn sus rgidas reglas de formatos de escritura, la necesidad
de describir todos los elementos al mximo detalle, la extensin excesiva en sus sentencias e
inclu-so duplicacin en algunos casos, la inexistencia de funciones matemticas y, por ltimo, su
no ade-cuacin a las tcnicas de programacin estructurada. a
PL/1
Fue creado a comienzos de los aos 60 por IBM para ser usado en sus equipos del sistema 360.
El PL/I (Programming Language 1) se desarroll inspirndose en los lenguajes ALGOL, CO-BOL
y FORTRAN, tomando las mejores caractersticas de los anteriores y aadiendo algunas nue-
vas, con el objetivo de obtener un lenguaje lo ms general posible, til para aplicaciones tcnico-
cientficas, comerciales, de proceso de textos, de bases de datos y de programacin de sistemas.
Entre sus novedades est su gran libertad en el formato de escritura de los programas, sopor-tar
la programacin estructurada y el diseo modular. No obstante, no ha superado a sus progenito-
res en sus aplicaciones especficas debido en parte a su amplitud y por ello, al tamao de su
compi-lador, que hasta ahora slo se poda instalar en grandes equipos.
BASIC
Fue diseado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College en
1965 con el objetivo principal de conseguir un lenguaje fcil de aprender para los principiantes,
como se indica en su nombre Benginners All-purpose Symbolic Instruction Code (Cdigo de
ins-truccin simblico de propsito general para principiantes).
Entre sus principales novedades estn las de ser un lenguaje interpretado y de uso conversa-
cional, til para aplicaciones tcnicas y de gestin. Estas caractersticas, unidas a la
popularizacin de las microcomputadoras y computadoras personales, ha hecho que su
utilizacin se haya exten-dido enormemente, a la vez que ha propiciado el surgimiento de una
gran diversidad de versiones que extienden y adaptan a necesidades particulares el lenguaje
original. Existen multitud de intr-pretes y compiladores del lenguaje.
PASCAL
Fue creado por el matemtico suizo Niklaus Wirth en 1970, basndose en el lenguaje AL-GOL,
en cuyo diseo haba participado en los aos 60. Su nombre proviene del filsofo y matemti-co
francs del siglo xvii Blaise Pascal, que invent la primera mquina de tipo mecnico para su-
mar.
Aunque en principio la idea del diseador era proporcionar un lenguaje adecuado para la en-
seanza de los conceptos y tcnicas de programacin, con el tiempo ha llegado a ser un lenguaje
ampliamente utilizado en todo tipo de aplicaciones, poseyendo grandes facilidades para la
progra-macin de sistemas y diseo de grficos.
Aporta los conceptos de tipo de datos, programacin estructurada y diseo descendente, en-tre
otros, adems de haberse convertido en predecesor de otros lenguajes ms modernos, como
MODULA-2 y ADA.
C
Fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los la-
boratorios Bell Telephone, Ken Thompson. Estos haban diseado con anterioridad el sistema
ope-rativo UNIX, y su intencin al desarrollar el lenguaje C fue la de conseguir un lenguaje
idneo para la programacin de sistemas que fuese independiente de la mquina con el cual
escribir su sistema UNIX.
Aunque fue diseado inicialmente para la programacin de sistemas, posteriormente su uso se
ha extendido a aplicaciones tcnico-cientficas, de bases de datos, de proceso de textos, etc.
La utilizacin ptima de este lenguaje se consigue dentro de su entorno natural, que es el sis-
tema operativo UNIX. Entre sus caractersticas destaca el uso de programacin estructurada
para resolver tareas de bajo nivel, as como la amplia librera de rutinas de que dispone.
ADA
Es el ltimo intento de obtener un nico lenguaje para todo tipo de aplicaciones e incluye los
ltimos avances en tcnicas de programacin. Su diseo fue encargado por el Departamento de
Defensa de los Estados Unidos a la empresa Honeywell-Bull despus de una seleccin rigurosa
entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber
eva-luado negativamente veintitrs lenguajes existentes. De stos se seleccionaron como base
para la creacin del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarizacin del
lenguaje se public en 1983 con el nombre de ADA en honor de la considerada primera
programadora de la historia Augusta Ada Byron, condesa de Lovelace.
Entre las caractersticas del lenguaje se encuentran la compilacin separada, los tipos abs-
tractos de datos, programacin concurrente, programacin estructurada, libertad de formatos
de escritura, etc., presentando como principal inconveniente su gran extensin.
Interpretes y Compiladores
Existen dos tipos principales de traductores de los lenguajes de programacin de alto nivel:
Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro
lenguaje (por ejemplo, en el lenguaje de la mquina). Su accin equivale a la de un traductor
humano, que toma un libro y produce otro equivalente escrito en otra len-gua.
Intrprete, que analiza el programa fuente y lo ejecuta directamente, sin generar nin-gn
cdigo equivalente. Su accin equivale a la de un intrprete humano, que tradu-ce las frases que
oye sobre la marcha, sin producir ningn escrito permanente. Intr-pretes y compiladores
tienen diversas ventajas e inconvenientes que los hacen com-plementarios:
Un intrprete facilita la bsqueda de errores, pues la ejecucin de un programa pue-de
interrumpirse en cualquier momento para estudiar el entorno (valores de las varia-bles, etc.).
Adems, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la
ejecucin.
Un compilador suele generar programas ms rpidos y eficientes, ya que el anlisis del
lenguaje fuente se hace una sola vez, durante la generacin del programa equiva-lente. En
cambio, un intrprete se ve obligado generalmente a analizar cada instruc-cin tantas veces
como se ejecute (incluso miles o millones de veces).
Un intrprete permite utilizar funciones y operadores ms potentes, como por ejemplo
ejecutar cdigo contenido en una variable en forma de cadenas de caracteres. Usual-mente, este
tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que
incluyen este tipo de operadores y que, por tanto, exigen un intr-prete, se llaman
interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden
de este tipo de operadores.
EVOLUCIN HISTRICA DE LA PROGRAMACIN
En el comienzo de la informtica, slo haba una forma de programar (en binario), que consis-
ta en la ejecucin secuencial (una tras otra) de instrucciones de la mquina, con posibles
cambios de secuencia basados en dos tipos especiales de instrucciones de control
Las instrucciones de control se dividieron en dos tipos:
instrucciones de transferencia
instrucciones de llamada de subrutina.
Las instrucciones de transferencia dan lugar a un salto sin retorno en la ejecucin, y a su vez
pueden ser condicionales (si el salto se produce nicamente cuando se cumple una condicin
determinada) o incondicionales.
La instruccin de llamada de subrutina guarda la direccin de retorno para que la secuencia de
ejecucin original se reanude cuando termina la ejecucin de la subrutina (momento en el que
se ejecutar una instruccin de retorno).
En la dcada de los aos cincuenta surgi un nuevo tipo da lenguajes (llamados simblicos, o de
segunda generacin: assembler), que trataban de simplificar la programacin: ya que, a medida
que los programas eran cada vez ms complejos, se haca impracticable utilizar directamente el
lenguaje de la mquina, en el que las instrucciones estaban formadas por secuencias de ceros y
unos.
Un lenguaje simblico no es ms que una representacin codificada del lenguaje de la mqui-na,
donde cada instruccin simblica se traduce (en principio) por una sola instruccin de la mqui-
na equivalente, y el cdigo de operacin y la direccin de memoria asociados a cada instruccin
de la mquina se representan mediante smbolos alfanumricos. En particular, dependiendo del
len-guaje simblico utilizado, las instrucciones de cambio de secuencia se suelen representar
mediante los siguientes smbolos:
La instruccin de transferencia incondicional: JMP (jump, es decir, salto); B (branch,
ramificacin); GOTO (go to, ir a); etc.
Las instrucciones de transferencia condicional: JZ (jump on zero, salto si el resul-tado anterior
es cero); BC (branch on condition, ramificacin condicional); etc.
La instruccin de llamada de subrutina: CALL (llamar, en ingls); BAL (branch and link, es
decir, ramificacin con enlace); etc.
La instruccin de retorno de subrutina: RET (return, retorno); etctera.
A finales de los aos cincuenta, y a medida que las aplicaciones iban creciendo en tamao y en
complicacin, la programacin en los lenguajes simblicos resultaba an demasiado compleja,
por lo que se inventaron los lenguajes de alto nivel o de tercera generacin, tales como
FORTRAN, LISP, COBOL, ALGOL, APL, PL/I, BASIC, Pascal, C, etc., que hacan ms legibles
los programas mediante expresiones de aspecto matemtico, como X + Y * Z (que significa, en
muchos de los len-guajes citados, sumar el valor de la variable X al resultado de multiplicar el
valor de la variable Y por el de la variable Z).
Todos estos lenguajes, y muchos ms que no voy a mencionar por el momento, no son total-
mente independientes entre s, sino que unos influyeron en el diseo de los otros, por lo que
forman una jerarqua histrica. Adems de simplificar la sintaxis de las expresiones, los
lenguajes de alto nivel introdujeron una serie de instrucciones de control para hacer ms simple
la definicin de la estructura de los programas. Estas instrucciones pueden agruparse en las
siguientes clases:
Una instruccin de transferencia incondicional (siempre se produce un salto sin re-torno en la
ejecucin), generalmente representada mediante el smbolo GOTO, GO TO, u otro equivalente.
Instrucciones de transferencia condicional, como las sentencias GO TO calculada y asignada de
FORTRAN, o la sentencia IF del mismo lenguaje, en su forma original.
Instrucciones de ejecucin condicional, como el conjunto IF- THEN-ELSE de AL-GOL y
Pascal, la instruccin CASE de Pascal o el conjunto if-else y la instruccin switch de C.
Instrucciones de ejecucin en bucle, en sus formas DO-UNTIL, DO-WHILE y FOR.
La instruccin de llamada de subrutina, representada mediante el smbolo CALL, o
implcitamente, especificando slo el nombre de la subrutina que se invoca, junto con un
conjunto de argumentos entre parntesis.
La instruccin de retorno de subrutina: RETURN o equivalente.
PROGRAMACIN ESTRUCTURADA
En ciertos lenguajes clsicos (como APL o las formas primitivas de FORTRAN y BASIC) se
emplea con frecuencia la instruccin GOTO de transferencia incondicional, que permite pasar la
ejecucin del programa a otra parte del mismo, sealada por una etiqueta. En otros (como C o
Pas-cal) se utiliza un estilo diferente de programar (la programacin estructurada) en la que la
instruc-cin GOTO est prohibida o, al menos, desaconsejada. Por ello, la programacin
estructurada se llama a veces programacin sin GOTO. En la programacin estructurada se
utilizan slo cuatro es-tructuras de control bsicas:
El bloque de instrucciones consecutivas. En C se representa con los smbolos { y ).
La instruccin condicional. En C y en PASCAL existen dos tipos principales:
1. La instruccin if-else: Si la condicin se cumple, se ejecuta la instruccin 1. En caso contrario,
se ejecuta la instruccin 2.
2. La instruccin switch (o case of):
- Si la variable tiene el valor1, se ejecuta el bloque de instrucciones 1.
- Si tiene el valor2, se ejecuta el bloque de instrucciones 2. Y as sucesiva-mente.
- Si no tiene ninguno de los valores indicados, se ejecuta el bloque de ins-trucciones n.
El bucle: En C (o en PASCAL) existen tres tipos principales:
1. La instruccin for: Se ejecuta primero la instruccin iniciadora. A continuacin, mientras la
con-dicin se cumpla, se ejecutan repetidamente las instrucciones, seguidas por la instruccin
termi-nadora.
2. La instruccin while: Mientras la condicin se cumpla, se ejecutan repetidamente las
instruccio-nes. Si la condicin no se cumple cuando la ejecucin llega a la instruccin while, las
instruccio-nes no se ejecutan ninguna vez.
3. La instruccin do: Mientras la condicin se cumpla, se ejecutan repetidamente las
instrucciones. Si la condicin no se cumple cuando la ejecucin llega a la instruccin do, las
instrucciones se ejecutan al menos una vez.
La cuarta instruccin de control es la llamada de subrutina, a la que dedicaremos el apartado
siguiente.
PROGRAMACIN PROCEDIMENTAL
La llamada de subrutina (conocida, en general, como instruccin CALL) sirve para relacionar
unos programas con otros y permite modular las aplicaciones, descomponindolas en dos o ms
secciones llamadas procedimientos, subrutinas, o funciones, segn los casos. Por esta razn los
lenguajes de programacin clsica se llaman tambin procedimentales. Gracias a la capacidad
de invocar la ejecucin de procedimientos, los distintos programas que constituyen una
aplicacin sue-len formar una estructura jerrquica, con un programa principal (main en C) que
llama a otros sub-programas, y stos a otros, hasta llegar a los niveles ms bajos de la jerarqua,
donde suelen si-tuarse los programas que prestan servicios especiales a casi todos los dems. La
jerarqua en cues-tin no forma siempre, un rbol invertido, sino un esquema algo ms
complejo. Es cierto que siem-pre suele haber un nodo principal o raz (el programa principal),
pero un mismo nodo puede tener ms de un antecesor (puesto que una subrutina puede ser
invocada por varios mdulos). Adems, es posible que haya ciclos, simples o compuestos, pues
los mdulos pueden ser recursivos, direc-tamente o indirectamente. En cambio, en esta forma
de programar, los datos no tienen ninguna organizacin preestablecida: cada programador
decide cmo se relacionan unos con otros y cmo se distribuyen entre los subprogramas. En
principio, existen dos clases de datos:
Datos globales: son accesibles por todos los subprogramas.
Datos locales: son accesibles por un solo subprograma, mdulo o funcin.
A veces, dependiendo del lenguaje de programacin, los datos locales son automticamente
heredables por los subprogramas o funciones situados, en la jerarqua de llamadas, por debajo
del subprograma en que dichos datos han sido definidos.

You might also like