The devutils library

Search

Search the library by word, language and section.

Browse all available content

This index remains available without JavaScript.

Ada Lovelace

Lovelace translated an account of Babbage’s Analytical Engine and expanded it with notes explaining its programming possibilities.

Adi Shamir

Shamir collaborated with Ronald Rivest and Leonard Adleman on practical public-key cryptography.

Alan Kay

Kay contributed to object-oriented programming, personal computing and graphical interfaces, and led the team that developed Smalltalk.

Alan Turing

Turing used an abstract machine model to examine computable numbers and the limits of effective procedures.

Alonzo Church

Church developed the lambda calculus and proved an undecidability result for first-order logic.

An Wang

Wang patented a pulse-transfer controlling device that contributed to practical magnetic-core memory.

Aristotle

Aristotle systematized deductive reasoning by studying relations between terms and the forms of syllogisms.

Ibn Sina (Avicenna)

Avicenna revised syllogistic reasoning, including the treatment of modal propositions and their logical relations.

Barbara Liskov

Liskov developed ideas about data abstraction and modularity and led the team that created CLU.

Betty Holberton

Holberton, then Betty Snyder, was one of the six ENIAC programmers.

Bill Gates

Gates co-founded Microsoft with Paul Allen and led its growth as a software company.

Bjarne Stroustrup

Stroustrup designed and implemented C++ at Bell Labs, drawing on C and ideas from Simula.

Blaise Pascal

Pascal developed the Pascaline, a mechanical calculator associated with his father’s tax-accounting work.

Bob Frankston

Frankston founded Software Arts with Dan Bricklin to develop and sell the VisiCalc spreadsheet for personal computers.

Robert Kahn

Kahn worked on ARPANET system design and packet switching at BBN and helped initiate open-architecture internetworking.

Boethius

Boethius’s Latin logical writings helped transmit ancient logic into medieval intellectual traditions.

Brahmagupta

Brahmagupta wrote on mathematics and astronomy, including number systems, square-root procedures and quadratic equations.

Brendan Gregg

Gregg developed performance-analysis methods and tools, including work on flame graphs and contributions to BPF tracing tools.

Butler Lampson

Lampson contributed to networked personal workstations, operating systems, security and document systems, including work on the Alto at Xerox PARC.

Charles Babbage

Babbage’s calculating engines connect mechanical engineering with the design of programmable calculation.

Charles W. Bachman

Bachman developed the Integrated Data Store, a database system using network-oriented data structures.

Charles P. Thacker

Thacker led hardware development of the Xerox Alto and contributed to networked personal computing.

Chrysippus of Soli

Chrysippus developed Stoic reasoning about whole propositions joined by connectives. This differs from studying only relations between category terms.

Claude Shannon

Two connections in Shannon’s work — logic with switching circuits, and probability with communication.

Clifford Berry

Berry collaborated with John Atanasoff to design and build the Atanasoff-Berry Computer at Iowa State.

Dan Bricklin

Bricklin helped develop the VisiCalc spreadsheet, which gave business users a compelling application for personal computers.

David Hilbert

Hilbert investigated the foundations of geometry through explicit axioms and their relationships. His research ranged across mathematics and physics.

Dennis Ritchie

Ritchie created the C programming language and co-developed Unix with Ken Thompson at Bell Labs.

Dignāga

Dignāga developed accounts of inference and argument in Indian Buddhist philosophy, including the wheel of reasons.

Donald E. Knuth

Knuth contributed to the systematic study of algorithms and created the TeX typesetting system.

Dorothy Vaughan

Vaughan led the segregated West Area Computing unit at NACA and later became an expert FORTRAN programmer.

Douglas Engelbart

Engelbart and his laboratory developed interactive tools including the mouse and NLS, combining text, hypertext and collaboration.

M. Douglas McIlroy

McIlroy developed the idea of Unix pipes and promoted composing programs from small tools that exchange streams.

Edgar F. Codd

