NEGOCIOS

«Una cosa muy estúpida que hacer»: los orígenes de C

Por difícil que sea de creer, C no nació simplemente en formato de libro de bolsillo.
Agrandar / Por difícil que sea de creer, C no nació simplemente en formato de libro de bolsillo.

De una forma u otra, C ha influido en la forma de casi todos los lenguajes de programación desarrollados desde la década de 1980. Algunos lenguajes como C++, C# y C objetivo pretenden ser sucesores directos del lenguaje, mientras que otros lenguajes simplemente han adoptado y adaptado la sintaxis de C. Un programador versado en Java, PHP, Ruby, Python o Perl tendrá pocas dificultades para comprender los programas simples de C y, en ese sentido, C puede considerarse casi como una lingua franca entre los programadores.

Pero C no surgió completamente formado de la nada como un monolito de programación. La historia de C comienza en Inglaterra, con un colega de Alan Turing y un programa que jugaba a las damas.

Dios salve al rey

Christopher Strachey era conocido como la «persona que escribió programas perfectos», como se señala en un largo perfil de la revista Annals of the History of Computing.. Fue una reputación que adquirió en el Centro de Computación de la Universidad de Manchester en 1951. Strachey terminó allí, trabajando en la computadora Ferranti Mark I de la escuela a través de una antigua conexión de King’s College, Cambridge, Alan Turing.

Strachey nació en 1916 en una familia británica bien conectada: su tío, Lytton Strachey, fue miembro fundador del Grupo Bloomsbury, mientras que su padre, Oliver Strachey, jugó un papel decisivo en las actividades de descifrado de códigos de los aliados durante las dos guerras mundiales.

Que Strachey terminara siendo un reconocido experto en programación e informática habría sido una sorpresa para los instructores de su escuela pública y de la Universidad de Cambridge. Strachey siempre había mostrado talento para las ciencias, pero rara vez se aplicaba.

Si tenía esperanzas de una carrera en investigación académica, recibió un duro golpe por un rendimiento mediocre en sus exámenes finales. En cambio, Strachey pasó la Segunda Guerra Mundial trabajando para una empresa de electrónica británica y luego se convirtió en maestro de escuela, y finalmente aterrizó en Harrow, una de las escuelas públicas más prestigiosas de Londres.

En 1951, Strachey tuvo su primera oportunidad de trabajar con computadoras cuando le presentaron a Mike Woodger en el Laboratorio Marketingdecontenido de Física de Gran Bretaña. Después de pasar un día de sus vacaciones navideñas familiarizándose con el Pilot ACE del laboratorio, pasó su tiempo libre en Harrow averiguando cómo enseñarle a la computadora a jugar a las damas. Como dijo Martin Campbell-Kelly, un colega de Strachey en sus últimos años, «cualquiera con más experiencia o menos confianza se habría conformado con una tabla de cuadrados».

Este primer esfuerzo no llegó a buen término; el Pilot ACE simplemente no tenía la capacidad de almacenamiento necesaria para jugar a las damas, pero ilustró un aspecto del interés de Strachey que resultaría fundamental en el desarrollo de los lenguajes que condujeron a C. En un momento en que las computadoras se valoraban principalmente por su capacidad para resolver ecuaciones rápidamente, Strachey estaba más interesado en su capacidad para realizar tareas lógicas (como confirmaría más tarde durante la reunión de la Asociación de Maquinaria Informática de 1952).

Artículo Recomendado:  Keybase se mueve para detener la avalancha de spammers en la plataforma de mensajes cifrados

Más tarde esa primavera se enteró de la computadora Ferranti Mark I que se había instalado en la Universidad de Manchester, donde Alan Turing era subdirector del laboratorio de computación. Turing había escrito el manual del programador, y Strachey lo conocía lo suficientemente bien de su tiempo juntos en Cambridge como para pedirle una copia del manual.

En julio de 1951, Strachey tuvo la oportunidad de visitar Manchester y discutir su programa de damas con Turing en persona. Convenientemente impresionado, Turing sugirió que, como primer paso, escribiera un programa que permitiera al Ferranti Mark I simularse a sí mismo. Un simulador permitiría a los programadores ver, paso a paso, cómo la computadora ejecutaría un programa. Tal programa de ‘rastreo’ destacaría los lugares donde el programa causó cuellos de botella o funcionó de manera ineficiente. En una época en la que tanto la memoria de la computadora como los ciclos del procesador costaban una fortuna, este era un aspecto importante de la programación.

