¿Qué es el Software de Sistemas?
El software de sistemas es un tipo de software que sirve para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas (aplicaciones).
Componentes Clave del Hardware
- Memoria: Constaba de 4096 palabras, cada una de 40 bits. Cada palabra podía contener dos instrucciones de 20 bits o un número entero de 39 bits y su signo.
- Unidad de Control (UC): Determina la siguiente instrucción a ejecutar y la pasa a la ALU.
- Unidad Aritmético-Lógica (ALU): Se encarga de realizar las operaciones aritméticas y lógicas necesarias para la ejecución de una instrucción.
- Entrada: Dispositivos por los que se introduce información a la computadora (ej. teclado, ratón).
- Salida: Dispositivos que reciben información de la máquina para ser utilizada por el usuario (ej. monitor, impresora).
Del Problema al Programa: Etapas de Desarrollo
- Definición del problema
- Análisis del problema
- Selección de la mejor alternativa
- Diagramación (ej. diagramas de flujo)
- Prueba de escritorio
- Codificación
- Transcripción
- Compilación
- Pruebas en computadora
- Documentación externa
Editores de Código y Texto
Los editores son herramientas esenciales en el desarrollo de software. Existen varios tipos:
- Editores de Caracteres: Permiten modificar caracteres predefinidos o crear nuevos.
- Editores de Texto: Programas que permiten crear y modificar archivos digitales compuestos únicamente por texto sin formato (archivos de texto plano).
- Editores de Línea: Se usan para crear o editar tablas de definición de campos y tablas de selección de campos. Estas tablas están formadas por líneas que representan elementos descriptivos.
- Editores de Pantalla: Editores que trabajan línea a línea y muestran una pantalla de texto a la vez.
Lenguajes de Programación
Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas que definen la estructura y el significado de sus elementos. Se utiliza para controlar el comportamiento físico y lógico de una máquina.
Clasificación de los Lenguajes de Programación
- Lenguaje de Alto Nivel: Lenguajes que son independientes del tipo de máquina y se aproximan al lenguaje natural (ej. C, Java, Fortran, Basic).
- Lenguaje de Medio Nivel: Lenguajes que se encuentran en un punto intermedio. C es un ejemplo, ya que puede acceder a registros del sistema y direcciones de memoria (características de bajo nivel), pero también realiza operaciones de alto nivel.
- Lenguaje de Bajo Nivel: Lenguajes dependientes de la máquina. Los programas escritos en estos lenguajes no son portables a otras máquinas. Están diseñados a medida del hardware, aprovechando al máximo sus características.
Generaciones de Lenguajes de Programación
- Primera Generación: Lenguaje máquina.
- Segunda Generación: Lenguajes ensambladores.
- Tercera Generación: Lenguajes de alto nivel (ej. C, Pascal, Cobol).
- Cuarta Generación: Lenguajes capaces de generar código por sí solos (RAD – Rapid Application Development). Permiten crear aplicaciones sin ser un experto. Incluyen lenguajes orientados a objetos (ej. Visual Basic, Natural Adabas).
- Quinta Generación: Lenguajes orientados a la inteligencia artificial (ej. LISP). Todavía están en desarrollo.
Compiladores e Intérpretes
- Compilador: Un programa compilado puede ejecutarse por sí solo, ya que se transforma en lenguaje máquina. Un archivo compilado es específico de una plataforma.
- Intérprete: Traduce el programa línea por línea, convirtiendo el código directamente en acciones. Un programa interpretado requiere el intérprete para funcionar, pero puede ejecutarse en cualquier plataforma que tenga el intérprete adecuado.
Ventajas y Desventajas:
- Los programas compilados son generalmente más rápidos (10 a 20 veces) que los interpretados.
- Los programas interpretados son más portables entre diferentes plataformas.
Traductores
Un traductor es un programa que toma como entrada un texto escrito en un lenguaje (lenguaje fuente) y produce como salida un texto en otro lenguaje (lenguaje objeto). Los compiladores e intérpretes son tipos de traductores.