Codd proposed the relational model, organizing data by values and relations rather than navigational storage paths.

Edsger W. Dijkstra

Dijkstra developed a shortest-path algorithm for graphs, a central contribution to algorithm design.

Eric Bina

Bina co-created the Mosaic browser with Marc Andreessen at NCSA.

Euclid of Alexandria

Euclid organized mathematical propositions and proofs in the Elements. The work became a durable model of systematic mathematical exposition.

Federico Faggin

Faggin developed silicon-gate technology and led implementation work on Intel’s MCS-4 chips, working with Masatoshi Shima.

Frances Spence

Spence, then Frances Bilas, was one of the six ENIAC programmers.

Frederick P. Brooks Jr.

Brooks contributed to computer architecture, operating systems and software engineering, including management of IBM System/360 work and The Mythical Man-Month.

Gary Kildall

Kildall developed CP/M and established Digital Research to develop and market personal-computer software.

Geoffrey Hinton

Hinton contributed conceptual and engineering advances in deep neural networks, recognized jointly with Bengio and LeCun.

Georg Cantor

Cantor developed set theory and the study of different infinite cardinalities.

George Boole

Boole brought algebraic methods into the study of logic. His mathematical work also included probability and differential equations.

Gordon Moore

Moore helped found Fairchild Semiconductor and Intel and described a trend in component integration that became known as Moore’s law.

Gottfried Wilhelm Leibniz

Leibniz worked on mechanical calculation and binary arithmetic, alongside mathematics and philosophy.

Gottlob Frege

Frege’s Begriffsschrift introduced a formal logical language with implication, negation and universal quantification.

Grace Hopper

Hopper worked on early computers and compiler development, including participation in the team behind FLOW-MATIC.

Guido van Rossum

Van Rossum created Python and guided the development of its language and community.

Herman Hollerith

Hollerith developed the electric punched-card tabulating system used for the United States census.

Howard Aiken

Aiken proposed the automatic calculator that became the Harvard Mark I, designed and built with IBM.

Ivan Sutherland

Sutherland developed Sketchpad, an interactive graphical system described in his MIT doctoral dissertation.

Jack Kilby

Kilby demonstrated circuits whose active and passive elements were formed from semiconductor material at Texas Instruments.

Jay W. Forrester

Forrester developed coincident-current magnetic-core memory while leading the MIT Whirlwind project.

J. C. R. Licklider

Licklider articulated a vision of globally networked computers and supported interactive computing through his work at ARPA.

John Vincent Atanasoff

Atanasoff designed and built the Atanasoff-Berry Computer with graduate student Clifford Berry at Iowa State.

John Backus

Backus led work on FORTRAN and contributed to notation for specifying programming-language syntax.

John Bardeen

Bardeen investigated semiconductor surface states and developed the point-contact transistor with Walter Brattain at Bell Labs.

John Buridan

Buridan developed medieval logic through work on terms, arguments and their use, including his Summulae de dialectica.

John Mauchly

Mauchly co-designed ENIAC with J. Presper Eckert.

John McCarthy

McCarthy helped establish artificial intelligence as a research field, developed Lisp and proposed ideas for time-sharing.

John von Neumann

Von Neumann contributed to the logical design of computers and to automata theory, alongside extensive mathematical research.

Joseph Marie Jacquard

Jacquard developed a loom mechanism in which linked punched cards controlled weaving patterns.

Karen Spärck Jones

Spärck Jones researched automatic language processing, document retrieval, summarization and the evaluation of information systems.

Katherine Johnson

Johnson performed mathematical analysis and calculations for the United States space program after joining NACA.

Ken Thompson

Thompson co-created Unix with Dennis Ritchie at Bell Labs and worked on languages and operating systems including B and Plan 9.

Konrad Zuse

Zuse built program-controlled electromechanical computers and developed the early programming language Plankalkül.

Kristen Nygaard

