Professional Documents
Culture Documents
ANTECEDENTES
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.
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.
Software 1
Software 2
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
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
ASPECTOS A CONSIDERAR
CATEGORAS PARA EL SUBMODELO DEL PRODUCTO
Usabilidad (USA) Se refiere a la capacidad del producto para ser atractivo, entendido,
aprendido, y utilizado por el usuario bajo condiciones especficas.
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.
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.
Kit de herramientas
*Desarmador
*Pulcera antiesttica
*Espuma o limpiador para computadora
*Franela
*Soplador
*Estopa
*Aire comprimido o soplador
*isopos de algodon
2.-Destornillar el chasis.
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.
posibles problemas que puedan llegar a surgir a medida que se utiliza el computador.
Depuracin de archivos:
diferentes versiones de los archivos, esto es, cuando un archivo despus de ser
Este proceso consiste en la eliminacin de los archivos generados por las aplicaciones
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.
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.
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
Figura 1
Figura 2
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.
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.