Misplaced Pages

ENIAC

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
#925074

117-480: ENIAC ( / ˈ ɛ n i æ k / ; Electronic Numerical Integrator and Computer ) was the first programmable , electronic , general-purpose digital computer , completed in 1945. Other computers had some of these features, but ENIAC was the first to have them all. It was Turing-complete and able to solve "a large class of numerical problems" through reprogramming. ENIAC was designed by John Mauchly and J. Presper Eckert to calculate artillery firing tables for

234-508: A "Giant Brain" by the press. It had a speed on the order of one thousand times faster than that of electro-mechanical machines. ENIAC was formally accepted by the U.S. Army Ordnance Corps in July 1946. It was transferred to Aberdeen Proving Ground in Aberdeen, Maryland in 1947, where it was in continuous operation until 1955. The 1948 Manchester Baby was the first machine to contain all

351-591: A bad relationship with her adviser. Later in her life, she earned a master's degree in English at the University of Pennsylvania in 1967 and was awarded an honorary doctorate degree from Northwest Missouri State University in 2002. In 1945, the United States Army was recruiting mathematicians from universities to aid in the war effort; despite a warning by her adviser that she would be "a cog in

468-560: A book on the six female ENIAC programmers in 2022. These early programmers were drawn from a group of about two hundred women employed as computers at the Moore School of Electrical Engineering at the University of Pennsylvania. The job of computers was to produce the numeric result of mathematical formulas needed for a scientific study, or an engineering project. They usually did so with a mechanical calculator. The women studied

585-402: A compiler can make it crash when parsing some large source file, a simplification of the test case that results in only few lines from the original source file can be sufficient to reproduce the same crash. Trial-and-error/divide-and-conquer is needed: the programmer will try to remove some parts of the original test case and check if the problem still exists. When debugging the problem in a GUI,

702-467: A factor of five. In July 1953, a 100-word expansion core memory was added to the system, using binary-coded decimal , excess-3 number representation. To support this expansion memory, ENIAC was equipped with a new Function Table selector, a memory address selector, pulse-shaping circuits, and three new orders were added to the programming mechanism. Mechanical computing machines have been around since Archimedes ' time (see: Antikythera mechanism ), but

819-475: A failure was 116 hours—close to five days. ENIAC could be programmed to perform complex sequences of operations, including loops, branches, and subroutines. However, instead of the stored-program computers that exist today, ENIAC was just a large collection of arithmetic machines, which originally had programs set up into the machine by a combination of plugboard wiring and three portable function tables (containing 1,200 ten-way switches each). The task of taking

936-540: A few simple readability transformations made code shorter and drastically reduced the time to understand it. Following a consistent programming style often helps readability. However, readability is more than just programming style. Many factors, having little or nothing to do with the ability of the computer to efficiently compile and execute the code, contribute to readability. Some of these factors include: The presentation aspects of this (such as indents, line breaks, color highlighting, and so on) are often handled by

1053-451: A mechanical adding machine . ENIAC had 20 ten-digit signed accumulators , which used ten's complement representation and could perform 5,000 simple addition or subtraction operations between any of them and a source (e.g., another accumulator or a constant transmitter) per second. It was possible to connect several accumulators to run simultaneously, so the peak speed of operation was potentially much higher, due to parallel operation. It

1170-443: A number to a register, read a number from a register, or add/subtract two numbers. A multiplication of a 10-digit number by a d -digit number (for d up to 10) took d +4 cycles, so the multiplication of a 10-digit number by 10-digit number took 14 cycles, or 2,800 microseconds—a rate of 357 per second. If one of the numbers had fewer than 10 digits, the operation was faster. Division and square roots took 13( d +1) cycles, where d

1287-434: A problem and mapping it onto the machine was complex, and usually took weeks. Due to the complexity of mapping programs onto the machine, programs were only changed after huge numbers of tests of the current program. After the program was figured out on paper, the process of getting the program into ENIAC by manipulating its switches and cables could take days. This was followed by a period of verification and debugging, aided by

SECTION 10

#1732769501926

1404-470: A result, loses efficiency and the ability for low-level manipulation). Debugging is a very important task in the software development process since having defects in a program can have significant consequences for its users. Some languages are more prone to some kinds of faults because their specification does not require compilers to perform as much checking as other languages. Use of a static code analysis tool can help detect some possible problems. Normally

1521-556: A series of forty-eight lectures given in Philadelphia, Pennsylvania; all together called The Theory and Techniques for Design of Digital Computers —more often named the Moore School Lectures . Half of these lectures were given by the inventors of ENIAC. ENIAC was a one-of-a-kind design and was never repeated. The freeze on design in 1943 meant that it lacked some innovations that soon became well-developed, notably

1638-482: A special divider/square-rooter unit to perform up to 40 division operations per second or three square root operations per second. The other nine units in ENIAC were the initiating unit (started and stopped the machine), the cycling unit (used for synchronizing the other units), the master programmer (controlled loop sequencing), the reader (controlled an IBM punch-card reader), the printer (controlled an IBM card punch),

1755-421: A technician. During World War II , while the U.S. Army needed to compute ballistics trajectories, many women were interviewed for this task. At least 200 women were hired by the Moore School of Engineering to work as " computers " and six of them were chosen to be the programmers of ENIAC. Betty Holberton , Kay McNulty , Marlyn Wescoff , Ruth Lichterman , Betty Jean Jennings , and Fran Bilas , programmed