Nygaard co-designed Simula with Ole-Johan Dahl, helping establish object-oriented programming.

Kurt Gödel

Gödel proved completeness for first-order logic and incompleteness results for formal arithmetic.

Larry Page

Page co-authored the paper describing the Google search prototype with Sergey Brin, using hyperlink structure in Web search.

Leonard Adleman

Adleman collaborated with Ronald Rivest and Adi Shamir on practical public-key cryptography.

Leslie Lamport

Lamport contributed to the theory and design of distributed and concurrent systems and created the initial LaTeX document preparation system.

Linus Torvalds

Torvalds created the Linux kernel and coordinated its open-source development with a growing community of contributors.

Marc Andreessen

Andreessen co-created the Mosaic browser with Eric Bina at NCSA.

Margaret Hamilton

Hamilton led work on Apollo flight software and contributed to software engineering, with earlier experience on weather and SAGE software.

Marlyn Meltzer

Meltzer, then Marlyn Wescoff, was one of the six ENIAC programmers.

Martin Hellman

Hellman co-authored New Directions in Cryptography with Whitfield Diffie and contributed to public-key cryptography alongside Diffie and Ralph Merkle.

Mary W. Jackson

Jackson worked in NACA’s West Area Computing section before moving into wind-tunnel research and aeronautical engineering.

Mozi

Mozi’s teachings initiated the Mohist tradition of explicit argument, standards of judgment and debate in ancient China.

Niklaus Wirth

Wirth developed programming languages including Pascal, Modula-2 and Oberon, alongside work on programming environments.

Norbert Wiener

Wiener brought together questions of control and communication in cybernetics, alongside mathematical work in probability and related areas.

Ole-Johan Dahl

Dahl co-designed Simula with Kristen Nygaard, helping establish object-oriented programming.

Paul Allen

Allen co-founded Microsoft with Bill Gates and served as its chief technologist during its early years.

Peter Abelard

Abelard wrote commentaries and independent works on dialectic, logic and the philosophy of language.

Peter Naur

Naur contributed to ALGOL 60’s definition, programming-language design and compiler design.

Philip Zimmermann

Zimmermann created Pretty Good Privacy (PGP) and made email encryption software available for public use.

Plato

Plato founded the Academy in Athens, where philosophy and mathematics formed part of a shared intellectual setting.

Ramon Llull

Llull combined symbolic notation with combinatorial diagrams in a project to organize knowledge and support argument.

Richard Hamming

Hamming is associated with error-correcting codes that bear his name.

Richard Stallman

Stallman announced the GNU project to build a free operating system and helped establish the free-software movement.

Robert Metcalfe

Metcalfe developed Ethernet at Xerox PARC in collaboration with David Boggs.

Robert Noyce

Noyce proposed a monolithic integrated-circuit structure using metal interconnections above an oxide layer, building on Jean Hoerni’s planar process.

Robert W. Taylor

Taylor supported research in interactive computing and networking through leadership and funding, including support for Engelbart’s work.

Ronald Rivest

Rivest collaborated with Adi Shamir and Leonard Adleman on practical public-key cryptography.

Ruth Teitelbaum

Teitelbaum, then Ruth Lichterman, was one of the six ENIAC programmers.

Satoshi Nakamoto

The name Satoshi Nakamoto appears on the Bitcoin paper proposing peer-to-peer electronic cash with proof-of-work transaction ordering.

Sergei Lebedev

Lebedev led the team that developed the MESM electronic computer at the Institute of Electrical Engineering in Kyiv.

Sergey Brin

Brin co-authored the paper describing the Google search prototype with Larry Page, using hyperlink structure in Web search.

Shafi Goldwasser

Goldwasser helped establish complexity-based cryptography and methods for efficient proof verification with Silvio Micali.

Silvio Micali

Micali helped establish complexity-based cryptography and methods for efficient proof verification with Shafi Goldwasser.

Sophie Wilson

