
Software
El Software es la parte lógica que dota al equipo físico de capacidad para realizar cualquier tipo de trabajos.
¿Cuáles son los tipos o la clasificación del Software ?
La clasificación básica es: software de sistema y software de aplicación.
El software de sistema es un conjunto de programas imprescindibles para el funcionamiento del Hardware y su objeto es facilitar el uso del computador (aísla de la complejidad de cada dispositivo, y presenta al exterior un modelo común de sistema de manejo para todos los dispositivos) y conseguir que se use eficientemente (ejemplo: realizar operaciones mientras se ejecuta un programa). Administra y asigna los recursos del sistema (hardware).
Son escritos / modificados por programadores de sistemas que han de tener profundos conocimientos acerca de cómo trabaja realmente la máquina. Se proporciona normalmente como parte integrante de la máquina por el proveedor.
Dentro del Software de Sistema encontramos dos subcategorias: El Sistema Operativo y los compiladores e interpretes.
Sistema Operativo
Un sistema operativo (SO) es un conjunto de programas y funciones que controlan el funcionamiento del Hardware ocultando sus detalles, ofreciendo al usuario una vía flexible de acceso a la computadora.

Sistemas operativos.
Traductores
Los programas traductores son metaprogramas que toman como entrada un programa escrito en lenguaje simbólico alejado de la máquina denominado programa fuentey proporcionan como salida otro programa equivalente escrito en lenguaje comprensible por el hardware de la computadora denominado programa objeto.
Existen tres tipos de lenguajes traductores:
- Programas ensambladores: El término ensamblador(del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje simbólicos de bajo nivel (denominados lenguajes ensambladores o assemblers), en programas objeto escritos en lenguaje máquina, ejecutable directamente por el harware de la computadora. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.
Ejemplo de Hola mundo! en lenguaje ensamblador:
cr equ 13
lf equ 10
dades SEGMENT PARA PUBLIC ‘data’
msg1 DB ‘Hola Mundo’,cr,lf,‘$’
dades ENDS
codi SEGMENT PARA PUBLIC ‘code’
MAIN PROC FAR
ASSUME cs:codi,DS:dades,SS:pila,ES:dades
MOV AX,dades
MOV DS,AX
MOV ES,AX
MOV AH,09H
LEA DX,msg1
int 21H
MOV AX,4C00H
int 21h
MAIN ENDP
codi ENDS
pila SEGMENT PARA STACK ‘stack’
DB 128 DUP(0)
pila ends
END MAIN
- Programas compiladores: Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarloa un programa más manejable por una computadora. Una característica principal de este tipo de traductores es que realiza una traducción ccompleta, y en el caso de no existir errores se pasa a la creación del programa objeto.
- Programa Intérprete: un intérprete es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código máquina del sistema destino, los primeros (los interpretes) sólo realizan la traducción a medida que sea necesario, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).
Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.
- En la actualidad, uno de los entornos más comunes de uso de los intérpretes informáticos es Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.
Ejemplos
Algunos ejemplos de lenguajes que son normalmente interpretados en vez de compilados son:
- Perl
- PHP
- Java
- Javascript
- Logo
- ASP (hasta la versión 3)
- Python
- C#
- J#
- ASP
El software de aplicaciónes está compuesto por el conjunto de programas que ha sido diseñado para que la computadora pueda desarrollar un trabajo. Pertenecen a este determinado grupo los denominados paquetes de software, que consisten en un conjunto de programas que permiten editar textos, guardar datos sacar informes, hacer cálculos, comunicarnos con otros usuarios, etc.
Es en este software de Aplicacióndonde se aprecia en forma más clara la ayuda que puede suponer un computadoren las actividades humanas, ya que la máquina se convierte en un auxiliar del hombre, liberándole de las tareas repetitivas.
Los programadores de aplicaciones, a diferencia de los programadores de sistemas, no necesitan conocer a fondo el modo de funcionamiento interno del hardware.
Basta con que conozcan las necesidades de información de sus aplicaciones y cómo usar el sistema operativo, para conseguir satisfacer estas necesidades.
Sus programas deben ser independientes del hardware específico que se utilice y deben ser transportados sin grandes problemas de adaptación a otras computadoras y otros entornos operativos.
Dentro de los programas de aplicación, puede ser útil una distinción entre aplicaciones verticales, de finalidad específica para un tipo muy delimitado de usuarios (médicos, abogados, arquitectos…), y aplicaciones horizontales, de utilidad para una amplísima gama de usuarios de cualquier tipo.
Algunos ejemplos de software aplicaciones son:
> Procesadores de texto. (Bloc de Notas)
> Editores. (PhotoShop para el Diseño Gráfico)
> Hojas de Cálculo. (MS Excel)
> Sistemas gestores de bases de datos. (MySQL)
> Programas de comunicaciones. (MSN Messenger)
> Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)
> Programas de diseño asistido por computador. (AutoCAD)