1872-424: A ten-digit decimal number in memory. Numbers were passed between these units across several general-purpose buses (or trays , as they were called). In order to achieve its high speed, the panels had to send and receive numbers, compute, save the answer and trigger the next operation, all without any moving parts. Key to its versatility was the ability to branch ; it could trigger different operations, depending on

1989-459: A visual environment. Different programming languages support different styles of programming (called programming paradigms ). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know

2106-654: A wheel" with the Army, and encouragement to become a mathematics teacher instead, Bartik decided to become a human computer . Bartik's calculus professor encouraged her to take the job at University of Pennsylvania because they had a differential analyzer. She applied to both IBM and the University of Pennsylvania at the age of 20. Although rejected by IBM, Jennings was hired by the University of Pennsylvania to work for Army Ordnance at Aberdeen Proving Ground , calculating ballistics trajectories by hand. While working there, Bartik met her future husband, William Bartik, who

2223-410: Is Entity-Relationship Modeling ( ER Modeling ). Implementation techniques include imperative languages ( object-oriented or procedural ), functional languages , and logic programming languages. It is very difficult to determine what are the most popular modern programming languages. Methods of measuring programming language popularity include: counting the number of job advertisements that mention

2340-607: Is directly executed by the central processing unit . Proficient programming usually requires expertise in several different subjects, including knowledge of the application domain , details of programming languages and generic code libraries , specialized algorithms, and formal logic . Auxiliary tasks accompanying and related to programming include analyzing requirements , testing , debugging (investigating and fixing problems), implementation of build systems , and management of derived artifacts , such as programs' machine code . While these are sometimes considered programming, often

2457-464: Is little more than a different notation for a machine language, two machines with different instruction sets also have different assembly languages. High-level languages made the process of developing a program simpler and more understandable, and less bound to the underlying hardware . The first compiler related tool, the A-0 System , was developed in 1952 by Grace Hopper , who also coined

SECTION 20

#1732769501926

2574-707: Is named in her honor. Born Betty Jean Jennings in Gentry County, Missouri in 1924, she was the sixth of seven children. Her father, William Smith Jennings (1893–1971) was from Alanthus Grove , where he was a schoolteacher as well as a farmer. Her mother, Lula May Spainhower (1887–1988) was from Alanthus . Jennings had three older brothers, William (January 10, 1915) Robert (March 15, 1918); and Raymond (January 23, 1922); two older sisters, Emma (August 11, 1916) and Lulu (August 22, 1919), and one younger sister, Mable (December 15, 1928). In her childhood, she would ride on horseback to visit her grandmother, who bought

2691-678: Is similar to learning a foreign language . Jean Bartik Jean Bartik ( née Betty Jean Jennings ; December 27, 1924 – March 23, 2011) was an American computer programmer who was one of the original six programmers of the ENIAC computer. Bartik studied mathematics in school then began work at the University of Pennsylvania , first manually calculating ballistics trajectories and then using ENIAC to do so. The other five ENIAC programmers were Betty Holberton , Ruth Teitelbaum , Kathleen Antonelli , Marlyn Meltzer , and Frances Spence . Bartik and her colleagues developed and codified many of