Wilson worked with Steve Furber on the BBC Micro and ARM architecture, and wrote the BBC BASIC interpreter.

Steve Furber

Furber was a principal designer of the BBC Micro and co-designed the ARM processor with Sophie Wilson at Acorn.

Steve Jobs

Jobs co-founded Apple with Steve Wozniak and later founded NeXT, contributing leadership in personal computing and interface design.

Steve Wozniak

Wozniak designed the Apple I and Apple II and co-founded Apple with Steve Jobs.

Ted Nelson

Nelson developed ideas about hypertext and a multimedia publishing system called Xanadu.

Tim Berners-Lee

Berners-Lee developed the World Wide Web at CERN by combining hypertext with Internet communication and resource identifiers.

C. A. R. Hoare

Hoare developed Quicksort and contributed to the theory of programming languages.

Vannevar Bush

Bush described the Memex, an imagined microfilm-based system for linking and retrieving documents through associative trails.

Vint Cerf

Cerf co-developed the TCP/IP protocol suite with Robert Kahn and helped guide the development of internetworking.

Walter Brattain

Brattain worked with John Bardeen on the germanium point-contact transistor at Bell Labs.

Whitfield Diffie

Diffie worked with Martin Hellman and Ralph Merkle on public-key cryptography and co-authored New Directions in Cryptography with Hellman.

William of Ockham

Ockham’s Summa of Logic treats terms, propositions and arguments, including modal syllogisms.

William Shockley

Shockley organized Bell Labs’ solid-state group and pursued semiconductor amplifier concepts. Bardeen and Brattain achieved the point-contact device within that research setting.

Yann LeCun

LeCun contributed conceptual and engineering advances in deep neural networks, recognized jointly with Hinton and Bengio.

Yoshua Bengio

Bengio contributed conceptual and engineering advances in deep neural networks, recognized jointly with Hinton and LeCun.

Logic meets switching circuits

Shannon’s 1937 thesis work and its 1938 paper connected symbolic logic with the analysis and synthesis of relay networks.

ARPANET transitions to TCP/IP

The coordinated 1 January 1983 transition replaced NCP on ARPANET; it was a deployment milestone in a longer internetworking history.

Digital control and datapaths

Extend digital logic with an FSM, a four-bit ALU and a ready/valid interface, then reason about registered computation.

Arithmetic logic unit

Combine a four-bit adder, Boolean functions and selection; distinguish unsigned carry from signed overflow and connect computation to storage.

Binary adders

Derive a full adder, follow carries through four bits, and distinguish unsigned carry from signed overflow.

Boolean algebra

Describe two-state decisions with AND, OR and NOT, then connect the expressions to switching circuits.

Combinational logic

Specify a function, build it from gates, and verify a selector without confusing logic with timing.

Finite-state machines

Design a serial pattern detector, preserve overlapping matches, encode its states and verify every short input stream.

Logic gates

Turn Boolean operations into connected components, and distinguish a logical result from an electrical implementation.

Memory and registers

Separate holding a value from computing one, then organize stored bits into registers and addressed words.

Sequential logic

Combine stored state with a next-state function, trace a counter, and account for the time between clock edges.

Mathematical reasoning

Read variables, evaluate a rule and distinguish an example, a counterexample and a proof.

Models and abstraction

State what a model promises, trace its predictions and identify where its assumptions stop applying.

Signals and states

Separate a physical signal from the discrete state it represents, then read a simple time trace.

Units and scale

Keep units in a calculation, convert powers of ten and distinguish a duration from a rate.

RTL and hardware description

Describe a registered four-bit accumulator in Verilog, separate combinational wiring from clocked storage and trace simultaneous state updates.

Static timing analysis

Calculate setup and hold slack for a clocked path, derive the effect of skew and distinguish timing constraints from functional simulation.

Synthesis and technology mapping

Lower a circuit description into connected implementation cells, reason about Boolean equivalence and account for resource sharing without changing cycle behavior.