¿Cómo funcionan las computadoras?

Recién observé un programa de televisión dirigido al público en general donde dos conductores conversaban con dos profesionales de la computación. El tema en general era el avance actual de la tecnología de cómputo. Los conductores hacían diversas preguntas a los expertos, enfocadas a la divulgación de aspectos básicos acerca de cómo funcionan las computadoras. Un público no especializado, pero curioso, apreciaría respuestas que ayudaran a mejorar su entendimiento de esta tecnología tan importante hoy en día.

Una de las preguntas planteadas, si la memoria no me falla demasiado, fue: ¿Cómo funciona una computadora tal que al indicar un 7, seguido de un signo de adición, y finalmente un 8, arroje 15 como la respuesta correcta?

Me pareció una muy buena pregunta pues —en el contexto del programa— representa una oportunidad para tratar de explicar, en términos no especializados, cómo funcionan algunos aspectos de las computadoras digitales, tan populares actualmente. Interpreto que la pregunta busca una explicación un poco más amplia que una respuesta simple, como quizá lo sea: las computadoras son como calculadoras. Creo que se busca una explicación asequible, para dicho público no especializado, pero que ofrezca un atisbo del diseño por el cual tales funciones son posibles.

Ofrezco la siguiente explicación, la cual tiene dos partes ligadas entre sí. La primera sirve para explicar la idea de la codificación, misma que necesitaré para explicar otra idea en la segunda parte.

Para que una computadora realice alguna tarea, como el cálculo de la suma aritmética usada como ejemplo en la pregunta, 8+7=15, es necesario primero comunicarle a la computadora, de alguna forma, cuáles son los elementos básicos de nuestro problema, así como nuestra intención o expectativa sobre dichos elementos. Tal comunicación requiere que la computadora interprete correctamente la idea del 8 y del 7 como números, como cantidades; así como el signo de suma como la operación aritmética correspondiente.

Para lograr toda comunicación los humanos usamos códigos. Cada código tiene un grupo de símbolos. Los símbolos representan, por simple asociación, las ideas a las que nos referimos. Lo hacemos cotidianamente, por ejemplo, la palabra mesa nos remite a la idea del objeto que tenemos en la casa o en el trabajo. Esta mismísima explicación es posible por el uso de un código de lenguaje natural. Este código emplea a las letras y a las palabras como símbolos de lo que se quiere indicar. Cada palabra es parte de un código, es este caso, llamado idioma español. Las mismas ideas podrían ser comunicadas pero usando otro código de lenguaje natural, por ejemplo, el idioma inglés o portugués. La asociación de ideas con un código en particular se llama codificación. Contando con este concepto pasemos a la segunda parte de la explicación.

El símbolo mesa, que pertenece a un código de lenguaje natural, es comunicado necesariamente por medio de otro código adicional, más concreto, por ejemplo a través de la palabra escrita; el cual es un código de símbolos visuales. El mismo símbolo mesa también puede ser comunicado por medio del código de la palabra hablada; consistente de símbolos auditivos. También, por medio del código Morse, cuyos símbolos pueden tomar forma eléctrica. Por tanto, nótese que hay códigos más cercanos a las ideas, es decir más abstractos (con símbolos como la palabra mesa), que para ser comunicados necesariamente utilizan a otros códigos más cercanos a lo que se puede percibir con los sentidos, es decir más concretos (como las letras en un texto escrito, o los sonidos al hablar, o los puntos del sistema Braille que se pueden tocar). Esta relación escalonada, ordenada por el nivel de abstracción, en la cual códigos más abstractos necesariamente dependen de códigos más concretos se llama estratificación.

Provistos de estos dos conceptos, codificación y estratificación, estamos en posición de ofrecer una explicación general de cómo una computadora está diseñada para ser capaz de ofrecer el resultado de una operación como la suma aritmética de dos números.

La forma para comunicar a la computadora la idea de los números ocho y siete, así como la idea de la suma aritmética, y el cómo la computadora comunica el resultado hacia nosotros o hacia otras computadoras interconectadas, consiste de una estratificación de códigos que van desde los símbolos del lenguaje natural dispuestos, por ejemplo, en las piezas del teclado de la computadora, hasta el código de tan sólo dos símbolos (código binario) en el estrato de sus componentes electrónicos.

El código binario es el más básico y concreto del cómputo actual. Sus únicos dos símbolos son representados por los dos estados en que pueden estar un tipo de interruptores llamados transistores. La presencia o ausencia de corriente eléctrica en estos transistores define esos dos posibles estados —comúnmente referidos como uno y cero, respectivamente—. La variedad de combinaciones posibles al agrupar estos transistores provee el fundamento para la codificación de los símbolos en cada código en la estratificación requerida para representar las ideas tanto de los problemas como de las soluciones que nos interesan.

El alcance o capacidad de representación simbólica en el modelo actual de cómputo es el resultado de un incremento gradual de nuevos estratos adicionales a la estratificación existente. Nuevos estratos con nuevos y cada vez más elevados niveles de abstracción que permiten representar las ideas de cada vez más problemas de interés humano, poniendo las bases para obtener las soluciones a dichos problemas. Nuestra imaginación y nuestra capacidad de abstracción son algunos de los únicos límites reales para esta tecnología.