El programa de rastreo que escribió Strachey incluía más de mil instrucciones; en ese momento, era el programa más largo que jamás se había escrito para el Ferranti Mark I. Strachey lo tenía listo y funcionando después de pasar toda la noche, y cuando el programa terminó, reprodujo «God Save the King» en el altavoz de la computadora, según Campbell-Kelly.

Este logro, por parte de un aficionado, llamó la atención de Lord Halsbury, director gerente de la Corporación Marketingdecontenido de Investigación y Desarrollo, quien pronto reclutó a Strachey para encabezar los esfuerzos del gobierno para promover aplicaciones prácticas de los rápidos desarrollos en informática que tienen lugar en las universidades británicas.

Fue en esta capacidad que se enteró de un proyecto en Cambridge llevado a cabo por un trío de programadores llamados David.

david y Goliat Titán

El centro de computación de la Universidad de Cambridge tenía una fuerte orientación al servicio. Las primeras computadoras del Laboratorio de Matemáticas, EDSAC y EDSAC 2, se pusieron a disposición de investigadores de otros lugares de la universidad que escribieron programas que se perforaron en cinta de papel y se introdujeron en la máquina.

En el centro de cómputo, estas cintas de papel se engancharon a un tendedero y se ejecutaron una tras otra durante el horario comercial. Esta línea de programas pendientes se conoció como la «cola de trabajos», un término que sigue en uso para describir medios mucho más sofisticados de organizar tareas informáticas.

En la marca de las 6:55, disfrute de la acción de la «cola de trabajos» de EDSAC.

Solo dos años después de que EDSAC 2 entrara en línea, la universidad se dio cuenta de que pronto se necesitaría una máquina mucho más potente y, para lograrlo, tendrían que comprar un mainframe comercial. La universidad consideró tanto el IBM 7090 como el Ferranti Atlas, pero no podía permitirse ninguno de ellos. En 1961, Peter Hall, gerente de división de Ferranti, sugirió que podrían desarrollar una versión simplificada de la computadora Atlas junto con la Universidad de Cambridge. Cambridge obtendría el prototipo, denominado «Titán», y Ferranti podría comercializar la nueva computadora entre los clientes que no podían pagar el sistema Atlas.

Para brindar servicios informáticos al resto de la universidad, esta nueva computadora necesitaría tanto un sistema operativo como al menos un lenguaje de programación de alto nivel.

Se pensó poco en expandir el lenguaje que se había desarrollado para EDSAC 2. «A principios de la década de 1960, era común pensar: ‘Estamos construyendo una nueva computadora, por lo que necesitamos un nuevo lenguaje de programación'», recordó David Hartley. en un podcast de 2023. Junto con David Wheeler y David Barron, Hartley estaría involucrado en el desarrollo inicial del lenguaje de programación de esta nueva computadora.

“El nuevo sistema operativo era inevitable”, según Hartley, pero un nuevo lenguaje de programación no lo era. «Pensamos que esta era una oportunidad para divertirnos con un nuevo idioma, lo cual, en retrospectiva, fue una estupidez».

Maurice Wilkes, que estaba supervisando el proyecto Titán, sintió que no había necesidad de un nuevo lenguaje de programación. La principal justificación de Titan era proporcionar servicios informáticos al resto de la Universidad de Cambridge, y para ello sería mejor si la máquina estuviera lista y funcionando lo más rápido posible y equipada con un lenguaje con el que los usuarios ya estuvieran familiarizados.

Wilkes requirió un análisis de los lenguajes de programación disponibles antes de aprobar una propuesta para desarrollar un nuevo lenguaje. “Los elegimos con mucho cuidado”, dijo Hartley, “para decidir que ninguno de ellos era adecuado”. En particular, el grupo de trabajo evaluó Fortran IV sin consultar a los usuarios de Fortran en Cambridge, quienes podrían haber explicado las características adicionales incluidas con otras variedades de Fortran. Debido a esto, Hartley recordó que el grupo estaba convencido de que «podríamos definir y desarrollar fácilmente algo significativamente mejor», antes de señalar, «esta falla llegó a casa para descansar en unos pocos años».