2808-542: Is still strong in corporate data centers often on large mainframe computers , Fortran in engineering applications, scripting languages in Web development, and C in embedded software . Many applications use a mix of several languages in their construction and use. New languages are generally designed around the syntax of a prior language with new functionality added, (for example C++ adds object-orientation to C, and Java adds memory management and bytecode to C++, but as

2925-497: Is the number of digits in the result (quotient or square root). So a division or square root took up to 143 cycles, or 28,600 microseconds—a rate of 35 per second. (Wilkes 1956:20 states that a division with a 10-digit quotient required 6 milliseconds.) If the result had fewer than ten digits, it was obtained faster. ENIAC was able to process about 500 FLOPS , compared to modern supercomputers' petascale and exascale computing power. ENIAC used common octal-base radio tubes of

3042-434: Is usually easier to code in "high-level" languages than in "low-level" ones. Programming languages are essential for software development. They are the building blocks for all software, from the simplest applications to the most sophisticated ones. Allen Downey , in his book How To Think Like A Computer Scientist , writes: Many computer languages provide a mechanism to call functions provided by shared libraries . Provided

3159-547: The Wall Street Journal on Bartik and Holberton in 1996. After getting her master's degree from the University of Pennsylvania in 1967 and making the decision to divorce her husband, Bartik joined the Auerbach Corporation writing and editing technical reports on minicomputers . Bartik remained with Auerbach for eight years, then moved among positions with a variety of other companies for

3276-530: The Atanasoff–Berry computer (ABC), prototyped in 1939 by John Atanasoff and Clifford Berry  – U.S. patent 3,120,606 for ENIAC, applied for in 1947 and granted in 1964, was voided by the 1973 decision of the landmark federal court case Honeywell, Inc. v. Sperry Rand Corp. . The decision included: that the ENIAC inventors had derived the subject matter of the electronic digital computer from Atanasoff; gave legal recognition to Atanasoff as

3393-621: The Eckert-Mauchly Corporation was sold to Remington Rand , Bartik went on to help train on how to program and use the UNIVAC for the first six UNIVACs sold, including the programmers at the United States Census Bureau (first UNIVAC sold) and Atomic Energy Commission. Later, Bartik moved to Philadelphia when her husband, William (Bill) Bartik, took a job with Remington Rand. Due to a company policy at

3510-504: The Jacquard loom could produce entirely different weaves by changing the "program" – a series of pasteboard cards with holes punched in them. Code-breaking algorithms have also existed for centuries. In the 9th century, the Arab mathematician Al-Kindi described a cryptographic algorithm for deciphering encrypted code, in A Manuscript on Deciphering Cryptographic Messages . He gave

3627-477: The Mark I , a well known electromechanical machine at Harvard, and also showed that the work that would take a "human computer" 40 hours to complete could be done in 20 seconds. Bartik described the first public demonstration of the ENIAC in 1946: The day ENIAC was introduced to the world was one of the most exciting days of my life. The demonstration was fabulous. ENIAC calculated the trajectory faster than it took

ENIAC - Misplaced Pages Continue

3744-551: The UNIVAC and the BINAC , alongside Jean Jennings. McNulty developed the use of subroutines in order to help increase ENIAC's computational capability. Herman Goldstine selected the programmers, whom he called operators, from the computers who had been calculating ballistics tables with mechanical desk calculators, and a differential analyzer prior to and during the development of ENIAC. Under Herman and Adele Goldstine 's direction,

3861-544: The United States Army 's Ballistic Research Laboratory (which later became a part of the Army Research Laboratory ). However, its first program was a study of the feasibility of the thermonuclear weapon . ENIAC was completed in 1945 and first put to work for practical purposes on December 10, 1945. ENIAC was formally dedicated at the University of Pennsylvania on February 15, 1946, having cost $ 487,000 (equivalent to $ 6,900,000 in 2023), and called

3978-597: The United States Army Ordnance Department to compute firing tables for artillery, which was done by graduate students under John Mauchly's supervision. Mauchly began to wonder if electronics could be applied to mathematics for faster calculations. He partnered up with research associate J. Presper Eckert , as Mauchly wasn't an electronics expert, to draft an electronic computer that could work at an excellent pace. In 1942, Mauchly proposed an all-electronic calculating machine that could help

4095-439: The source code editor , but the content aspects reflect the programmer's talent and skills. Various visual programming languages have also been developed with the intent to resolve readability concerns by adopting non-traditional approaches to code structure and display. Integrated development environments (IDEs) aim to integrate all such help. Techniques like Code refactoring can enhance readability. The academic field and

4212-766: The 1930s and 1940s are considered the beginning of the modern computer era. ENIAC was, like the IBM Harvard Mark I and the German Z3 , able to run an arbitrary sequence of mathematical operations, but did not read them from a tape. Like the British Colossus , it was programmed by plugboard and switches. ENIAC combined full, Turing-complete programmability with electronic speed. The Atanasoff–Berry Computer (ABC), ENIAC, and Colossus all used thermionic valves (vacuum tubes) . ENIAC's registers performed decimal arithmetic, rather than binary arithmetic like

4329-535: The 1940s with interviews with the female team members as they reflect on their time working together on the ENIAC. The Computers is the first part of a three-part documentary series, titled Great Unsung Women of Computing: The Computers, The Coders, and The Future Makers . Bartik wrote her autobiography Pioneer Programmer: Jean Jennings Bartik and the Computer that Changed the World prior to her death in 2011 with

4446-521: The 1990s Kleiman learned that most of the ENIAC programmers were not invited to the ENIAC’s 50th anniversary event. So she made it her mission to track them down and record their oral histories. The documentary, intended to inspire young women and men to get involved in programming. "They were shocked to be discovered," Kleiman says. "They were thrilled to be recognized, but had mixed impressions about how they felt about being ignored for so long." Kleiman released

4563-568: The 9th century, a programmable music sequencer was invented by the Persian Banu Musa brothers, who described an automated mechanical flute player in the Book of Ingenious Devices . In 1206, the Arab engineer Al-Jazari invented a programmable drum machine where a musical mechanical automaton could be made to play different rhythms and drum patterns, via pegs and cams . In 1801,

4680-526: The AE in 1837. In the 1880s, Herman Hollerith invented the concept of storing data in machine-readable form. Later a control panel (plug board) added to his 1906 Type I Tabulator allowed it to be programmed for different jobs, and by the late 1940s, unit record equipment such as the IBM 602 and IBM 604 , were programmed by control panels in a similar way, as were the first electronic computers . However, with

4797-653: The Army to fund the project, which put him in charge to oversee it for them. Assembly for the computer began in June 1944. ENIAC was designed by Ursinus College physics professor John Mauchly and J. Presper Eckert of the University of Pennsylvania, U.S. The team of design engineers assisting the development included Robert F. Shaw (function tables), Jeffrey Chuan Chu (divider/square-rooter), Thomas Kite Sharpless (master programmer), Frank Mural (master programmer), Arthur Burks (multiplier), Harry Huskey (reader/printer) and Jack Davis (accumulators). Significant development work

ENIAC - Misplaced Pages Continue

4914-495: The Colossus machines were dismantled in 1945; the remaining two were used to decrypt Soviet messages by GCHQ until the 1960s. The public demonstration for ENIAC was developed by Snyder and Jennings who created a demo that would calculate the trajectory of a missile in 15 seconds, a task that would have taken several weeks for a human computer . For a variety of reasons – including Mauchly's June 1941 examination of

5031-486: The ENIAC Programmers Project. In 1986, Kleiman first met and identified the women who worked with the ENIAC. Kleiman worked with PBS producer David Roland to record their oral histories and with documentary producers Jon Palfreman and Kate McMahon to produce the award-winning documentary The Computers (premiere 2014). The women's work was also popularized by columnist Tom Petzinger in articles for

5148-442: The ENIAC into a stored program computer by March 1948. As head of this process, Bartik was charged with the conversion that allowed the ENIAC to be turned into a rudimentary stored program computer to assist with Clippinger's wind tunnel programs, which allowed the ENIAC to operate more quickly, efficiently, and accurately. Letters between Bartik and Adele Goldstine were discovered by authors Thomas Haigh and Mark Priestley during

5265-446: The ENIAC to perform calculations for ballistics trajectories electronically for the Army's Ballistic Research Laboratory . While men having the same education and experience were designated as "professionals", these women were unreasonably designated as "subprofessionals", though they had professional degrees in mathematics, and were highly trained mathematicians. These women were not "refrigerator ladies", i.e., models posing in front of

5382-449: The ENIAC, BINAC and UNIVAC. Bartik especially went on to receive many honors and awards for her pioneering role programming the ENIAC, BINAC and UNIVAC, the latter of which helped to launch the commercial computer industry, and for turning the ENIAC into the world's first stored program computer. In 2010, a documentary Top Secret Rosies: The Female "Computers" of WWII was released. The film centered around in-depth interviews of three of

5499-489: The U.S. Army calculate complex ballistics tables. The U.S. Army Ordnance accepted their plan, giving the University of Pennsylvania a six-months research contract for $ 61,700. The construction contract was signed on June 5, 1943; work on the computer began in secret at the University of Pennsylvania 's Moore School of Electrical Engineering the following month, under the code name "Project PX", with John Grist Brainerd as principal investigator. Herman H. Goldstine persuaded

5616-403: The UNIVAC's logic circuits among other UNIVAC programming and design tasks. Bartik also co-programmed with her life-long friend Betty Holberton the first generative programming system ( SORT/MERGE ) for a computer. Recalling her time working with Eckert and Mauchly on these projects, she described their close group of computer engineers as a "technical Camelot". In the early 1950s, once

5733-615: The Z3, the ABC and Colossus. Like the Colossus, ENIAC required rewiring to reprogram until April 1948. In June 1948, the Manchester Baby ran its first program and earned the distinction of first electronic stored-program computer . Though the idea of a stored-program computer with combined memory for program and data was conceived during the development of ENIAC, it was not initially implemented in ENIAC because World War II priorities required

5850-560: The ability to execute the program step by step. A programming tutorial for the modulo function using an ENIAC simulator gives an impression of what a program on the ENIAC looked like. ENIAC's six primary programmers, Kay McNulty , Betty Jennings , Betty Snyder , Marlyn Wescoff , Fran Bilas and Ruth Lichterman , not only determined how to input ENIAC programs, but also developed an understanding of ENIAC's inner workings. The programmers were often able to narrow bugs down to an individual failed tube which could be pointed to for replacement by

5967-584: The ability to store a program. Eckert and Mauchly started work on a new design, to be later called the EDVAC , which would be both simpler and more powerful. In particular, in 1944 Eckert wrote his description of a memory unit (the mercury delay line ) which would hold both the data and the program. John von Neumann, who was consulting for the Moore School on the EDVAC, sat in on the Moore School meetings at which

SECTION 50

#1732769501926

6084-443: The bullet to travel. We handed out copies of the calculations as they were run. ENIAC was 1,000 times faster than any machine that existed prior to that time. With its flashing lights, it also was an impressive machine illustrating graphically how fast it was actually computing. The public demonstration was a success, but most of the congratulations on its turnout were given to its engineers, John Mauchly and John Eckert . Following

6201-414: The circumstances. The first step in most formal software development processes is requirements analysis , followed by testing to determine value modeling, implementation, and failure elimination (debugging). There exist a lot of different approaches for each of those tasks. One approach popular for requirements analysis is Use Case analysis. Many programmers use forms of Agile software development where

6318-495: The co-lead programmer (with Betty Holberton ), and the other four original programmers became extremely adept at running the ENIAC; with no manual to rely on, the group reviewed diagrams of the device, interviewed the engineers who had built it, and used this information to teach themselves the skills they needed. Initially, they were not allowed to see the ENIAC's hardware at all since it was still classified and they had not received security clearance; they had to learn how to program

6435-495: The code, making it easy to target varying machine instruction sets via compilation declarations and heuristics . Compilers harnessed the power of computers to make programming easier by allowing programmers to specify calculations by entering a formula using infix notation . Programs were mostly entered using punched cards or paper tape . By the late 1960s, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into

6552-468: The computers studied ENIAC's blueprints and physical structure to determine how to manipulate its switches and cables, as programming languages did not yet exist. Though contemporaries considered programming a clerical task and did not publicly recognize the programmers' effect on the successful operation and announcement of ENIAC, McNulty, Jennings, Snyder, Wescoff, Bilas, and Lichterman have since been recognized for their contributions to computing. Three of

6669-467: The computers. Text editors were also developed that allowed changes and corrections to be made much more easily than with punched cards . Whatever the approach to development may be, the final program must satisfy some fundamental properties. The following properties are among the most important: Using automated tests and fitness functions can help to maintain some of the aforementioned attributes. In computer programming, readability refers to

6786-548: The concept of the stored-program computer introduced in 1949, both programs and data were stored and manipulated in the same way in computer memory . Machine code was the language of early programs, written in the instruction set of the particular machine, often in binary notation. Assembly languages were soon developed that let the programmer specify instructions in a text format (e.g., ADD X, TOTAL), with abbreviations for each operation code and meaningful names for specifying addresses. However, because an assembly language

6903-417: The constant transmitter, and three function tables. The references by Rojas and Hashagen (or Wilkes) give more details about the times for operations, which differ somewhat from those stated above. The basic machine cycle was 200 microseconds (20 cycles of the 100 kHz clock in the cycling unit), or 5,000 cycles per second for operations on the 10-digit numbers. In one of these cycles, ENIAC could write

7020-400: The construction of a new generation of electronic computing machines, including Electronic Delay Storage Automatic Calculator (EDSAC) at Cambridge University, England and SEAC at the U.S. Bureau of Standards. A number of improvements were made to ENIAC after 1947, including a primitive read-only stored programming mechanism using the function tables as program ROM , after which programming

7137-433: The current (2020) Army supercomputers Jean , Kay , and Betty are named after Jean Bartik (Betty Jennings), Kay McNulty , and Betty Snyder respectively. The "programmer" and "operator" job titles were not originally considered professions suitable for women. The labor shortage created by World War II helped enable the entry of women into the field. However, the field was not viewed as prestigious, and bringing in women

SECTION 60

#1732769501926

7254-445: The day; the decimal accumulators were made of 6SN7 flip-flops , while 6L7s, 6SJ7s, 6SA7s and 6AC7s were used in logic functions. Numerous 6L6s and 6V6s served as line drivers to drive pulses through cables between rack assemblies. Several tubes burned out almost every day, leaving ENIAC nonfunctional about half the time. Special high-reliability tubes were not available until 1948. Most of these failures, however, occurred during

7371-487: The demonstration were invited to the formal dedication nor to the celebratory dinner held afterwards. The original contract amount was $ 61,700; the final cost was almost $ 500,000 (approximately equivalent to $ 9,000,000 in 2023). It was formally accepted by the U.S. Army Ordnance Corps in July 1946. ENIAC was shut down on November 9, 1946, for a refurbishment and a memory upgrade, and was transferred to Aberdeen Proving Ground , Maryland in 1947. There, on July 29, 1947, it

7488-572: The demonstration, in March 1946, she received a front-page feature in the Gentry County -based Stanberry Headlight , where it was written that, "[t]o acquaintances here of Miss Jennings, it is no great surprise to know that she is holding such an important position", due to her academic esteems. Bartik was later asked to form and lead a group of programmers to convert the ENIAC into a stored program computer, working closely with John von Neumann , Dick Clippinger, and Adele Goldstine . Bartik converted

7605-510: The ease with which a human reader can comprehend the purpose, control flow , and operation of source code . It affects the aspects of quality above, including portability, usability and most importantly maintainability. Readability is important because programmers spend the majority of their time reading, trying to understand, reusing, and modifying existing source code, rather than writing new source code. Unreadable code often leads to bugs, inefficiencies, and duplicated code . A study found that

7722-400: The electronic speed of computation and the electromechanical speed of input/output, almost any real-world problem was completely I/O bound , even without making use of the original machine's parallelism. Most computations would still be I/O bound, even after the speed reduction imposed by this modification. Early in 1952, a high-speed shifter was added, which improved the speed for shifting by

7839-611: The elements essential to a modern electronic digital computer, as it could be reprogrammed electronically to hold stored programs instead of requiring setting of switches to program as ENIAC did. ENIAC's design and construction was financed by the United States Army, Ordnance Corps, Research and Development Command, led by Major General Gladeon M. Barnes . The total cost was about $ 487,000, equivalent to $ 6,900,000 in 2023. The conception of ENIAC began in 1941, when Friden calculators and differential analyzers were used by

7956-527: The engineering practice of computer programming are concerned with discovering and implementing the most efficient algorithms for a given class of problems. For this purpose, algorithms are classified into orders using Big O notation , which expresses resource use—such as execution time or memory consumption—in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to

8073-400: The first description of cryptanalysis by frequency analysis , the earliest code-breaking algorithm. The first computer program is generally dated to 1843 when mathematician Ada Lovelace published an algorithm to calculate a sequence of Bernoulli numbers , intended to be carried out by Charles Babbage 's Analytical Engine . However, Charles Babbage himself had written a program for

8190-404: The first step in debugging is to attempt to reproduce the problem. This can be a non-trivial task, for example as with parallel processes or some unusual software bugs. Also, specific user environment and usage history can make it difficult to reproduce the problem. After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, when a bug in

8307-544: The following institutions: ENIAC was named an IEEE Milestone in 1987. Computer programming Computer programming or coding is the composition of sequences of instructions, called programs , that computers can follow to perform tasks. It involves designing and implementing algorithms , step-by-step specifications of procedures, by writing code in one or more programming languages . Programmers typically use high-level programming languages that are more easily intelligible to humans than machine code , which

8424-464: The functions in a library follow the appropriate run-time conventions (e.g., method of passing arguments ), then these functions may be written in any other language. Computer programmers are those who write computer software. Their jobs usually involve: Although programming has been presented in the media as a somewhat mathematical subject, some research shows that good programmers have strong skills in natural human languages, and that learning to code

8541-457: The fundamentals of programming while working on the ENIAC, since it was the first computer of its kind. After her work on ENIAC, Bartik went on to work on BINAC and UNIVAC , and spent time at a variety of technical companies as a writer, manager, engineer and programmer. She spent her later years as a real estate agent and died in 2011 from congestive heart failure complications. Content-management framework Drupal 's default theme, Bartik ,

8658-459: The girl computers do the work more rapidly and accurately than they would. This is due in large measure to the feeling among the engineers that their college and industrial experience is being wasted and thwarted by mere repetitive calculation." Following the initial six programmers, an expanded team of a hundred scientists was recruited to continue work on the ENIAC. Among these were several women, including Gloria Ruth Gordon . Adele Goldstine wrote

8775-502: The help of long-time colleagues, Dr. Jon T. Rickman and Kim D. Todd. The autobiography was published in 2013 by Truman State Press to positive reviews. One of the best pieces of advice Bartik ever received was: "Don't ever let anyone tell you that you can't do something because they think you can't. You can do anything, achieve anything, if you think you can and you educate yourself to succeed." Encouraging girls and women to follow their dreams, she said, "If my life has proved anything, it

8892-402: The important trajectory program for the military that would prove that the ENIAC worked to specification was Betty Holberton , known at the time as Betty Snyder. Bartik and Holberton's program was chosen to introduce the ENIAC to the public and larger scientific community. That demonstration occurred on February 15, 1946, and was a tremendous success. The ENIAC proved that it operated faster than

9009-524: The inventor of the first electronic digital computer; and put the invention of the electronic digital computer in the public domain . The main parts were 40 panels and three portable function tables (named A, B, and C). The layout of the panels was (clockwise, starting with the left wall): An IBM card reader was attached to Constant Transmitter panel 3 and an IBM card punch was attached to Printer Panel 2. The Portable Function Tables could be connected to Function Table 1, 2, and 3. Pieces of ENIAC are held by

9126-404: The language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute. Languages form an approximate spectrum from "low-level" to "high-level"; "low-level" languages are typically more machine-oriented and faster to execute, whereas "high-level" languages are more abstract and easier to use but execute less quickly. It

9243-465: The language, the number of books sold and courses teaching the language (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL). Some languages are very popular for particular kinds of applications, while some languages are regularly used to write many different kinds of applications. For example, COBOL

9360-446: The machine for press photography, as then computer scientist undergrad Kathryn Kleiman discovered in her own research as opposed to what she was told by a historian in computing. However, some of the women did not receive recognition for their work on the ENIAC in their entire lifetimes. After the war ended, the women continued to work on the ENIAC. Their expertise made their positions difficult to replace with returning soldiers. Later In

9477-434: The machine solely through studying schematic diagrams. The six-woman team was also not initially given space to work together, so they found places to work where they could, in abandoned classrooms and fraternity houses. While the six women worked on ENIAC, they developed subroutines , nesting , and other fundamental programming techniques, and arguably invented the discipline of programming digital computers. Bartik and

9594-432: The machine to be completed quickly, and ENIAC's 20 storage locations would be too small to hold data and programs. The Z3 and Colossus were developed independently of each other, and of the ABC and ENIAC during World War II. Work on the ABC at Iowa State University was stopped in 1942 after John Atanasoff was called to Washington, D.C. , to do physics research for the U.S. Navy, and it was subsequently dismantled. The Z3

9711-410: The machine's logic, physical structure, operation, and circuitry in order to not only understand the mathematics of computing, but also the machine itself. This was one of the few technical job categories available to women at that time. Betty Holberton (née Snyder) continued on to help write the first generative programming system ( SORT/MERGE ) and help design the first commercial electronic computers,

9828-489: The original technical description of the ENIAC. Several language systems were developed to describe programs for the ENIAC, including: Although the Ballistic Research Laboratory was the sponsor of ENIAC, one year into this three-year project John von Neumann , a mathematician working on the hydrogen bomb at Los Alamos National Laboratory , became aware of the ENIAC. In December 1945, the ENIAC

9945-480: The other ENIAC female programmers learned to physically modify the machine, moving switches and rerouting cables, in order to program it. In addition to performing the original ballistic trajectories they were hired to compute, the six female programmers soon became operators on the Los Alamos nuclear calculations, and generally expanded the programming repertoire of the machine. Bartik's programming partner on

10062-476: The programmer can try to skip some user interaction from the original problem description and check if the remaining actions are sufficient for bugs to appear. Scripting and breakpointing are also part of this process. Debugging is often done with IDEs . Standalone debuggers like GDB are also used, and these often provide less of a visual environment, usually using a command line . Some text editors such as Emacs allow GDB to be invoked through them, to provide

10179-406: The public the evening of February 14, 1946, featuring demonstrations of its capabilities. Elizabeth Snyder and Betty Jean Jennings were responsible for developing the demonstration trajectory program, although Herman and Adele Goldstine took credit for it. The machine was formally dedicated the next day at the University of Pennsylvania. None of the women involved in programming the machine or creating

10296-549: The reader from standard IBM cards. The "first production run" of the new coding techniques on the Monte Carlo problem followed in April. After ENIAC's move to Aberdeen, a register panel for memory was also constructed, but it did not work. A small master control unit to turn the machine on and off was also added. The programming of the stored program for ENIAC was done by Betty Jennings, Clippinger, Adele Goldstine and others. It

10413-425: The rest of her career as a manager, writer, and engineer. Jean Bartik and William Bartik divorced by 1968. Bartik ultimately retired from the computing industry in 1986 when her final employer, Data Decisions (a publication of Ziff-Davis), was sold; Bartik spent the following 25 years as a real estate agent. Bartik died from congestive heart failure in a Poughkeepsie, New York nursing home on March 23, 2011. She

10530-479: The sign of a computed result. By the end of its operation in 1956, ENIAC contained 18,000 vacuum tubes , 7,200 crystal diodes , 1,500 relays , 70,000 resistors , 10,000 capacitors , and approximately 5,000,000 hand- soldered joints. It weighed more than 30 short tons (27 t), was roughly 8 ft (2 m) tall, 3 ft (1 m) deep, and 100 ft (30 m) long, occupied 300 sq ft (28 m) and consumed 150 kW of electricity. Input

10647-403: The six women programmers, focusing on the commendable patriotic contributions they made during World War II. The ENIAC was responsible for calculating bullet trajectories during the war. The ENIAC team is also the subject of the 2013 short documentary film The Computers . This documentary, created by Kathy Kleiman and the ENIAC Programmers Project, combines actual footage of the ENIAC team from

10764-481: The stored program concept was elaborated. Von Neumann wrote up an incomplete set of notes ( First Draft of a Report on the EDVAC ) which were intended to be used as an internal memorandum—describing, elaborating, and couching in formal logical language the ideas developed in the meetings. ENIAC administrator and security officer Herman Goldstine distributed copies of this First Draft to a number of government and educational institutions, spurring widespread interest in

10881-411: The term software development is used for this larger overall process – with the terms programming , implementation , and coding reserved for the writing and editing of code per se. Sometimes software development is known as software engineering , especially when it employs formal methods or follows an engineering design process . Programmable devices have existed for centuries. As early as

10998-409: The term 'compiler'. FORTRAN , the first widely used high-level language to have a functional implementation, came out in 1957, and many other languages were soon developed—in particular, COBOL aimed at commercial data processing, and Lisp for computer research. These compiled languages allow the programmer to write programs in terms that are syntactically richer, and more capable of abstracting

11115-431: The time about husbands and wives working together, Jean was asked to resign from the company. Between 1951 and 1954, prior to her first child's birth, Jean did mostly freelance programming assignments for John Mauchly and was a helpmate to her husband. Once her son was born, Jean walked away from her career in computing to concentrate on raising a family, during which time she had two other children with her husband. It

11232-459: The time of the project, as well as the fact that much of the 60-order code was in Bartik's handwriting. After the end of the war, Bartik went on to work with the ENIAC designers John Eckert and John Mauchly , and helped them develop the BINAC and UNIVAC I computers. BINAC was the first computer to use magnetic tape instead of punch cards to store data and the first computer to utilize

11349-401: The time) to investigate the distance that neutrons would likely travel through various materials. John von Neumann and Stanislaw Ulam realized the speed of ENIAC would allow these calculations to be done much more quickly. The success of this project showed the value of Monte Carlo methods in science. A press conference was held on February 1, 1946, and the completed machine was announced to

