stringtranslate.com

La historia de Mel

La historia de Mel es un ejemplo arquetípico del folclore de la programación informática . Su protagonista, Melvin Kaye , [1] es un " programador real " ejemplar cuyas sutiles técnicas fascinan a sus colegas.

Historia

La historia de Mel, de Ed Nather, detalla la extraordinaria destreza en programación de un ex colega suyo, "Mel", en Royal McBee Computer Corporation . [2] [3] Aunque originalmente fue escrita en prosa, la historia de Nather fue modificada por alguien en una forma de "verso libre" que se ha generalizado. [4] [5]

Se sabe poco sobre Mel Kaye, más allá del hecho de que se le atribuye la "mayor parte de la programación" del compilador ACT-1 de 1959 para la computadora Royal McBee LGP-30 . [6] [7] En la historia de Nather, Kaye es retratado como propenso a evitar optimizar ensambladores a favor de crear código para aprovechar las peculiaridades del hardware, por ejemplo, aprovechar la rotación de la memoria de batería del LGP-30 para evitar escribir bucles de retardo en el código.

La historia, tal como la escribió Nather, trataba sobre el trabajo de Kaye en la reescritura de un programa de blackjack del LGP-30 a un sistema más nuevo de Royal McBee, el RPC-4000 ; los ejecutivos de ventas de la compañía habían solicitado modificar el programa para que pudieran accionar un interruptor del panel frontal y hacer que el programa perdiera (y que el usuario ganara). Kaye accedió a la solicitud a regañadientes, pero para su propio deleite, se equivocó en la prueba y, en cambio, el interruptor haría que el programa ganara todas las veces (y que el usuario perdiera).

Después de la partida de Kaye, se le pidió a Nather que corrigiera el error. Mientras examinaba el código, se sorprendió al descubrir que contenía lo que parecía ser un bucle infinito , pero el control no permanecía dentro del bucle. Finalmente, se dio cuenta de que Kaye estaba usando código automodificable para procesar elementos de una matriz y había codificado el bucle de tal manera que se aprovechara de un desbordamiento de enteros . Agregar 1 al campo de dirección de una instrucción que hacía referencia a la dirección x normalmente solo cambiaba la dirección a x +1. Pero cuando x ya era la dirección más alta posible, no solo la dirección volvía a 0, sino que se llevaba un 1 a los bits desde los que se leería el código de operación ; en este caso, se cambiaba el código de operación a "saltar a" para que la instrucción completa se convirtiera en "saltar a la dirección 0". Esto impresionó tanto a Nather que, por respeto, abandonó la tarea e informó que no podía encontrar el error.

Nather contó esta historia de memoria, más de 20 años después. Se sabe que algunos detalles técnicos son incorrectos, incluida la ubicación de un bit indicador de "índice" en la palabra de instrucción; el uso que Kaye hizo de él presumiblemente le dio a Nather la pista vital de que se estaba utilizando un truco de codificación. Sin embargo, existen trucos plausibles que Kaye podría haber implementado en el RPC-4000 real y que coinciden en gran medida con el relato de Nather. [8]

Las primeras computadoras con diseño de máquina IAS no tenían registro de índice. El uso de código automodificable era necesario para las operaciones con matrices. La instrucción LGP-30   y 2000  "reemplazaba el contenido de la parte de la dirección de la palabra en la posición de memoria 2000 con el contenido de la parte de la dirección de la palabra en el acumulador" para facilitar la escritura de código automodificable. [9]

Historia

El ensayo fue publicado originalmente en el grupo de noticias de Usenet "net.followup" el 21 de mayo de 1983 por utastro!nather (la dirección de correo electrónico UUCP de Ed Nather en ese momento). [2] [3]

Las computadoras Royal McBee fueron desarrolladas y fabricadas por Librascope , y la documentación escrita para el programa de blackjack fue escrita por Mel Kaye de Librascope Inc. La edición de agosto de 1956 de The Librazette , el boletín de Librascope, contiene una historia sobre el entrenamiento en el LGP-30 y menciona que algunos ingenieros de aplicaciones de Librascope fueron transferidos a la nómina de Royal McBee. Entre los ingenieros nombrados se encuentra Mel Kaye. [1]

Hay una fotografía en la portada de ese número que muestra esa primera clase de programadores neófitos del LGP-30 y los instructores, incluido Mel Kaye. [10]

Véase también

Referencias

  1. ^ ab "Recuerdos de Librascope" (PDF) . La Librazette . Librascope Inc.
  2. ^ ab Raymond, Eric S. , ed. (1992-07-01). «The Jargon File, Version 2.9.10, 01 Jul 1992 (jargon2910.ascii.gz)» ( GZ ) . línea 20505. Archivado desde el original el 2017-03-09 . Consultado el 2014-07-01 .
  3. ^ por Matt Crawford (20 de noviembre de 1984). "El programador más real de todos". Grupo de noticias : net.jokes. Usenet:  [email protected] . Consultado el 22 de diciembre de 2019 .
  4. ^ La historia de Mel versión en verso libre
  5. ^ "La historia de Mel, un verdadero programador, anotada". www.cs.utah.edu .
  6. ^ Bill von Hagen (1 de junio de 1994). "Nueva luz sobre la leyenda de Mel". Grupo de noticias : alt.folklore.computers. Usenet:  [email protected] . Consultado el 22 de diciembre de 2019 .
  7. ^ "En particular, Mel Kaye de Royal McBee...", FOLDOC, imperial.ac.uk
  8. ^ "Disección de la historia de Mel". www.e-basteln.de . Consultado el 11 de septiembre de 2024 .
  9. ^ Royal McBee Corporation (abril de 1957). ROYAL PRECISION Electronic Computer LGP-30 PROGRAMMING MANUAL. Port Chester, Nueva York: Royal McBee Corporation . Consultado el 17 de marzo de 2020 .
  10. ^ "Mel Kaye en la primera clase de entrenamiento LGP-30". Librazette . Librascope Inc.

Lectura adicional