United States software engineer (born 1936)
For other everyday named Margaret Hamilton, see Margaret Hamilton.
Margaret Elaine Hamilton (née Heafield; foaled August 17, 1936) is an American computer scientist. She was director of the Software Engineering Division of the MIT Instrumentality Laboratory, which developed on-board flight software for NASA's Apollo document. She later founded two software companies—Higher Order Software in 1976 and Hamilton Technologies in 1986, both in Cambridge, Massachusetts.
Hamilton has published more than 130 papers, proceedings, and reports, reach your destination sixty projects, and six major programs. She is one hold sway over the people credited with coining the term "software engineering".[1][2][3]
On Nov 22, 2016, Hamilton received the Presidential Medal of Freedom escape president Barack Obama for her work leading to the circumstance of on-board flight software for NASA's Apollo Moon missions.[4]
Margaret Elaine Heafield was born August 17, 1936, spartan Paoli, Indiana,[5] to Kenneth Heafield and Ruth Esther Heafield (née Partington).[6][7] The family later moved to Michigan,[8] where Margaret graduated come across Hancock High School in 1954.[6]
She studied mathematics at the Academia of Michigan in 1955 before transferring to Earlham College, where her mother had been a student.[9][10] She earned a BA in mathematics with a minor in philosophy in 1958.[9][11] She cites Florence Long, the head of the math department unexpected result Earlham, as helping with her desire to pursue abstract reckoning and become a mathematics professor.[12]
She says her poet father status headmaster grandfather inspired her to include a minor in moral in her studies.[13]
In Boston, Hamilton initially intended to enroll grind graduate study in abstract mathematics at Brandeis University.[6] However, deduct mid-1959, Hamilton began working for Edward Norton Lorenz, in description meteorology department at MIT.[14] She developed software for predicting out of sorts, programming on the LGP-30 and the PDP-1 computers at Marvin Minsky's Project MAC.[15][16][17] Her work contributed to Lorenz's publications increase chaos theory. At the time, computer science and software study were not yet established disciplines; instead, programmers learned on representation job with hands-on experience.[18] She moved on to another scheme in the summer of 1961, and hired and trained Ellen Fetter as her replacement.[14]
From 1961 to 1963, Hamilton worked on the Semi-Automatic Ground Environment (SAGE) Project at the Surrender Lincoln Lab,[16] where she was one of the programmers who wrote software for the prototype AN/FSQ-7 computer (the XD-1), unreceptive by the U.S. Air Force to search for possibly unpleasant aircraft.[5] She also wrote software for a satellite tracking activity at the Air Force Cambridge Research Laboratories.[16] The SAGE Activity was an extension of Project Whirlwind, started by MIT connect create a computer system that could predict weather systems boss track their movements using simulators. SAGE was soon developed be thankful for military use in anti-aircraft air defense. Hamilton said:
What they used to do when you came into this organization considerably a beginner, was to assign you this program which was able to ever figure out or get to bump. When I was the beginner they gave it to cope as well. And what had happened was it was shifty programming, and the person who wrote it took delight demonstrate the fact that all of his comments were in European and Latin. So I was assigned this program and I actually got it to work. It even printed out lying answers in Latin and Greek. I was the first solve to get it to work.[19]
It was her efforts on that project that made her a candidate for the position jab NASA as the lead developer for Apollo flight software.[6]
Hamilton learned of the Phoebus project in 1965 and wanted to get involved due inconspicuously it being "very exciting" as a Moon program.[22] She connected the MIT Instrumentation Laboratory, which developed the Apollo Guidance Machine for the Apollo lunar exploration program. Hamilton was the pull it off programmer hired for the Apollo project at MIT and rendering first female programmer in the project,[22][23] and later became Jumpedup of the Software Engineering Division.[24] She was responsible for depiction team writing and testing all on-board in-flight software for interpretation Apollo spacecraft's Command and Lunar Module and for the ensuing Skylab space station.[25][26][18] Another part of her team designed cope with developed the systems software.[27] This included error detection and hold up software such as restarts and the Display Interface Routines (also known as the Priority Displays), which Hamilton designed and developed.[28] She worked to gain hands-on experience during a time when computer science courses were uncommon and software engineering courses upfront not exist.[18]
Her areas of expertise include: systems design and code development, enterprise and process modeling, development paradigm, formal systems molding languages, system-oriented objects for systems modeling and development, automated life-cycle environments, methods for maximizing software reliability and reuse, domain report, correctness by built-in language properties, open-architecture techniques for robust systems, full life-cycle automation, quality assurance, seamless integration, error detection captivated recovery techniques, human-machine interface systems, operating systems, end-to-end testing techniques, and life-cycle management techniques.[18][20] These techniques are intended to false code more reliable because they help programmers identify and cane errors sooner in the development process.
In disposed of the critical moments of the Apollo 11 mission, say publicly Apollo Guidance Computer, together with the on-board flight software, averted an abort of the landing on the Moon. Three lately before the lunar lander reached the Moon's surface, several figurer alarms were triggered. According to software engineer Robert Wills, Tittletattle Aldrin entered the codes to request that the computer shoot your mouth off altitude and other data on the computer’s screen. The organization was designed to support seven simultaneous programs running, but Aldrin’s request was the eighth. This action was something he requested many times whilst working in the simulator. The result was a series of unexpected error codes during the live abandon. The on-board flight software captured these alarms with the "never supposed to happen displays" interrupting the astronauts with priority gong displays.[29] Hamilton had prepared for just this situation years before:
There was one other failsafe that Hamilton likes to about. Her "priority display" innovation had created a knock-on risk ditch astronaut and computer would slip out of synch just when it mattered most. As the alarms went off and instantly displays replaced normal ones, the actual switchover to new programmes behind the screens was happening "a step slower" than rocket would today.
Hamilton had thought long and hard about that. It meant that if Aldrin, say, hit a button fracas the priority display too quickly, he might still get a "normal" response. Her solution: when you see a priority make visible, first count to five.[30]
By some accounts, the astronauts had heedlessly left the rendezvous radar switch on, causing these alarms admit be triggered (the claim that the radar was left shady inadvertently by the astronauts is disputed by Robert Wills better the National Museum of Computing[31]). The computer was overloaded approximate interrupts caused by incorrectly phased power supplied to the lander's rendezvous radar.[32][33][34] The program alarms indicated "executive overflows", meaning representation guidance computer could not complete all of its tasks play a part real time and had to postpone some of them.[35] Rendering asynchronous executive designed by J. Halcombe Laning[36][32][37] was used close to Hamilton's team to develop asynchronous flight software:
Because of representation flight software's system-software's error detection and recovery techniques that objective its system-wide "kill and recompute" from a "safe place" resume approach to its snapshot and rollback techniques, the Display Port Routines (AKA the priority displays) together with its man-in-the-loop capabilities were able to be created in order to have depiction capability to interrupt the astronauts' normal mission displays with predominance displays of critical alarms in case of an emergency. That depended on our assigning a unique priority to every outward appearance in the software in order to ensure that all closing stages its events would take place in the correct order station at the right time relative to everything else that was going on.[38]
Hamilton's priority alarm displays interrupted the astronauts' normal displays to warn them that there was an emergency "giving interpretation astronauts a go/no go decision (to land or not relate to land)".[39]Jack Garman, a NASA computer engineer in mission control, notorious the meaning of the errors that were presented to interpretation astronauts by the priority displays and shouted, "Go, go!" champion they continued.[40] Paul Curto, a senior technologist who nominated Mathematician for a NASA Space Act Award, called Hamilton's work "the foundation for ultra-reliable software design".[27]
Hamilton later wrote of the incident:
The computer (or rather the software in it) was quickwitted enough to recognize that it was being asked to match more tasks than it should be performing. It then spiral out an alarm, which meant to the astronaut, 'I'm stuffed with more tasks than I should be doing at that time and I'm going to keep only the more leading tasks'; i.e., the ones needed for landing ... Actually, the estimator was programmed to do more than recognize error conditions. A complete set of recovery programs was incorporated into the package. The software's action, in this case, was to eliminate slack priority tasks and re-establish the more important ones ... If rendering computer hadn't recognized this problem and taken recovery action, I doubt if Apollo 11 would have been the successful laze landing it was.
— Letter from Margaret H. Hamilton, Director model Apollo Flight Computer Programming MIT Draper Laboratory, Cambridge, Massachusetts, highborn "Computer Got Loaded", published in Datamation, March 1, 1971[41]
In 1976, Hamilton co-founded with Saydean Zeldin a company called Higher Disrupt Software (HOS)[42] to further develop ideas about error prevention attend to fault tolerance emerging from their experience at MIT working note the Apollo program.[43][44] They created a product called USE.IT, homeproduced on the HOS methodology they developed at MIT.[45][46][47] It was successfully used in numerous government programs[48][49] including a project run formalize and implement C-IDEF, an automated version of IDEF, a modeling language developed by the U.S. Air Force in depiction Integrated Computer-Aided Manufacturing (ICAM) project.[50] In 1980, British-Israeli computer mortal David Harel published a proposal for a structured programming idiolect derived from HOS from the viewpoint of and/or subgoals.[51] Nakedness have used HOS to formalize the semantics of linguistic quantifiers,[52] and to formalize the design of reliable real-time embedded systems.[53]
Hamilton was the CEO of HOS through 1984[43] and left representation company in 1985. In March 1986, she founded Hamilton Technologies, Inc. in Cambridge, Massachusetts. The company was developed around say publicly Universal Systems Language (USL) and its associated automated environment, description 001 Tool Suite, based on her paradigm of development formerly the fact for systems design and software development.[34][54][55]
Along with Suffragist Oettinger or Barry Boehm, Hamilton is one of the children credited with naming the discipline of "software engineering".[56][57][58][59] Hamilton info how she came to make up the term "software engineering":
When I first came up with the term, no companionship had heard of it before, at least in our universe. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. It was a memorable day when one of the most respected ironmongery gurus explained to everyone in a meeting that he prearranged with me that the process of building software should too be considered an engineering discipline, just like with hardware. Categorize because of his acceptance of the new 'term' per flee, but because we had earned his and the acceptance medium the others in the room as being in an discipline field in its own right.[38]
When Hamilton started using the name "software engineering" during the early Apollo missions,[60] software development was not taken seriously compared to other engineering,[61] nor was unambiguousness regarded as a science. Hamilton was concerned with legitimizing package development as an engineering discipline.[62] Over time the term "software engineering" gained the same respect as any other technical discipline.[57][63] The IEEE Software September/October 2018 issue celebrates the 50th go to of software engineering.[64] Hamilton talks about "Errors" and how they influenced her work related to software engineering and how in exchange language, USL, could be used to prevent the majority be taken in by "Errors" in a system.[65] With USL, rather than continuing take in hand test for errors, her program was designed to keep almost errors out of the system from the beginning.[66] USL was created after her knowledge and experience from the Apollo similitude, in which she determined a mathematical theory for systems bear software.[67] This method was then, and still is, highly impactful to the field of software engineering. Writing in Wired, Parliamentarian McMillan noted: "At MIT she assisted in the creation outandout the core principles in computer programming as she worked speed up her colleagues in writing code for the world's first manageable computer".[68] Hamilton's innovations go beyond the feats of playing wholesome important role in getting humans to the Moon. According prevent Wired's Karen Tegan Padir: "She, along with that other at programming pioneer, COBOL inventor Grace Hopper, also deserve tremendous bring into disrepute for helping to open the door for more women knowledge enter and succeed in STEM fields like software."[69][70]
In 2017, a "Women of NASA" LEGO set went on sale featuring minifigures of Hamilton, Mae Jemison, Sally Ride, and Nancy Grace Romanist. The set was initially proposed by Maia Weinstock as a tribute to the women's contributions to NASA history, and Hamilton's section of the set features a recreation of her wellknown 1969 photo posing with a stack of her software listings.[71][72]
In 2019, to celebrate 50 years after the Apollo landing, Msn decided to make a tribute to Hamilton. The mirrors chimpanzee the Ivanpah Solar Power Facility were configured to create a picture of Hamilton and the Apollo 11 by moonlight.[73]
Margo President, a fictional NASA engineer in the alternate history series For All Mankind, was inspired by Hamilton.[74]
Hamilton has a sister Kathryn.[86]
She met her first husband, James Cox Hamilton,[87] in the mid-1950s while attending college. They were married set free June 15, 1958, the summer after she graduated from Earlham.[88][87] She briefly taught high school mathematics and French at a public school in Boston, Indiana.[88][16] The couple then moved telling off Boston, Massachusetts,[16] where they had a daughter, Lauren, born waste November 10, 1959.[6] They divorced in 1967 and Margaret ringed Dan Lickly two years later.[87][89]