11466-534: The twin unit concept. BINAC was purchased by Northrop Aircraft to guide the Snark missile, but the BINAC proved to be too large for their purposes. However, according to a Northrop Aircraft programmer, claims that the BINAC did not work once it was moved to Northrop Aircraft were erroneous and the BINAC was working well into the mid-1950s. Besides BINAC, Jean's more important work involved her responsibilities in designing

11583-560: The various stages of formal software development are more integrated together into short cycles that take a few weeks rather than years. There are many approaches to the Software development process. Popular modeling techniques include Object-Oriented Analysis and Design ( OOAD ) and Model-Driven Architecture ( MDA ). The Unified Modeling Language ( UML ) is a notation used for both the OOAD and MDA. A similar technique used for database design

11700-401: The warm-up and cool-down periods, when the tube heaters and cathodes were under the most thermal stress. Engineers reduced ENIAC's tube failures to the more acceptable rate of one tube every two days. According to an interview in 1989 with Eckert, "We had a tube fail about every two days and we could locate the problem within 15 minutes." In 1954, the longest continuous period of operation without

11817-444: The young girl a newspaper to read every day and became a role model for the rest of her life. She began her education at a local one-room school , and gained local attention for her softball skill. In order to attend high school, she lived with her older sister in the neighboring town, where the school was located, and then began to drive every day despite being only 14. She graduated from Stanberry High School in 1941, aged 16. She

11934-503: Was 86. Starting in 1996, once the importance of their role in the development of computing was re-discovered, Bartik along with Betty Holberton and Bartik's other friend of over 60 years Kathleen Antonelli (ENIAC programmer and wife of ENIAC co-inventor John Mauchly ) began to finally receive the acknowledgement and honors for their pioneering work in the early field of computing. Bartik and Antonelli became invited speakers both at home and abroad to share their experiences working with

12051-407: Was added to ENIAC. ENIAC used ten-position ring counters to store digits; each digit required 36 vacuum tubes, 10 of which were the dual triodes making up the flip-flops of the ring counter. Arithmetic was performed by "counting" pulses with the ring counters and generating carry pulses if the counter "wrapped around", the idea being to electronically emulate the operation of the digit wheels of

12168-554: Was an engineer working on a Pentagon project at the University of Pennsylvania. They married in December 1946. When the Electronic Numeric Integrator and Computer (ENIAC) was developed for the purpose of calculating the ballistic trajectories human computers like Bartik had been doing by hand, she applied to become a part of the project and was eventually selected to be one of its first programmers. Bartik

12285-446: Was asked to set up problems for the ENIAC without being taught any techniques. Bartik and five other women ( Betty Holberton , Marlyn Wescoff , Kathleen McNulty , Ruth Teitelbaum , and Frances Spence ) were chosen to be the main programmers for the ENIAC. They were known as the "Sensational Six." Many other women who are often unrecognized contributed to the ENIAC during a period of wartime male labor shortage. Bartik, who became

