right|300px|thumb|Dr. Jon Nese (stânga) și echipa sa (dreapta) programează ENIAC în clădirea BRL 328 (fotografie a armatei SUA). right|thumbnail|300px|thumb|Codificatoarele (stânga) și (dreapta) operează panoul principal de control al ENIAC la Școala Moore de Inginerie Electrică. (fotografie a armatei americane din arhivele ARL Technical Library) ENIAC, prescurtat de la Electronic Numerical Integrator And Computer (Calculator și Integrator Electronic Numeric), a fost primul calculator electronic de uz general. Era un calculator numeric (digital), Turing-complet, capabil de a fi reprogramat pentru a rezolva o gamă largă de probleme calculatorii.Shurkin, Joel, Engines of the Mind: The Evolution of the Computer from Mainframes to Microprocessors, 1996, ISBN 0-393-31471-5 ENIAC a fost proiectat și construit pentru a calcula tabele balistice pentru laboratorul de cercetări balistice al armatei americane.

Când a fost anunțată terminarea sa în 1946, presa l-a etichetat drept un „creier uriaș”. Avea o viteză de calcul de o mie de ori mai mari decât mașinile electromecanice, salt în domeniul puterii de calcul neegalat de atunci de nicio mașină. Această putere matematică, împreună cu programabilitatea sa, a satisfăcut necesitățile oamenilor de știință și industriașilor. Inventatorii ENIAC au promovat răspândirea ideilor lor printr-o serie de cursuri de arhitectura calculatoarelor.

Proiectul și construcția ENIAC au fost finanțate de armata SUA în timpul celui de-al doilea război mondial. Contractul de construcție a fost semnat la 5 iunie 1943, iar lucrul a început la Școala Moore de Inginerie Electrică din Universitatea Pennsylvania din luna următoare, sub numele de cod „Proiectul PX”. Mașina terminată a fost arătată la 14 februarie 1946 la Universitatea Pennsylvania, ea costând de dolari. A fost primită oficial de U.S. Army Ordnance Corps în iulie 1946. ENIAC a fost oprit la 9 noiembrie 1946 pentru o extindere de memorie și alte modificări și a fost transferat la , Maryland, în 1947. Acolo, la 29 iulie 1947, a fost pornit și a funcționat în permanență până la 2 octombrie 1955, ora 11:45 seara.

ENIAC a fost conceput și proiectat de și de la Universitatea Pennsylvania. Echipa de ingineri proiectanți era formată, printre alții, de Bob Shaw (tablouri funcționale), Chuan Chu (împărțire/rădăcină pătrată), Kite Sharpless (programator principal), (înmulțire), (citire/imprimare), (acumulatori) și Iredell Eachus Jr.

Structură și performanțe ENIAC era un calculator modular, compus din panouri separate care efectuau diferite funcții. Douăzeci de astfel de module reprezentau acumulatorii, pe care se puteau efectua adunări și scăderi și care puteau stoca un număr de zece cifre zecimale. Între aceste unități, numerele erau transferate prin mai multe magistrale generice. Pentru a funcționa la viteză mare, panourile trebuia să trimită și să primească numere, să calculeze, să salveze răspunsul și să declanșeze următoarea operație — toate fără componente în mișcare. Cheia versatilității sale era capabilitatea de ramificație; ENIAC putea declanșa operații diferite în funcție de semnul unui răspuns calculat.

Pe lângă viteză, cel mai remarcabil fapt la ENIAC era dimensiunea și complexitatea sa. ENIAC avea de tuburi electronice, diode cu cristal, relee, de rezistoare, de condensatoare și aproximativ 5 milioane de conexiuni lipite manual. Cântărea , și avea aproximativ pe pe ), ocupa 167 m², și consuma 150 kW. Intrările de date se făceau printr-un cititor de cartele perforate IBM și un perforator de cartele IBM reprezenta principalul dispozitiv de ieșire. Aceste cartele se puteau folosi pentru a produce separat rezultate tipărite cu ajutorul unui dispozitiv IBM cum ar fi .

ENIAC utiliza numărătoare ciclice cu zece poziții pentru a stoca numerele; fiecare cifră folosea 36 de tuburi electronice, din care 10 erau triodele duale ce compuneau bistabilii numărătorului. Operațiile aritmetice se efectuau prin numărarea impulsurilor în numărătoarele ciclice și generarea de impulsuri de transport în cazul în care numărătorul aflat la valoarea maximă era incrementat și se reseta la 0, ideea fiind cea de a emula prin electronică funcționarea roților cu numere ale unui sumator mecanic. ENIAC avea douăzeci de acumulatori pe zece cifre cu semn care utilizau reprezentarea în complement față de zece și puteau efectua 5000 de adunări sau scăderi simple între oricare dintre ele și sursă (de exemplu, un alt acumulator, sau o constantă) pe secundă. Se puteau conecta mai mulți acumulatori simultan, astfel că viteza maximă de funcționare putea fi mai mare datorită funcționării în paralel.

Se putea cabla transportul unui acumulator la un alt acumulator pentru a efectua calcule cu dublă precizie, dar limitările circuitului de sincronizare al transportului împiedica legarea mai multor acumulatori pentru mai multă precizie. ENIAC utiliza patru acumulatori controlați de o unitate specială de înmulțire, pentru a efectua 385 de înmulțiri pe secundă; de asemenea, folosea cinci acumulatori, controlați de o unitate de împărțire și extragere de radicali, pentru a efectua până la patruzeci de împărțiri pe secundă sau trei extrageri de radicali pe secundă.

