Melvin Conway

Melvin Edward Conway is an American computer scientist, computer programmer, and hacker who coined what is now known as Conway's law: "Organizations, who design systems, are constrained to produce designs which are copies of the communication structures of these organizations."[1] The adage remains relevant in modern software engineering and is still being referenced and investigated.[2][3]

Apart from the above, Conway is perhaps most famous for developing the concept of coroutines. Conway coined the term coroutine in 1958 and he was the first to apply the concept to an assembly program.[4] He later authored a seminal paper on the subject of coroutines, titled "Design of a Separable Transition-diagram Compiler",[5] which included the first published explanation of the concept.[4] In this paper, he proposed organizing a compiler as a set of coroutines, which allows using separate passes while debugging and then running a single pass compiler in production. Another famous paper is his 1958 proposal of an UNCOL,[6] a Universal Computer Oriented Language, which attempted to provide a solution to economically produce compilers for new programming languages and computer architectures.

Conway wrote an assembler for the Burroughs model 220 computer called SAVE. The name SAVE was not an acronym, but a feature: programmers lost fewer punched card decks because they all had "SAVE" written on them.[7]

His work on Pascal compiler for Rockwell Semiconductor (an immediate-turnaround Pascal trainer for the Rockwell AIM-65) led to an arrangement between Apple and Think Technologies (where he served as a principal) under which the latter produced the original (1984) Mac Pascal and Apple II Instant Pascal.

In the 1970s, he was involved with the MUMPS (Massachusetts General Hospital Utility Multi-Programming System) medical programming language standard specification for the National Bureau of Standards.[8] He also wrote a reference book on MUMPS in 1983.[9]

Conway was granted a US patent in 2001 on "Dataflow processing with events", concerned with programming using graphical user interfaces. The patent expired in 2019.[10]

In 2002, Conway obtained a teacher license for high school math and physics in Massachusetts. He taught at Chelsea High School from 2002 to 2006.[11]

In 2024, Conway published an article called NEEDED: SYSTEMS THINKING IN PUBLIC AFFAIRS which summarizes his view that in order to understand human systems, one must focus on networks first, rather than actors. He posits that this is the barrier to building systems that are in alignment with human needs at scale.

  1. ^ Conway, Melvin E. (April 1968). "How do Committees Invent?". Datamation. 14 (5): 28–31. Archived from the original on 2019-10-10. Retrieved 2019-10-10. […] organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.
  2. ^ Kamola, Mariusz (2019). "How to Verify Conway's Law for Open Source Projects". IEEE Access. 7: 38469–38480. doi:10.1109/ACCESS.2019.2905671. ISSN 2169-3536.
  3. ^ Imtiaz, Salma; Ikram, Naveed (2017-01-27). "Dynamics of task allocation in global software development: Dynamics of task allocation in global software development". Journal of Software: Evolution and Process. 29 (1): e1832. doi:10.1002/smr.1832. S2CID 27961137.
  4. ^ a b Knuth, Donald Ervin (1997). Fundamental Algorithms (PDF). The Art of Computer Programming. Vol. 1 (3rd ed.). Addison-Wesley. Section 1.4.5: History and Bibliography, pp. 229. ISBN 978-0-201-89683-1. Archived (PDF) from the original on 2019-10-21. The word "coroutine" was coined by M. E. Conway in 1958, after he had developed the concept, and he first applied it to the construction of an assembly program. […] The first published explanation of the coroutine concept appeared much later in Conway's article "Design of a Separable Transition-Diagram Compiler," […]
  5. ^ Conway, Melvin E. (July 1963). "Design of a Separable Transition-diagram Compiler" (PDF). Communications of the ACM. 6 (7). ACM: 396–408. doi:10.1145/366663.366704. ISSN 0001-0782. S2CID 10559786.
  6. ^ Conway, Melvin E. (October 1958). "Proposal for an UNCOL". Communications of the ACM. 1 (10). ACM: 5–8. doi:10.1145/368924.368928. ISSN 0001-0782. S2CID 6797697.
  7. ^ Raymond, Eric S. (October 1996). The New Hacker's Dictionary (3rd ed.). Cambridge, Massachusetts: MIT Press. p. 124. ISBN 978-0-262-68092-9. The name 'SAVE' didn't stand for anything; it was just that you lost fewer card decks and listings because they all had SAVE written on them.
  8. ^ "Foreword: 1977 Version of ANSI Standard". The Annotated M[UMPS] Standards. MUMPS Development Committee. 29 November 2011. Retrieved 2019-10-21. MUMPS, an acronym for Massachusetts General Hospital Utility Multi-Programming System, is a high-level, interactive computer programming language […] Part I of this Standard, the MUMPS Language Specification, MDC/28, was prepared by Melvin E. Conway under Contract No. 5–35770 with the National Bureau of Standards.
  9. ^ Conway, Melvin E. (1983). Dayhoff, Ruth E. (ed.). Mumps Programming Reference Manual. MUMPS Users' Group. ISBN 0918118255. OCLC 9862807.
  10. ^ U.S. patent 6272672B1
  11. ^ Conway, Melvin E. "Mel Conway's Home Page". www.melconway.com. Retrieved 2019-10-06. In 2002 I obtained a license to teach high school math and physics in Massachusetts, and I taught at Chelsea High School from 2002 to 2006.