12402-606: Was destroyed by the Allied bombing raids of Berlin in 1943. As the ten Colossus machines were part of the UK's war effort their existence remained secret until the late 1970s, although knowledge of their capabilities remained among their UK staff and invited Americans. ENIAC, by contrast, was put through its paces for the press in 1946, "and captured the world's imagination". Older histories of computing may therefore not be comprehensive in their coverage and analysis of this period. All but two of

12519-468: Was done by setting the switches. The idea has been worked out in several variants by Richard Clippinger and his group, on the one hand, and the Goldstines, on the other, and it was included in the ENIAC patent . Clippinger consulted with von Neumann on what instruction set to implement. Clippinger had thought of a three-address architecture while von Neumann proposed a one-address architecture because it

12636-425: Was first demonstrated as a stored-program computer in April 1948, running a program by Adele Goldstine for John von Neumann. This modification reduced the speed of ENIAC by a factor of 6 and eliminated the ability of parallel computation, but as it also reduced the reprogramming time to hours instead of days, it was considered well worth the loss of performance. Also analysis had shown that due to differences between

12753-412: Was given the title of salutatorian on her graduation. She attended Northwest Missouri State Teachers College now known Northwest Missouri State University , majoring in mathematics with a minor in English and graduated in 1945. Jennings was awarded the only mathematics degree in her class. Although she had originally intended to study journalism, she decided to change to mathematics because she had