Celelalte nouă unități ale ENIAC erau Unitatea de integrare (care pornea și oprea mașina), Unitatea de ciclare (folosită pentru sincronizarea celorlalte unități), Programatorul Master (care controla secvențierea buclelor), Cititorul (care controla un cititor de cartele perforate IBM), Imprimatorul (care controla perforatorul de cartele), Transmițătorul de constante, și trei Tablouri funcționale. right|thumbnail|300px|Cap. Herman Goldstein (în față) setează comutatoarele unuia dintre tablourile funcționale ale ENIAC la Școala Moore de Inginerie Electrică. (foto: Armata SUA)

Ciclul de bază al mașinii era de 200 microsecunde (20 cicluri ale ceasului de 100 kHz al unității de ciclare), sau 5000 de cicluri pe secundă pentru operațiile pe numere de 10 cifre. Într-unul din aceste cicluri, ENIAC putea să scrie un număr într-un registru, să citească un număr dintr-un registru, să adune sau să scadă două numere. O înmulțire a unui număr de 10 cifre cu un număr de d cifre (pentru d până la 10) dura d+4 cicluri, astfel că o înmulțire a două numere pe 10 cifre dura 14 cicluri, sau 2800 microsecunde—o viteză de 357 pe secundă. Dacă un număr avea mai puțin de 10 cifre, înmulțirea se realiza mai repede. Împărțirea și radicalul durau 13(d+1) cicluri, unde d este numărul de cifre al rezultatului (câtul sau radicalul). Deci, o împărțire sau un radical durau 143 de cicluri, sau —o viteză de 35 pe secundă. (Wilkes 1956:20 arată că o împărțire cu un cât de 10 cifre dura 6 milisecunde.) Dacă rezultatul avea mai puțin de zece cifre, se obținea mai repede.

Fiabilitatea left|thumbnail|200px|Detaliu al părții din spate a unei secțiuni din ENIAC, pe care se văd tuburile electronice ENIAC utiliza tuburi radio cu opt pini folosite la acea vreme; registrele acumulatoare erau compuse din bistabili , iar în implementarea funcțiilor logice se foloseau bistabili 6L7, 6SJ7, 6SA7 și 6AC7. Numeroase tuburi și controlau liniile electrice, trimițând impulsuri între diversele carcase.

Unii experți în electronică au prezis că defectările tuburilor vor fi atât de frecvente încât mașina n-ar fi fost deloc utilă. Predicția a fost parțial corectă: aproape în fiecare zi se ardeau câteva tuburi, lăsând calculatorul nefuncțional aproape jumătate din timp. Tuburi speciale cu fiabilitate mare au devenit disponibile abia în 1948. Majoritatea acestor defectări, însă, aveau loc în perioadele de încălzire și răcire, atunci când solicitările termice asupra catozilor tuburilor și dispozitivelor de încălzire erau maxime. Prin simpla (deși costisitoarea) soluție de a nu mai opri mașina deloc, inginerii au redus rata defectărilor tuburilor ENIAC la nivelul mai acceptabil de un tub în medie la două zile. Conform unui interviu acordat în 1989 de Eckert, povestea defectărilor continue ale tuburilor era mai ales un mit: „Se ardea câte un tub cam la fiecare două zile și problema putea fi localizată în 15 minute.” În 1954, cea mai lungă perioadă de funcționare fără defect a fost de 116 ore (aproape cinci zile).

Programabilitatea ENIAC putea fi programat să efectueze secvențe complexe de operații, inclusiv bucle, ramificări și subrutine. Misiunea de a lua o problemă și de a programa mașina să o rezolve era complexă, și de regulă dura câteva săptămâni. După ce programul era dezvoltat pe hârtie, urma procesul de a introduce programul în ENIAC prin manevrarea cablurilor și comutatoarelor acestuia, etapă care mai dura câteva zile. După aceasta, urma o perioadă de verificare și de debugging, cu ajutorul capabilității de rulare „single step” a mașinii.

Cele șase femei care se ocupau de programarea ENIAC au fost introduse în 1997 în Women in Technology International Hall of Fame. În 1946, ele se numeau , , , , și .

ENIAC a fost un proiect unicat și nu a mai fost repetat. Înghețarea designului în 1943 a avut drept consecință mai multe lipsuri care nu făceau parte din proiect, mai ales inabilitatea de a stoca un program. Eckert și Mauchly au demarat lucru la un nou proiect, care ulterior a fost denumit EDVAC, care avea să fie și mai simplu și mai puternic. În particular, în 1944, Eckert a scris descrierea unei unități de memorie (linia de întârziere cu mercur) care avea să stocheze atât datele cât și programul. John von Neumann, care era consultant pentru Școala Moore pe proiectul EDVAC a luat parte la ședințele de la Școala Moore în care s-a dezvoltat conceptul de program stocat, și a scris un set de notițe (—Prima schiță de raport asupra EDVAC) cu intenția de a-l folosi ca memorandum intern prin care se descrie și se elaborează în limbaj logic formal ideile dezvoltate în ședințe. Herman Goldstine a distribuit copii ale acestui raport mai multor instituții guvernamentale și educaționale, declanșând un interes larg privind construcția unei noi generații de mașini electronice de calcul, inclusiv EDSAC și .