El trío finalmente preparó un artículo en junio de 1962 que argumentaba que era necesario un nuevo lenguaje, «y también nos salimos con la nuestra», concluyó Hartley.

Este nuevo lenguaje de programación se denominó CPL (Lenguaje de programación de Cambridge), y el trabajo estaba en marcha en 1963. John Buxton y Eric Nixon, de la Universidad de Londres, se habían unido a los programadores de Cambridge, y CPL había sido revisado para representar Programación combinada. Idioma. A medida que el proyecto crecía, Wilkes decidió contratar a Christopher Strachey para que lo supervisara, y CPL pronto pasó a significar «Lenguaje de programación de Christopher» para aquellos asociados con él, según Campbell-Kelly.

El grupo de investigadores que trabajaban en el lenguaje se reunía en Cambridge o en Londres, a veces en la Universidad de Londres, pero en otras ocasiones en el estudio del artista en la casa adosada de Kensington que Strachey compartía con su hermana. La habitación en la parte trasera de la casa estaba amueblada con sillas victorianas y cojines en el suelo, mientras que las paredes estaban decoradas con retratos de varios miembros del Grupo Bloomsbury pintados por uno de los familiares de Strachey. Aquí era donde Strachey «presentaba la corte», ocasionalmente en bata, y como David Barron recordó algunos años más tarde, «discutíamos los derechos del mundo antes de dispersarnos a nuestros diversos hogares por la noche».

Para entonces, David Wheeler había pasado a otros proyectos, dejando atrás un equipo de cinco personas: Hartley, Barron, Buxton, Nixon y Strachey.

Hartley disfrutó trabajando en CPL; “Este fue en realidad un trabajo bastante divertido”, recordó. Las reuniones eran asuntos más bien informales. “Nos calentábamos mucho por las cosas y eventualmente empezábamos a lanzar dardos de papel [airplanes] el uno al otro.”

El grupo comenzó con las especificaciones de ALGOL 60, con el objetivo de escribir un lenguaje «perfecto»: uno que fuera práctico para una variedad de usuarios pero también estéticamente satisfactorio y eficiente.

Casi de inmediato, tuvieron algunas dificultades para priorizar, como señaló David Barron sobre Strachey: “Era característico de él insistir en los puntos menores de diferencia con la misma fuerza con la que insistió en los puntos principales”. Una objeción menor fue la objeción de Strachey a la gramática de las declaraciones «SI… ENTONCES… DE LO CONTRARIO». «No puedo permitir que mi nombre se asocie con una recomendación definitiva para usar un inglés ignorantemente incorrecto», fue su opinión, como Hartley escribió más tarde para Annals of the History of Computing.. Strachey prefería «OR», que entraba en conflicto con la forma en que se usaba «OR» en casi todos los demás lenguajes de programación existentes. No obstante, sus preferencias prevalecieron, y el manual de referencia de CPL incluyó «O» en el lugar donde los usuarios habrían esperado «ELSE».

The CPL Manual, 
 
<figcaption class=
El Manual CPL, disponible en línea, por supuesto.

También se invirtió un tiempo valioso en desarrollar una forma de evitar el uso del asterisco para indicar la multiplicación. Aquí, las preocupaciones estéticas llevaron a complicaciones que retrasaron la implementación de un lenguaje de programación utilizable, ya que se tuvieron que desarrollar reglas complicadas para distinguir entre «3a» que significa «3 * a» y «3a» como el nombre de una variable.

Mientras tanto, los usuarios de Cambridge estaban cada vez más frustrados por la falta de un lenguaje de programación utilizable para la nueva computadora Atlas de la universidad. Las especificaciones del lenguaje estaban en gran parte terminadas, pero no había un compilador disponible. El grupo de trabajo había hecho que CPL fuera tan complicado que los primeros intentos de escribir un compilador dieron como resultado un código de máquina que era increíblemente ineficiente.

Artículo Recomendado:  Los críticos se enfurecen después de que Github elimina el código de explotación de las vulnerabilidades de Exchange

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba