Melvin Conway Explained
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. 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.
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.[10]
Education
Selected publications
References
- Conway. Melvin E.. April 1968. How do Committees Invent?. live. Datamation. 14. 28–31. https://web.archive.org/web/20191010021833/http://www.melconway.com/Home/Committees_Paper.html. 2019-10-10. 2019-10-10. […] organizations which design systems […] are constrained to produce designs which are copies of the communication structures of these organizations.. 5.
- Kamola. Mariusz. 2019. How to Verify Conway's Law for Open Source Projects. IEEE Access. 7. 38469–38480. 10.1109/ACCESS.2019.2905671. 2169-3536. free.
- 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. en. 29. 1. e1832. 10.1002/smr.1832. 27961137 .
- Book: Knuth, Donald Ervin. The Art of Computer Programming. 1. Fundamental Algorithms. 3rd. Addison-Wesley. 1997. 978-0-201-89683-1. Section 1.4.5: History and Bibliography, pp. 229. live. https://web.archive.org/web/20191021162138/https://seriouscomputerist.atariverse.com/media/pdf/book/Art%20of%20Computer%20Programming%20-%20Volume%201%20(Fundamental%20Algorithms).pdf. 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," […].
- Conway. Melvin E.. Melvin Conway. July 1963. Design of a Separable Transition-diagram Compiler. Communications of the ACM. ACM. 6. 7. 396–408. 10.1145/366663.366704. 10559786. 0001-0782.
- Conway. Melvin E.. Melvin Conway. October 1958. Proposal for an UNCOL. Communications of the ACM. ACM. 1. 10. 5–8. 10.1145/368924.368928. 6797697. 0001-0782. free.
- Book: Raymond, Eric S.. The New Hacker's Dictionary. October 1996. MIT Press. 978-0-262-68092-9. 3rd. Cambridge, Massachusetts. 124. 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.. Eric S. Raymond.
- Web site: Foreword: 1977 Version of ANSI Standard. 29 November 2011. The Annotated M[UMPS] Standards. MUMPS Development Committee. 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..
- Book: Conway, Melvin E.. Mumps Programming Reference Manual. MUMPS Users' Group. 1983. 0918118255. Dayhoff. Ruth E.. 9862807.
- Web site: Mel Conway's Home Page. Conway. Melvin E.. www.melconway.com. 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..
- Web site: Melvin Edward Conway. Mathematics Genealogy Project. 2019-10-06.
- Web site: Mel Conway, Ph.D.. Conway. Melvin. November 7, 2009. Mel Conway’s Home Page. 2019-10-06.
External links