IE 3 Software
IE 3 Software
SOFTWARE
En contraste con el equipo físico (hardware), se utiliza el término software para referirse a todos los programas que se pueden
utilizar en un sistema de computación.
El software es el componente lógico que actuando sobre el hardware, permite que el ordenador pueda realizar su trabajo y
ayuda a sacar el máximo provecho del equipo, es, por consiguiente, el conjunto de programas que controlan el funcionamiento
del ordenador
PROGRAMA
Secuencia lógica y ordenada de instrucciones para resolver, mediante un computador, un determinado problema, a través de un
algoritmo.
Se dice que los programas están “escritos” por programadores. Los programas se “leen” (colocan) en una computadora y se
“corren” (procesan) por medio de la computadora como un tipo de datos. Los programas pueden revisarse y extenderse y con
frecuencia a esta actividad de le llama “mantenimiento de programas”.
INSTRUCCION
Comúnmente se entiende por instrucciones “el conjunto de reglas o normas dadas para la realización o empleo de algo”.
En informática, instrucción es la información que indica a un ordenador una acción elemental a ejecutar. Las instrucciones
tienen que ejecutarse en un orden adecuado. Así pues, una instrucción por separado no nos dice mucho; para obtener el
resultado necesitamos ejecutar el conjunto de todas las instrucciones debidamente ordenadas.
ALGORITMO
Es la descripción detallada de un procedimiento de calculo, o más generalmente, de tratamiento de datos.
CODIGOS DE CARACTERES
En este momento estamos en condiciones de ver como administra la información la computadora. Aquí entra a jugar el código
de caracteres. Como ya vimos, la computadora trabaja en sistema binario y cada byte consta de 8 bits lo cual indica que puede
tener 256 valores distintos (2 elevado a la 8). Lo que hace el código de caracteres es adjudicar a cada valor un único número,
letra, etc. determinado. Al contenido de un byte (números, letras y símbolos especiales) se los llama caracteres.
Estas equivalencias se hallan establecidas en las denominadas Tabla de Caracteres, que según las distintas convenciones tienen
diferentes nombres. Así tenemos por ejemplo los códigos: HOLLERITH para tarjetas perforadas, EBCDIC, ASCII.
El código que utilizan las PC’s es el ASCII extendido (American Standard Code for Information Interchange, código estándar
americano para el intercambio de información), este código originalmente tenía 128 caracteres, ya que estaba formado por 7
bits; y en 1981 fue creado el código extendido por IBM, en cual agregó caracteres ajenos al inglés, símbolos matemáticos y
gráficos.
1
2
El código EBCDIC, (Extended Binary Code for Decimal Interchange Coded, Código Ampliado de Intercambio Decimal
Codificado a Binario) es el utilizado por la mayoría de los grandes equipos de computación (mainframes), principalmente los
de IBM.
1 SOFTWARE DE BASE
Está formado por el Sistema Operativo y los Programas Utilitarios, los cuales pueden ser suministrados por el fabricante junto
con el ordenador, o bien pueden ser adquiridos por separado, lo cual es más frecuente.
1.1.1 DEFINICION
Programa, o conjunto de programas, que controla y administra la utilización de los recursos de Hardware y de Software de la
computadora.
He aquí la definición teórica del término, si bien en la práctica esta definición no siempre se respeta.
En los primeros ordenadores, la simplicidad de los Sistemas Operativos (SO) forzaba al hombre a realizar tareas no específicas
del problema que trataba de resolver.
La evolución de los mismos tiende a que el ser humano se desentienda cada vez más de los trabajos de la máquina para abo-
carse de lleno a los problemas que intenta resolver con esta herramienta.
Resulta útil comparar un sistema operativo con el gobierno de un país. Algunos gobiernos controlan eficientemente cada
aspecto de su país y la población vive en forma organizada, mientras que otros no poseen la capacidad para gobernar y el
pueblo dicta sus propias reglas. De igual modo, algunos sistemas operativos son suficientemente robustos como para controlar
todas las funciones de la computadora y permitir que los programas corran organizadamente, mientras que otros dejan librado
al criterio de cada programa la utilización -correcta o no de los recursos de la máquina.
1.1.2 Componentes
En términos generales, todo sistema operativo se compone de tres partes:
• Kernel (Núcleo): realiza todas las operaciones básicas de administración de los distintos elementos de la computadora,
como la memoria, el procesador y los periféricos en general. En el MS-DOS, el núcleo reside en el archivo llamado
[Link].
• Drivers (Manejadores): rutinas encargadas de administrar periféricos específicos. El hecho de que los drivers estén bien
diferenciados del núcleo del sistema operativo permite que éste sea extendible, es decir, se pueda adaptar a innovaciones en
hardware. Los drivers básicos para la PC (consola, impresora de líneas, etc.) se ubican en el archivo [Link] del MS-DOS.
• Interface con el usuario: es la parte “visible” del sistema operativo, que nos permite controlar sus funciones a través de una
consola. En algunos casos -como el [Link] del MS-DOS- ésta interfase consiste simplemente en un intérprete
de comandos que son ingresados por el teclado. En otros casos -como en el Windows- que simula un escritorio donde se
disponen los elementos de trabajo.
2
3
El mundo de las PC’s se ha convertido en los últimos años en una suerte de campo de batalla donde varios sistemas operativos
se disputan la preponderancia actual y futura. Las ventajas de unos sobre otros no dependen simplemente de las mayores o
menores prestaciones ofrecidas, sino de una serie de factores como existencia de software compatible, capacidad para
adaptarse a mejoras en el hardware y posibilidad de interactuar con computadoras de diferente arquitectura.
Es poco probable que un único SO llegue a dominar absolutamente el mundo de la computación. La tendencia apunta más bien
a una segmentación según las necesidades de procesamiento.
Cabe suponer, sin embargo, que la supervivencia del más apto entre los SO estará determinada por algunos de los siguientes
factores:
• multitasking: posibilidad de ejecutar distintos procesos en forma simultáneamente en una misma computadora.
• multiprocesamiento: posibilidad de ejecutar distintos procesos en forma simultánea en una computadora con más de un
procesador.
• soporte de red: si bien los servicios de una red de computadoras no son funciones propias de un SO, siempre será
preferible aquel que brinde en forma adicional facilidades como para compartir recursos y correo electrónico.
• adaptabilidad: capacidad para subsistir ante los vertiginosos avances en hardware.
• compatibilidad: capacidad para funcionar en distintas computadoras y para interactuar con distintos SO.
• intefase humana: la comunicación con el usuario dejó de ser un factor desdeñable, ya que actualmente la mayoría de los
usuarios de computadoras son no-expertos.
Además de los factores mencionados, que hacen a la calidad de un SO, intervienen muchos otros: el márketing, la resistencia a
los cambios, etc. Estas cuestiones, que son totalmente ajenas a la computación, pueden hacer caer en el fracaso al SO más
osado.
1.2.1 Definición:
Conforman un paquete de programas que puede ser provisto por el fabricante junto con el sistema operativo, o bien adquirido
por el usuario en forma separada. Algunos de los más famosos son: PCTOOLS, NORTON COMMANDER, NORTON DISK
DOCTOR.
Existen dos clases de utilitarios:
a) Los orientados al hardware (por ej.: programas de testeo de unidades periféricas, memoria principal, etc.)
b) Los orientados al software, que permiten conocer, manejar y proteger la información de nuestro sistema.
Básicamente son programas que desarrollan, o bien tareas simples y rutinarias, o trabajos de considerable complejidad.
Estos programas están en franco proceso de desaparición debido a la absorción de sus tareas por parte del software de base.
2 SOFTWARE DE APLICACION
Son los programas que permiten la adecuada utilización del ordenador para diferentes tareas, obteniéndose de él la máxima
performance posible.
Estos pueden ser hechos por el usuario mismo o por un tercero a quien se lo encargue, estos son los denominados programas a
medida, o bien pueden ser programas comerciales, (programas enlatados) que se compran en casas de computación, estos son
los denominados programas enlatados siendo estos últimos los más difundidos y conocidos, pudiendo citar como ejemplos:
LOTUS, EXCEL, WORD, DBASE, WORD PERFECT, etc.
3
4
[Link] DEFINICION
Se denomina habitualmente lenguajes de programación a los lenguajes exteriores, o evolucionados, por oposición a los
diferentes lenguajes de maquina (o de nivel I), y los lenguajes ensambladores (o de nivel II). El termino “exterior” significa
aquí “independiente de la estructura de la maquina utilizada”. Programar usando un lenguaje de programación “exterior”, o de
nivel III, libera (en principio) de conocer de antemano la forma en que el constructor ha definido la estructura de la memoria,
el juego de instrucciones de la maquina, el sistema de direccionamiento, las modalidades de acceso a las unidades de entrada-
salida, etc.
No consideraremos aquí mas que los lenguajes de nivel II y III, y los denominaremos simplemente, siguiendo el uso general,
lenguajes de programación. Debe quedar claro, sin embargo, que una buena programación, cualquiera sea el lenguaje utilizado,
no ignora la arquitectura del equipo sobre el cual opera.
Un lenguaje de programación es, una notación formal que permite describir algoritmos que serán ejecutados por la
computadora.
Como toda notación formal, posee dos componentes: la sintaxis y la semántica.
La sintaxis consiste en un conjunto de reglas que especifican cómo se construyen los programas. Las reglas sintácticas son las
que indican, por ejemplo, que los paréntesis en una expresión aritmética deben estar balanceados.
Por otro lado, las reglas semánticas son las que especifican el significado de todo programa sintácticamente correcto.
Una manera sencilla de describir la semántica de un lenguaje dado, es dando una descripción intuitiva en castellano de cada
construcción del mencionado lenguaje. Obviamente una descripción de este tipo sufre las ambigüedades del lenguaje natural,
es por ello que un área de la Ciencia de la Computación estudia la forma de dar semántica mediante herramientas matemáticas.
Es difícil dar un panorama global sobre los diferentes lenguajes de programación. En primer lugar se pueden dar algunos
conceptos que pueden ser útiles en el momento de tener que decidirse por alguno:
• Todos los lenguajes poseen costos adicionales al de su compra, que son el mantenimiento de los mismos y el entrenamiento
del usuario.
• Los programas escritos sobre lenguajes estructurados tales como Pascal o C generalmente son más fáciles para desarrollar,
depurar, mantener y modificar.
• El elegir un lenguaje común hace que haya disponible en el mercado mucha gente calificada y experimentada en el mismo,
que puede llegar a ser muy útil para aclarar consulta, dudas, etc. Todo programador sabe muy bien lo que es encontrarse
con uno de esos problemas que pueden llevar varios días de trabajo antes de encontrar su solución.
• Si no se tiene muy en claro la aplicación que se va a desarrollar, es conveniente invertir en un lenguaje tal que los
programas escritos en él sean fácilmente modificables, tal como un lenguaje de cuarta generación, aunque este requiera de
mas hardware para funcionar.
• Tener en cuenta la portabilidad. Es conveniente asegurarse de no utilizar un lenguaje exótico con portabilidad limitada.
Puntos a tener en cuenta cuando se enumeran las características de los lenguajes de programación:
rapidez de ejecución
entorno de trabajo
modularidad
acceso a archivos
legibilidad de los programas
documentación disponible
4
5
[Link].4.1.2 Funcionales
Se apoya en el concepto matemático de función (la cual es su teoría subyacente), y su esencia es la de combinar funciones para
producir otras de mayor potencia.
En principio, un programa escrito bajo este paradigma no tendría ninguna “instrucción” en particular, sino que estaría formado
por una o más funciones.
Se recordara que son las funciones: son relaciones entre elementos de conjuntos, que toman valores pertenecientes a él o los
conjuntos de salida. Por ejemplo, matemáticamente se define la función suma entre números naturales como:
suma: N x N -> N
Lo que indica que esta función tomará dos números naturales como entrada y devolverá un número natural.
La gran diferencia entre las funciones de los lenguajes imperativos y los funcionales es que en los primeros los parámetros son
nombres de celdas, que eventualmente pueden ser modificados. Incluso pueden cambiarse los valores de variables que hay en
común entre quien invoca la función y ésta.
La programación funcional tiene como objetivo evitar estos efectos oscuros y resuelve este problema considerando a un
parámetro de una función como algo fijado en el momento de aplicación de la misma.
Las primeras implementaciones de este paradigma datan de la década del 50. Sin embargo se tardo bastante tiempo en
conseguir que este deje los ámbitos universitarios.
El lenguaje mas conocido y el primero de este paradigma es el LISP, existiendo varios otros que lo utilizan (ej.: APL). Uno de
ellos implementa un conjunto reducido de este paradigma, tal es el caso del LOGO.
[Link].4.1.3 Lógicos
La base de la programación lógica es la de codificar el problema y no su solución (que es como se hace en la programación
procedural). Su objetivo es permitir en cierto modo ejecutar directamente las especificaciones, lo que se busca es que el
programador simplemente enuncie las propiedades que cuenta el problema al cual se le busca solución.
En este modelo de programación la descripción del problema se da mediante la implementación de algún formalismo lógico.
5
6
Su implementación se basa en la interpretación del cálculo de predicados de la lógica tradicional, restringido a cláusulas de
Horn. Si esto no se entiende puede verse con un ejemplo:
Una “instrucción” en un paradigma lógico tendría este aspecto:
si premisa1 y premisa2 y.... y premisaN entonces conclusión
Cuando se habla del cálculo de predicados se habla de las oraciones del tipo “si... entonces..”. Los predicados tienen la forma:
Predicado(parametro1,....,parámetroN)
Las cláusulas de Horn son predicados que tienen una y solo una conclusión.
El lenguaje típico que cumple con este modelo es el Prolog (PROgramming in LOgic), que fue presentado a principios de la
década del ‘70 en Francia.
Según la forma en que se ejecutan los programas escritos con ellos, los lenguajes de programación se dividen en: lenguajes
compilados y lenguajes interpretados.
6
7
El hecho de que un Interprete tenga una filosofía distinta al compilador/linkeditor, no cambia el hecho de que el computador
entienda solo instrucciones en lenguaje de máquina. Por lo tanto y partiendo de un programa en lenguaje de programación, este
también tendrá que ser traducido a lenguaje de máquina, si bien el método es distinto.
Este consiste en realizar para cada instrucción en lenguaje de programación el proceso equivalente al de Compilación,
Linkedición y Ejecución. De aquí se deduce que es necesario que el interprete esté presente en la memoria junto con el
programa, mientras el compilador/linkeditor, una vez usados, no ocupan lugar en memoria.
7
8
Se cuenta con cuerpos de estándares que son mas o menos activos, que emiten normas de evolución sintáctica del lenguaje en
cuestión.
La portabilidad teórica es mucho más amplia que en los casos anteriores. Sin embargo la portabilidad practica puede acercarse
a la teórica o por el contrario hacerse mucho más difícil que en los casos de lenguajes más simples dependiendo de su grado de
conocimiento de entre que y que quiere portar las cosas.
La curva de aprendizaje es mucho más larga por el hecho de que requiere una serie de conocimientos a priori.
Algunos ejemplos de estos lenguajes son: C, ADA, MODULA, APL, SMALLTALK, ASSEMBLER
2.1.5 CAD
El diseño asistido por computadora (CAD; Computer Aided Design) fue durante algún tiempo patrimonio exclusivo de las
grandes computadoras y los poseedores de PC’s solo podíamos enterarnos de la existencia de esta disciplina a través de
documentales televisivos. Sin embargo, gracias al crecimiento experimento por las computadoras personales en materia de
capacidad de procesamiento, hoy en día cualquiera de nosotros puede tener en la máquina de su escritorio un poderoso
programa CAD.
La sigla a la que hacemos referencia está íntimamente relacionada con otras dos siglas parecidas: CAM (Computer aided
Manufacturing, Fabricación Asistida por Computadora) y CAE (Computer Aided Engineering, Ingeniería Asistida por
Computadora). Las tres siglas se suelen utilizar en conjunto (CAD/CAM/CAI) ya que hasta cierto punto se refieren a una
misma cosa. El diseño hecho en computadora puede ser utilizado por un ingeniero para construir un prototipo “soft”, es decir,
que no tiene presencia física. Este prototipo puede ser testeado virtualmente y los errores encontrados pueden corregirse con
rapidez, sin necesidad de borronear planos o tirar maquetas a la basura. Estas ventajas dan origen a la sigla CAE. De igual
modo, un modelo construido con un sistema de CAD puede descomponerse en las piezas que lo conforman, y pueden
obtenerse cálculos respecto a las cantidades de materiales, calibración de herramientas, y demás datos necesarios para acelerar
procesos de fabricación. Esto indica el porqué de la sigla CAM.
Hasta ahora hemos hablado únicamente de ingenieros y fábricas, pero el diseño asistido por computadora también se utiliza
con probados resultados en diversas actividades, como arquitectura, diseño de interiores, e inclusive, paisajismo. Con un
sistema de CAD, el arquitecto puede construir una casa en forma virtual y permitir que sus clientes recorran la totalidad de sus
rincones cuando ni siquiera están cavados los cimientos. Un moderno paisajista podría, por su parte, construir un “jardín
virtual” y mostrarlo con la luz del amanecer o del atardecer, en primavera o en otoño, además de agregar o sacar árboles,
arbustos y canteros sin ensuciarse las manos con tierra.
9
10
Editar un cuerpo geométrico de 3 dimensiones puede resultar más complejo que editar un figura en 2 D. En este último caso,
bastaba con mover puntos, estirar líneas o cambiar la concavidad de una curva. Para lo primero, los programas de
modelización en 3D cuentan con herramientas más poderosas. Además de componer un objeto a partir de cuerpos elementales
como esferas o cubos, estos se pueden seccionar con un plano como si fuera una filosa navaja, en cualquier ángulo que se
desee.
Por más que un programa de CAD nos permita crear virtualmente un objeto con tres dimensiones, la pantalla de la PC aun
sigue siendo plana. La ilusión de la tercera dimensión se crea gracias a la posibilidad de hacer girar los objetos en torno a
cualquiera de los tres ejes de coordenadas espaciales, y ver la imagen que resulta de proyectar el objeto en las dos dimensiones
de la pantalla. De este modo podremos verlo desde el ángulo que más nos guste. Además, estos programas suelen permitir que
se divida la pantalla en varias ventanas para poder ver el objeto desde arriba, desde el costado, de frente y en perspectiva, todo
en la misma pantalla.
El conocido comando Zoom, que en los programas de dibujo nos permite simplemente ver en detalle nuestro trabajo, en un
programa 3D sirve más bien para entrar en él.
10