Grace Hopper


Contribution

Whilst working for the Navy, Hopper experienced first-hand the complexities and frustrations that have always been the hallmark of the programming field, thanks to Mark I, the first digital computer to be programmed sequentially. The exacting code of machine language could be easily misread or incorrectly written. To reduce the number of programming errors, Hopper and her colleagues collected programs that were free of error and generated a catalogue of subroutines that could be used to develop new programmes. By this time, the Mark II had been built. Aiken's team used the two computers side by side, effectively achieving an early instance of multiprocessing.

Hopper continued her work on the Mark computer series throughout her career. However, the problem of computer errors continued to plague the Mark team. One day, noticing that the computer had failed, Hopper and her colleagues discovered a moth in a faulty relay. The insect was removed and fixed to the page of a logbook as the "first actual bug found." The words "bug" and "debugging,” now familiar terms in computer vocabulary, are attributed to Hopper because even if she didn't invent the term, she helped popularising it.

Thanks to Hopper’s collegues, Presper Eckert and John Mauchly, by 1949 the company had developed the Binary Automatic Computer, or BINAC, and was in the process of introducing the first Universal Automatic Computer, or UNIVAC. The Eckert-Mauchly UNIVAC, which recorded information on high-speed magnetic tape rather than on punched cards, was an immediate success. The company was later bought by Sperry Corporation. Hopper stayed with the organization and in 1952 became the systems engineer and director of automatic programming for the UNIVAC Division of Sperry. Same year her team invented first ever compiler - computer program that translates a program written in a high-level language (programmers language) into machine language, usually machine la for computer languages, called "A-O ".

One of the challenges Hopper had to meet in her work on the compiler was how to achieve "forward jumps" in a program that had yet to be written. In Grace Hopper, Navy Admiral and Computer Pioneer, Charlene Billings explains that Hopper used a strategy from her schooldays—the forward pass in basketball. Forbidden under the rules for women's basketball to dribble more than once, one teammate would routinely pass the basketball down the court to another, then run down the court herself and be in a position to receive the ball and make the basket. Hopper defined what she called a "neutral corner" as a little segment at the end of the computer memory which allowed her a safe space in which to "jump forward" from a given routine, and flag the operation with a message. As each routine was run, it scouted for messages and jumped back and forth, essentially running in a single pass.