The Story of Mel

Last updated

The Story of Mel is an archetypical piece of computer programming folklore. Its subject, Melvin Kaye, [1] is an exemplary "Real Programmer" whose subtle techniques fascinate his colleagues.

Contents

Story

Ed Nather's The Story of Mel details the extraordinary programming prowess of a former colleague of his, "Mel", at Royal McBee Computer Corporation. [2] [3] Although originally written in prose, Nather's story was modified by someone into a "free verse" form which has become widespread. [4] [5]

Little is known about Mel Kaye, beyond the fact that he was credited with doing the "bulk of the programming" on the 1959 ACT-1 compiler for the Royal McBee LGP-30 computer. [6] [7] In Nather's story, Kaye is portrayed as being prone to avoiding optimizing assemblers in favor of crafting code to take advantage of hardware quirks, for example taking advantage of the rotation of the LGP-30's drum memory to avoid writing delay loops into the code.

The story, as written by Nather, involved Kaye's work on rewriting a blackjack program from the LGP-30 to a newer Royal McBee system, the RPC-4000; company sales executives had requested to modify the program so that they could flip a front panel switch and cause the program to lose (and the user to win). Kaye reluctantly acceded to the request, but to his own delight, he got the test wrong, and the switch would instead cause the program to win every time (and the user to lose).

Subsequent to Kaye's departure, Nather was asked to fix the bug. While examining the code, he was puzzled to discover that it contained what appeared to be an infinite loop, yet control did not remain inside the loop. Eventually he realized that Kaye was using self-modifying code to process elements of an array, and had coded the loop in such a way as to take advantage of an Integer overflow. Adding 1 to the address field of an instruction that referred to address x normally just changed the address to x+1. But when x was already the highest possible address, not only did the address wrap around to 0, but a 1 was carried into the bits from which the opcode would be readin this case changing the opcode to "jump to" so that the full instruction became "jump to address 0". This impressed Nather so much that, out of respect, he gave up the task and reported that he could not find the bug.

The early computers of IAS machine design had no index register. Using self-modifying code was necessary for array operations. The LGP-30 instruction  y 2000  did "replace the contents of the address portion of the word in memory location 2000 with the contents of the address portion of the word in the accumulator" to ease writing self-modifying code. [8]

History

The essay was originally published in the Usenet news group "net.followup" on May 21, 1983, by utastro!nather (the UUCP email address of Ed Nather at the time). [2] [3]

The Royal McBee computers were developed and manufactured by Librascope, and the documentation written for the blackjack program was written by Mel Kaye of Librascope Inc. The August 1956 edition of The Librazette, the Librascope newsletter, contains a story about training on the LGP-30, and mentions that some Librascope application engineers were transferred to the Royal McBee payroll. Among the engineers named is Mel Kaye. [1]

There is a photograph on the front page of that issue showing that first class of neophyte LGP-30 programmers and the instructors, including Mel Kaye. [9]

See also

Related Research Articles

<span class="mw-page-title-main">Assembly language</span> Low-level programming language

In computer programming, assembly language, often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence between the instructions in the language and the architecture's machine code instructions. Assembly language usually has one statement per machine instruction (1:1), but constants, comments, assembler directives, symbolic labels of, e.g., memory locations, registers, and macros are generally also supported.

<span class="mw-page-title-main">IBM 1620</span> Small IBM scientific computer released in 1959

The IBM 1620 was announced by IBM on October 21, 1959, and marketed as an inexpensive scientific computer. After a total production of about two thousand machines, it was withdrawn on November 19, 1970. Modified versions of the 1620 were used as the CPU of the IBM 1710 and IBM 1720 Industrial Process Control Systems.

<span class="mw-page-title-main">Drum memory</span> Magnetic data storage device

Drum memory was a magnetic data storage device invented by Gustav Tauschek in 1932 in Austria. Drums were widely used in the 1950s and into the 1960s as computer memory.

<span class="mw-page-title-main">Henry Spencer</span> Canadian computer programmer

Henry Spencer is a Canadian computer programmer and space enthusiast. He wrote "regex", a widely used software library for regular expressions, and co-wrote C News, a Usenet server program. He also wrote The Ten Commandments for C Programmers. He is coauthor, with David Lawrence, of the book Managing Usenet. While working at the University of Toronto he ran the first active Usenet site outside the U.S., starting in 1981. His records from that period were eventually acquired by Google to provide an archive of Usenet in the 1980s.

Richard L. "Rick" Adams, Jr. is an American Internet pioneer and the founder of UUNET, which, in the mid and late 1990s, was the world's largest Internet Service Provider (ISP).

<span class="mw-page-title-main">Mary Ann Horton</span> American computer scientist and Usenet pioneer (born 1955)

Mary Ann Horton, is a Usenet and Internet pioneer. Horton contributed to Berkeley UNIX (BSD), including the vi editor and terminfo database, created the first email binary attachment tool uuencode, and led the growth of Usenet in the 1980s.

<span class="mw-page-title-main">LGP-30</span> Librascope General Purpose computer (1956)

