La computación no nació repentinamente en un año específico. Surge de años de evolución y desarrollo. La base de la comunicación entre distintos dispositivos fue prácticamente desarrollada a partir del pensamiento de Gottfried Wilhelm Leibniz (1646-1716) y George Boole (1815-1864) que descubrió los operadores lógicos.
Para no extenderme en datos que no usará un técnico en reparación de computadoras, explico lo que son los operadores lógicos mediante un ejemplo, siendo el operador más sencillo de comprender y el que se tomará por ejemplo el operador Not.
Este, recibe generalmente el nombre de negación, porque entrega el valor contrario al que recibe por su entrada. Si en su entrada hay un uno, en su salida habrá un cero y si hay un cero en su entrada, su salida tendrá un uno, es decir entrega el valor contrario al que recibe. En electrónica digital a un operador lógico se lo conoce como una “compuerta lógica”.
Una compuerta lógica entrega un valor según el o los entrante/s. Existen varios y según como se los combinan forman circuitos con los cuales se pueden realizar: sumas, comparaciones, u otros tipos de cálculos. Es decir, las tareas que desempeñan un Microprocesador actual o los gigantes computadores anteriores a las PC modernas.
Un humano se comunica con un dialogo muy extenso. La voz humana emite variaciones sonoras muy amplias. Había que desarrollar en una computadora un lenguaje de comunicación rápido, preciso y censillo, para que se comuniquen los distintos componentes entre sí y se puedan realizar fácilmente tareas de cálculo en lo posible sin error.
La forma más fácil de hacer esto fue utilizando el lenguaje binario que consta de grupos de unos y ceros siendo cada “uno” y “cero” representado mediante el estado “abierto” o “cerrado” como si fuera un interruptor que puede tener solo dos posiciones. De esta forma, solo existen dos variaciones y no una amplia gama de ellas. No obstante los “unos y ceros” para poder representar números o letras se transmiten entre los dispositivos de a grupos mínimos de cuatro cifras, salvo en excepciones de comunicación con flujo de datos en serie, en los cuales igualmente al final se agrupan los “unos y ceros” en grupos pese a que se transmitan de a uno.
El lenguaje en las computadoras se basa en representar números y letras a partir de tan solo dos estados. En la siguiente tabla a modo de ejemplo indico con números binarios el equivalente a un número decimal, de un ancho de banda de cuatro dígitos (4 bits).
Número binario | hexadecimal | Número binario | hexadecimal |
0000 | 0 | 1000 | 8 |
0001 | 1 | 1001 | 9 |
0010 | 2 | 1010 | A |
0011 | 3 | 1011 | B |
0100 | 4 | 1100 | C |
0101 | 5 | 1101 | D |
0110 | 6 | 1110 | E |
0111 | 7 | 1111 | F |
¿Recuerda el uso de las tarjetas perforadas usadas por el obrero textil? ¿Recuerda que mencioné anteriormente a la primera programadora que hacia sus programas perforando tarjetas? En la tarjeta perforada solo había dos estados: “agujereado” o “liso”, en el binario ocurre lo mismo, la diferencia es que ahora en vez de usar una plantilla de madera o metal perforada, usamos cables (o líneas de conducción) y lo que seria “agujereado” o “liso” ahora es un “uno” o “cero” representado por una variaciones de la tensión transportada en los cables o líneas conductoras según corresponda.