12870-475: Was possible from an IBM card reader and an IBM card punch was used for output. These cards could be used to produce printed output offline using an IBM accounting machine, such as the IBM 405 . While ENIAC had no system to store memory in its inception, these punch cards could be used for external memory storage. In 1953, a 100- word magnetic-core memory built by the Burroughs Corporation

12987-410: Was possible to wire the carry of one accumulator into another accumulator to perform arithmetic with double the precision, but the accumulator carry circuit timing prevented the wiring of three or more for even higher precision. ENIAC used four of the accumulators (controlled by a special multiplier unit) to perform up to 385 multiplication operations per second; five of the accumulators were controlled by

13104-430: Was simpler to implement. Three digits of one accumulator (#6) were used as the program counter, another accumulator (#15) was used as the main accumulator, a third accumulator (#8) was used as the address pointer for reading data from the function tables, and most of the other accumulators (1–5, 7, 9–14, 17–19) were used for data memory. In March 1948 the converter unit was installed, which made possible programming through

13221-410: Was sometime during this 1950s period that Bartik began going by the name "Jean" rather than her birth first name "Betty", which is what she had been known as during her ENIAC, UNIVAC and Remington-Rand years. Even though Bartik played an integral part in developing ENIAC, her work at University of Pennsylvania and on the ENIAC remained obscure until her pioneering work was documented by Kathy Kleiman and

13338-540: Was turned on and was in continuous operation until 11:45 p.m. on October 2, 1955, when it was retired in favor of the more efficient EDVAC and ORDVAC computers. A few months after ENIAC's unveiling in the summer of 1946, as part of "an extraordinary effort to jump-start research in the field", the Pentagon invited "the top people in electronics and mathematics from the United States and Great Britain" to

13455-587: Was undertaken by the female mathematicians who handled the bulk of the ENIAC programming: Jean Jennings , Marlyn Wescoff , Ruth Lichterman , Betty Snyder , Frances Bilas , and Kay McNulty . In 1946, the researchers resigned from the University of Pennsylvania and formed the Eckert–Mauchly Computer Corporation . ENIAC was a large, modular computer, composed of individual panels to perform different functions. Twenty of these modules were accumulators that could not only add and subtract, but hold

13572-400: Was used to calculate thermonuclear reactions using equations . The data was used to support research on building a hydrogen bomb. Related to ENIAC's role in the hydrogen bomb was its role in the Monte Carlo method becoming popular. Scientists involved in the original nuclear bomb development used massive groups of people doing huge numbers of calculations ("computers" in the terminology of

13689-483: Was viewed as a way to free men up for more skilled labor. Essentially, women were seen as meeting a need in a temporary crisis. For example, the National Advisory Committee for Aeronautics said in 1942, "It is felt that enough greater return is obtained by freeing the engineers from calculating detail to overcome any increased expenses in the computers' salaries. The engineers admit themselves that

#925074