The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, is an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California, and sold and serviced by the Royal Precision Electronic Computer Company, a joint venture with the Royal McBee division of the Royal Typewriter Company. The LGP-30 was first manufactured in 1956, at a retail price of $47,000, equivalent to $510,000 in 2022.

The Royal Typewriter Company is a manufacturer of typewriters founded in January 1904. It was headquartered in New York City with its factory in Hartford, Connecticut.

"Real Programmers Don't Use Pascal" is an essay about computer programming written by Ed Post of Tektronix, Inc., and published in July 1983 as a letter to the editor in Datamation.

In computer architecture, 31-bit integers, memory addresses, or other data units are those that are 31 bits wide.

In the history of computing, optimum programming, or optimum coding is the practice of arranging a computer program's instructions in memory so as to minimize the time the machine spends waiting for instructions. It is of historical interest mainly due to the design of many early digital computers.

The term "Research Unix" refers to early versions of the Unix operating system for DEC PDP-7, PDP-11, VAX and Interdata 7/32 and 8/32 computers, developed in the Bell Labs Computing Sciences Research Center (CSRC).

<span class="mw-page-title-main">Librascope</span> American technology company

Librascope was a Glendale, California, division of General Precision, Inc. (GPI). It was founded in 1937 by Lewis W. Imm to build and operate theater equipment, and acquired by General Precision in 1941. During World War II it worked on improving aircraft load balancing.

Computer hardware or software is said to be bug compatible if it exactly replicates even an undesirable feature of a previous version. The phrase is found in the Jargon File.

The Little Man Computer (LMC) is an instructional model of a computer, created by Dr. Stuart Madnick in 1965. The LMC is generally used to teach students, because it models a simple von Neumann architecture computer—which has all of the basic features of a modern computer. It can be programmed in machine code or assembly code.

<span class="mw-page-title-main">Ed Nather</span> American astronomer

Roy Edward Nather was an American astronomer, who at the time of his death, was professor emeritus in Astronomy at University of Texas at Austin. He pioneered the fields of asteroseismology of white dwarfs, and observational studies of interacting binary collapsed stars.

<span class="mw-page-title-main">Usenet</span> Worldwide computer-based distributed discussion system

Usenet, USENET, or "in full", User's Network, is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it was established in 1980. Users read and post messages to one or more topic categories, known as newsgroups. Usenet resembles a bulletin board system (BBS) in many respects and is the precursor to the Internet forums that have become widely used. Discussions are threaded, as with web forums and BBSes, though posts are stored on the server sequentially.

Control-Alt-Delete is a computer keyboard command on IBM PC compatible computers, invoked by pressing the Delete key while holding the Control and Alt keys: Ctrl+Alt+Delete. The function of the key combination differs depending on the context but it generally interrupts or facilitates interrupting a function. For instance, in pre-boot environment or in MS-DOS, Windows 3.0 and earlier versions of Windows or OS/2, the key combination reboots the computer. Starting with Windows 95, the key combination invokes a task manager or security related component that facilitates ending a Windows session or killing a frozen application.

Stanford Extended ASCII (SEASCII) is a derivation of the 7-bit ASCII character set developed at the Stanford Artificial Intelligence Laboratory (SAIL/SU-AI) in the early 1970s. Not all symbols match ASCII.

The Darmstadt Electronic Computing Machine (DERA), (German:Darmstädter Elektronischer Rechenautomat) was an experimental, room-sized electronic computer calculator with vacuum tube built in 1951. It was built at the Technische Universität Darmstadt under the direction of Alwin Walther. The first operation was in 1957, with development completed in 1959.

References

  1. 1 2 "Librascope Memories" (PDF). The Librazette. Librascope Inc.
  2. 1 2 Raymond, Eric S., ed. (1992-07-01). "The Jargon File, Version 2.9.10, 01 Jul 1992 (jargon2910.ascii.gz)" (GZ). line 20505. Archived from the original on 2017-03-09. Retrieved 2014-07-01.
  3. 1 2 Matt Crawford (November 20, 1984). "The realest programmer of all". Newsgroup:  net.jokes. Usenet:   531@oddjob.UChicago.UUCP . Retrieved December 22, 2019.
  4. The Story of Mel free verse version
  5. "The Story of Mel, A Real Programmer, Annotated". www.cs.utah.edu.
  6. Bill von Hagen (1 Jun 1994). "New Light on the Legend of Mel". Newsgroup:  alt.folklore.computers. Usenet:   IhyHSrOSMUE3MKUXwi@transarc.com . Retrieved December 22, 2019.
  7. "In particular, Mel Kaye of Royal McBee...", FOLDOC, imperial.ac.uk
  8. Royal McBee Corporation (April 1957). ROYAL PRECISION Electronic Computer LGP - 30 PROGRAMMING MANUAL. Port Chester, New York: Royal McBee Corporation. Retrieved 2020-03-17.
  9. "Mel Kaye in the first LGP-30 training class". the Librazette. Librascope Inc.

Further reading