Hardware
Hardware: material de ferrería o mercancía dura. Parte física del computador, compuesto por la unidad central y los dispositivos periféricos; la unidad central es un conjunto de circuitos que gobiernan el funcionamiento de la computadora y el lugar donde se realizan las operaciones sobre los datos. Los dispositivos periféricos se encargan de recoger los datos, almacenarlos y suministrar los resultados al usuario o a otras máquinas.
Unidad central de proceso
Constituida por un solo circuito integrado llamado microprocesador. En este componente se pueden distinguir los registros internos, la unidad aritmético-lógica y la unidad de control, las que están conectadas por un bus interno del microprocesador.
Unidad de control:
Circuito que decodifica las instrucciones y da las órdenes a la unidad aritmético-lógica y a los circuitos externos. Decodifica las instrucciones que obtiene del almacenamiento. Coordina todos los componentes del computador, de modo que tomen lugar en la secuencia apropiada y en el momento correcto.
Unidad aritmético-lógica:
Es la encargada de realizar las operaciones aritméticas o lógicas sobre los datos almacenados. Almacena temporalmente los datos en registros mientras realiza las operaciones.
Unidad de control de entrada/salida:
Dirige la transferencia de datos desde un dispositivo de entrada de datos hacia el almacenamiento, y viceversa; y dirige la transferencia hacia los dispositivos de salida. La unidad de memoria, la unidad de entrada y la unidad de salida le permiten a la computadora comunicarse con el exterior y almacenar información.
Registros internos:
Registros de memoria incluidos dentro del microprocesador usados para sus operaciones. Pueden ser usados por la Unidad aritmético-lógica, de Control y la de Control de E/S.
Memoria
Conjunto de circuitos donde se almacenan los datos y programas con los que se está trabajando.
Pueden clasificarse en:
- ROM: memorias de solo lectura (Read only memory), se graban durante la fabricación de la computadora. La información permanecerá en la máquina, no pudiendo modificarse posteriormente. En las computadoras contiene el programa de inicialización, y en muchos casos, el sistema operativo o el programa intérprete de algún lenguaje de programación.
- EPROM o erasable ROM: memorias ROM que pueden ser borradas para su posterior grabación.
- RAM: memorias de lectura y escritura (Random Access Memory). Donde se almacenan los datos y programas que varían durante el funcionamiento de la máquina. Esta información desaparece al cortar la alimentación (electricidad). Es posible alterar el contenido de sus celdas sin modificar las demás.
Reloj
Circuito oscilador de frecuencia constante que emite señales para que los circuitos funcionen de modo sincrónico.
Buses
Bus: tipo de conexión eléctrica que permite unir los componentes de la computadora.
Consta de un grupo de conductores a los que están conectados todos los circuitos de la computadora, los que son susceptibles de recoger información del bus y transmitírsela.
Buses externos:
- Bus de datos: transmite instrucciones de programa y datos.
- Bus de direcciones: le sirve al microprocesador para transmitir la identificación de la posición de memoria o interfaz con que quiere comunicarse.
- Bus de control: transmite diversas señales con las que el microprocesador indica a los demás componentes la acción que desea de ellos.
Dispositivos periféricos
Permiten a la computadora comunicarse con el exterior o almacenar información fuera de la memoria RAM.
La comunicación con los periféricos se realiza a través de un protocolo o codificación especial que minimiza los riesgos de error.
Software (Sw)
Es el conjunto de programas y codificaciones necesarias para hacer que el hardware ejecute la tarea deseada.
El software debe tener en cuenta las peculiaridades del funcionamiento del hardware.
A la vez el hardware es diseñado teniendo en cuenta las posibles necesidades de los usuarios, que se plasmarán en un software adecuado.
Programa
Conjunto de instrucciones que ejecutadas en un cierto orden indican a la computadora las operaciones que debe realizar con los datos.
Las instrucciones se escriben en un lenguaje formal, con reglas sintácticas estrictas que evitan las ambigüedades del lenguaje corriente.
Sistema operativo
Conjunto de programas que realizan las operaciones más rutinarias en la computadora.
Efectúa operaciones como:
- Comprobar el funcionamiento de la memoria.
- Mantener en funcionamiento del reloj-calendario.
- Enviar y recibir información de los periféricos.
- Controlar e informar de la memoria disponible, etc.
Permite que los computadores de distinta construcción puedan ser vistos como iguales por los programas de aplicación.
Lenguaje de programación
La computadora trabaja con un número reducido de instrucciones, las que forman el código o lenguaje máquina.
Estas instrucciones se codifican de forma binaria e indican al procesador las operaciones elementales a realizar.
Por ejemplo la instrucción 0001101000100110 para una máquina IBM especifica que debe sumar los contenidos de los registros numéricos 2 y 6.
Lenguaje de bajo nivel:
Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador.
- Es fácilmente trasladado a lenguaje de máquina.
- Orientado a la máquina.
- Se utiliza para programar controladores (drivers).
Lenguaje ensamblador:
Es un tipo de lenguaje de bajo nivel, constituye la representación más directa del código máquina específico para cada arquitectura de computadoras y legible por un programador.
- Es una representación más comprensible para las personas que las instrucciones del código máquina.
Ensamblador:
Es un programa capaz de traducir el lenguaje ensamblador a lenguaje máquina.
Lenguaje de alto nivel o de tercera generación:
En los que se escriben las instrucciones en notaciones más resumidas que en el lenguaje ensamblador.
- Se caracterizan por expresar los algoritmos de una manera más adecuada a la capacidad cognitiva humana que a la capacidad ejecutora de las máquinas.
- Ej. Basic, C++, C#, Cobol, Java.
Lenguaje compilado:
Una vez escrito el programa, éste se traduce a partir de su código fuente por medio de un compilador en un archivo ejecutable para una determinada plataforma.
- Lenguajes de alto nivel en los que las instrucciones se traducen a código máquina para una ejecución rápida.
- Ej. C, Pascal, Fortran.
Compilador:
Programa que traduce cada instrucción a código máquina.
- Traspasa el código fuente (lenguaje de alto nivel) a código objeto.
Lenguajes interpretados o de script:
Es aquel en el que las instrucciones se interpretan. Están diseñados para ser ejecutados por medio de un intérprete. No deben ser tratados por el compilador antes de ser ejecutados.
- Permite mayor adaptación al equipo.
- Mínimo uso de memoria.
- Imposibilidad de escribir código independiente de la máquina.
- Mayor dificultad en la programación y en la comprensión de los programas.
- Ej. JavaScript, Lisp, PHP.
Programa intérprete:
Contiene una serie de subprogramas o subrutinas en código máquina que se van ejecutando a medida que se leen las instrucciones.
Clasificaciones de lenguajes
Paradigmas de programación:
Se refieren a la manera de ver y modelar el dominio de un problema y a la forma de resolver el problema.
- Imperativos: modificación de variables mediante sentencias o comandos. Ej.: Pascal, C, Fortran.
- Funcionales: creación de objetos (valores) mediante funciones (expresiones). Ej.: Scheme, Lisp.
- Concurrentes o paralelos: realización simultánea de varias acciones (tareas, procesos). Ej.: Ada.
- Lógicos o relacionales: determinación de relaciones a partir de hechos y predicados (cláusulas o reglas). Ej.: Prolog.
- Orientados a objetos: encapsulamiento de objetos pertenecientes a clases. Los datos elementales pueden ser activos, con características asociadas (propiedades) a programas procedurales (métodos). Ej.: C++, Java.
- Híbridos: Combinación de los anteriores. Ej.: Parlog (Prolog concurrente).
Forma de especificación
- Procedurales: se especifica el COMO se va a llevar a cabo la computación (paso a paso). Ej. lenguajes imperativos.
- Declarativos: se especifica el QUE se quiere obtener. Ej. lenguajes funcionales, lógicos, relacionales.
Área de aplicación: Tipos de datos incorporados
- Propósito general: tipos de datos genéticos (números, caracteres, cadenas, etc.).
- Orientación específica:
- Simulación Ej. Matlab, Simula.
- Bases de datos Ej. SQL.
- Almacenamiento y presentación de texto Ej. PDF, HTML.
- Presentación y almacenamiento de imágenes Ej. GIF, JPEG; de sonido Ej. WAV, MIDI; de objetos gráficos y geométricos (representación vectorial) Ej. PIC.
- Lenguajes matemáticos Ej. EQN, TBL.
- Comandos de SO Ej. Command (MSDOS), bash (UNIX).