Conceptos Básicos
1. Computador u ordenador
Es una colección de circuitos integrados y otros componentes relacionados que puede
ejecutar con exactitud, rapidez y de acuerdo a lo indicado por un usuario o
automáticamente por otro programa, una gran variedad de secuencias o rutinas de
instrucciones que son ordenadas, organizadas y sistematizadas en función a una amplia
gama de aplicaciones prácticas y precisamente determinadas, proceso al cual se la ha
denominado con el nombre de programación y al que lo realiza se le llama programador.
La PC, está compuesto por:
Hardware. (Hard = Duro)
El hardware se refiere a los componentes materiales de un sistema informático. La función
de estos componentes suele dividirse en 4 categorías principales:
Microprocesador (CPU)
Memoria (MP)
Periféricos (E/S)
Buses
Representación lógica de una PC
a. Procesador o CPU. La unidad central de procesamiento, o simplemente el
procesador o microprocesador, interpreta las instrucciones contenidas en los
programas y procesa los datos. Los CPU proporcionan la característica
fundamental de la computadora digital (la programabilidad) y son uno de los
componentes necesarios encontrados en las computadoras de cualquier
tiempo, junto con el almacenamiento primario y los dispositivos de
entrada/salida.1, la CPU está compuesta básicamente por:
Unidad Aritmético Lógica, (Siglas en inglés de arthmetic logic unit), es
un circuito encargado de calcular operaciones lógicas (si, y, o, no) y
aritméticas (como suma, resta, multiplicación, etc.).
Unidad de Control, elemento encargado de sincronizar las acciones
que realiza cada una de las unidades funcionales de un computador.
El reloj (Clock), Generan impulsos eléctricos binarios para ejecutar o
procesar las instrucciones esta frecuencia son las que controlan la
operación de todos los circuitos de la PC. La fecuencia mide en
ciclos/segundo o Hertzios, en la actualidad las velocidades son
superiores a e 2.5 Giga Hertzios, es decir, 2.5 x 109 ciclos /segundo o
hertzios.
El registro, es una memoria de alta velocidad y poca capacidad,
integrada en el microprocesador, que permite guardar
transitoriamente y acceder a valores muy usados, generalmente en
operaciones matemáticas.
b. La memoria principal (MP). Está for4mada por bloques de circuitos integrados
o chips capaces de almacenar, información digital (valores binarios) a dichos
bloques tiene acceso el microprocesador de la CPU mediante el bus de
direcciones. La memoria de la PC se clasifica en dos:
Memoria ROM, (read-only memory) o memoria de sólo lectura, es la
memoria que se utiliza para almacenar los programas que ponen en
marcha el ordenador y realizan los diagnósticos. Ejemplo el BIOS ROM.
Memoria RAM o memoria de acceso aleatorio (Random Acces
Memory). Es la memoria del usuario que contiene de forma temporal
el programa, los datos y los resultados que están siendo usados por el
usuario del computador. En general es volátil, pierde su contenido
cuando se apaga el computador, es decir que mantiene los datos y
resultados en tanto el bloque reciba alimentación eléctrica, a
excepción de la CMOS RAM.
c. Periféricos E/S. Son dispositivos que se conectan a la PC y controlados por
ella, estos dispositivos se dividen en tres:
Entrada. Dispositivos por donde ingresan la información.
Salida. Dispositivos de salida de información.
Entrada y salida. Generalmente son unidades de disco por donde
ingresan y sale la información.
d. Bus. Es un conjunto cableado que sirve para que los dispositivos hardware
puedan comunicarse entre sí. Lo buses se dividen en tres:
Bus de datos, trabaja en conjunción con el Bus de Direcciones para
transportar los datos a través del computador. El tamaño puede ser
de 16, 32 o 64 bits.
Bus de control, es parte del bus de la computadora (la conexión
física), que es utilizado por la CPU para comunicarse con otros
dispositivos. El bus de control transmite comandos desde la CPU y
devuelve una señal de estado desde el dispositivito.
Bus de Direcciones, es un canal del microprocesador totalmente
independiente del bus de datos donde se establece la dirección de
memoria del estado en tránsito. Las direcciones de memoria son
números naturales (en hexadecimal) que indican la posición de los
datos dentro de la memoria principal.
2. SOFTWARE (SOFT = SUAVE)
Son programas de computadoras. Instrucciones responsables de que el hardware (la
máquina) realice su tarea. Como concepto general, el software puede dividirse en varias
categorías basadas en el tipo de trabajo realizado. A fines prácticos se puede clasificar al
software en tres grandes tipos:
Software de sistema. Su objetivo es desvincular adecuadamente al usuario y al
programador de los detalles de la computadora en particular que se use, aislándolo
especialmente del procesamiento referido a las características internas de: memoria,
discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El
software de sistema le procura al usuario y programador adecuadas interfaces de alto
nivel, herramientas y utilidades de apoyo su mantenimiento. Incluye entre otros:
Sistemas operativos
Controladores de dispositivos
Herramientas de diagnostico
Herramientas de Corrección y Optimización
Servidores
Utilidades
Software de programación. Es el conjunto de herramientas que permiten al programador
desarrollar programas informáticos, usando diferentes alternativas y lenguajes de
programación, de una manera práctica. Incluye entre otros:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas,
usualmente en un entorno visual, de forma tal que el programador no necesite
introducir múltiples comandos para compilar, interpretar, etc.
Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
Software de aplicación. Es aquel que permite a los usuarios llevar a cabo una o varias
tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o
asistido, con especial énfasis en los negocios. Incluye entre otros:
Aplicaciones para control de sistemas y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software empresarial
Bases de datos
Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
Videojuegos
Software médico
Software de Cálculo Numérico y simbólico
Software de Diseño Asistido (CAD)
Software de Control Numérico (CAM)
3. LENGUAJE DE PROGRAMACIÓN
Se define como un lenguaje artificial que permite desarrollar software mediante el uso
de conjunto de sintaxis y reglas semánticas para dar instrucciones a la computadora,
también podemos considerar un programa para crear programas. El primer compilador
fue desarrollado por Grace Hopper 1951, trabajando para Remington Rand, comenzó el
trabajo de diseño del primer compilador conocido ampliamente, el A-0, el cual, al ser
liberado por la compañía en 1957, lo hizo con el nombre de MATHMATIC.
El primer lenguaje de programación
PROGRAM SUMA
ampliamente conocido y exitoso fue
FORTRAN (The IBM Mathematical Formula RAL A, B, C
Translating Sytem), desarrollado entre 1954 y READ (*,*) A, B
1957 por un equipo de investigadores en IBM
C= A + B
liberados por John Backus. El éxito de
FORTRAN condujo a la creación de un comité WRITHE (*,*) ‘La suma es’: C
de científicos para desarrollar un lenguaje de END
programación “universal”; el resultado de su
esfuerzo fue ALGOL 58 (Algorithmic
Language).
Lenguajes de programación por su nivel de abstracción
a. Lenguaje máquina. Es aquel con el que
operación Código
trabaja el microprocesador; para
reaccionar y efectuar la operación que Cargar registro 001
se desea, necesita de una secuencia de Almacenar registro 010
señales eléctricas almacenadas como Sumar en registro 011
“unos” y “ceros” en las posiciones de la aritmético
memoria. Restar en registro 100
Una y solo una secuencia de señales aritmético
concreta, realiza una determinada Saltar si contenido cero 101
operación. Identificaremos a partir de ahora Saltar si contenido no 110
la existencia de señal con un “1” y la cero
ausencia con un “0”. Decrementar registro 111
Índice
En los primeros tiempos de la
Tabla de registros en lenguaje máquina
informática los programas se
ingresaban en el ordenador
directamente en código de maquina (binario), indicando uno por uno el valor de los
bits de cada una de las posiciones de memoria. Para ello se insertaban manualmente
cables en un panel de conectores: cada cable insertado en un conector representaba
un cero.
b. Lenguaje de programación de bajo nivel. Constituye la representación más directa
del código máquina específico para cada arquitectura de computadoras legible por
un programador mediante un símbolo. Pronto se diseñaron notaciones que
simplifican la programación: cada instrucción de código de maquina se representaba
mediante un código mnemotécnico, es decir, una abreviatura fácil que corresponden
a las instrucciones de código máquina para un microprocesador específico ejemplo:
Operación Código Mnemónicos
Máquina
Cargar registro 001 CA
Almacenar registro 010 AL
Sumar en registro 011 SUM
aritmético
Restar en registro 100 RES
aritmético
Sallar si contenido 101 SC
cero
Sallar si contenido 110 SNC
no-creo
Tabla de registros de instrucciones nmemónicos y su equivalencia
c. Lenguaje de programación de alto nivel. En los lenguajes de alto nivel las
instrucciones son independientes de la máquina, son más fáciles de aprender porque
están formados por elementos de lenguajes naturales (del inglés), pero precisan de
un programa intérprete o compilador que traduzca este lenguaje de programación
de alto nivel a uno de bajo nivel para que la computadora pueda entender.
Algoritmo C++ Python
Leer cin Input
Escribir cout Print
Sumar + +
Incrementar ++ ++
Decrementar -- --
Mientras while While
Retomar return Return
Sentencias de programación de alto nivel se observa que tiene interpretación
humana
Generación de lenguajes de programación
Al igual que la evolución de la computadora han pasado por cuatro generaciones, de las que las
tres primeras (ordenadores con válvulas, transistores y circuitos integrados), la cuarta
(microprocesadores), los lenguajes de programación ha sido evolucionando. Estas generaciones se
aproximan a esa relación, y son las siguientes:
Lenguajes compilados e interpretados
Son dos formas de efectuar el código fuente uno genera un archivo ejecutable y el otro genera un
archivo, así podemos observar:
Secuencia de proceso de compilación
El programador, con ayuda de una herramienta de editor genera un código fuente y el lenguaje de
alto nivel elegido, el programa (que incluye todas las definiciones de variables y estructuras de
datos, así como el algoritmo). Esto constituye el denominado código fuente. A continuación se
realiza la traducción del código fuente. A continuación se realiza la traducción del código fuente al
lenguaje maquina para el entendimiento del microprocesador. Los programas que realizan esta
labor son los compiladores e intérpretes.