Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0011
S. Dasgupta
At first blush, computing and biology seem an odd couple, yet they formed a liaison of sorts from the very first years of the electronic digital computer. Following a seminal paper published in 1943 by neurophysiologist Warren McCulloch and mathematical logician Warren Pitts on a mathematical model of neuronal activity, John von Neumann of the Institute of Advanced Study, Princeton, presented at a symposium in 1948 a paper that compared the behaviors of computer circuits and neuronal circuits in the brain. The resulting publication was the fountainhead of what came to be called cellular automata in the 1960s. Von Neumann’s insight was the parallel between the abstraction of biological neurons (nerve cells) as natural binary (on–off) switches and the abstraction of physical computer circuit elements (at the time, relays and vacuum tubes) as artificial binary switches. His ambition was to unify the two and construct a formal universal theory. One remarkable aspect of von Neumann’s program was inspired by the biology: His universal automata must be able to self-reproduce. So his neuron-like automata must be both computational and constructive. In 1955, invited by Yale University to deliver the Silliman Lectures for 1956, von Neumann chose as his topic the relationship between the computer and the brain. He died before being able to deliver the lectures, but the unfinished manuscript was published by Yale University Press under the title The Computer and the Brain (1958). Von Neumann’s definitive writings on self-reproducing cellular automata, edited by his one-time collaborator Arthur Burks of the University of Michigan, was eventually published in 1966 as the book Theory of Self-Reproducing Automata. A possible structure of a von Neumann–style cellular automaton is depicted in Figure 7.1. It comprises a (finite or infinite) configuration of cells in which a cell can be in one of a finite set of states. The state of a cell at any time t is determined by its own state and those of its immediate neighbors in the preceding point of time t – 1, according to a state transition rule.
{"title":"Making (Bio)Logical Connections","authors":"S. Dasgupta","doi":"10.1093/oso/9780190843861.003.0011","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0011","url":null,"abstract":"At first blush, computing and biology seem an odd couple, yet they formed a liaison of sorts from the very first years of the electronic digital computer. Following a seminal paper published in 1943 by neurophysiologist Warren McCulloch and mathematical logician Warren Pitts on a mathematical model of neuronal activity, John von Neumann of the Institute of Advanced Study, Princeton, presented at a symposium in 1948 a paper that compared the behaviors of computer circuits and neuronal circuits in the brain. The resulting publication was the fountainhead of what came to be called cellular automata in the 1960s. Von Neumann’s insight was the parallel between the abstraction of biological neurons (nerve cells) as natural binary (on–off) switches and the abstraction of physical computer circuit elements (at the time, relays and vacuum tubes) as artificial binary switches. His ambition was to unify the two and construct a formal universal theory. One remarkable aspect of von Neumann’s program was inspired by the biology: His universal automata must be able to self-reproduce. So his neuron-like automata must be both computational and constructive. In 1955, invited by Yale University to deliver the Silliman Lectures for 1956, von Neumann chose as his topic the relationship between the computer and the brain. He died before being able to deliver the lectures, but the unfinished manuscript was published by Yale University Press under the title The Computer and the Brain (1958). Von Neumann’s definitive writings on self-reproducing cellular automata, edited by his one-time collaborator Arthur Burks of the University of Michigan, was eventually published in 1966 as the book Theory of Self-Reproducing Automata. A possible structure of a von Neumann–style cellular automaton is depicted in Figure 7.1. It comprises a (finite or infinite) configuration of cells in which a cell can be in one of a finite set of states. The state of a cell at any time t is determined by its own state and those of its immediate neighbors in the preceding point of time t – 1, according to a state transition rule.","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130507012","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0010
S. Dasgupta
Human Problem Solving (1972) by Allen Newell and Herbert Simon of Carnegie-Mellon University, a tome of over 900 pages, was the summa of some 17 years of research by Newell, Simon, and their numerous associates (most notably Cliff Shaw, a highly gifted programmer at Rand Corporation) into “how humans think.” “How humans think” of course belonged historically to the psychologists’ turf. But what Newell and Simon meant by their project of “understanding . . . how humans think” was very different from how psychologists envisioned the problem before these two men invaded their milieu in 1958 with a paper on human problem solving in the prestigious Psychological Review. Indeed, professional psychologists must have looked at them askance. Neither was formally trained in psychology. Newell was originally trained as a mathematician, Simon as a political scientist. They both disdained disciplinary boundaries. Their curricula vitae proclaimed loudly their intellectual heterodoxy. At the time Human Problem Solving was published, Newell’s research interests straddled artificial intelligence, computer architecture, and (as we will see) what came to be called cognitive science. Simon’s multidisciplinary creativity—his reputation as a “Renaissance man”—encompassing administrative theory, economics, sociology, cognitive psychology, computer science, and the philosophy of science—was of near-mythical status by the early 1970s. Yet, for one prominent historian of psychology it would seem that what Newell and Simon did had nothing to do with the discipline: the third edition of Georgetown University psychologist Daniel N. Robinson’s An Intellectual History of Psychology (1995) makes no mention of Newell or Simon. Perhaps this was because, as Newell and Simon explained, their study of thinking adopted a pointedly information processing perspective. Information processing: Thus entered the computer into this conversation. But, Newell and Simon hastened to clarify, they were not suggesting a metaphor of humans as computers. Rather, they would propose an information processing system (IPS) that would serve to describe and explain how humans “process task-oriented symbolic information.” In other words, human problem solving, in their view, is an instance of representing information as symbols and processing them.
1972年,卡内基梅隆大学的艾伦·纽维尔和赫伯特·西蒙合著的《人类问题解决》(Human Problem Solving)一书,长达900多页,是纽维尔、西蒙和他们众多同事(最著名的是兰德公司(Rand Corporation)天才程序员克里夫·肖(Cliff Shaw))对“人类如何思考”的17年研究的总结。当然,“人类如何思考”在历史上属于心理学家的领地。但是纽厄尔和西蒙所说的“理解”项目的意思是……在1958年这两个人在著名的《心理学评论》上发表了一篇关于人类解决问题的论文之前,心理学家们对这个问题的设想是非常不同的。的确,专业的心理学家一定会用怀疑的眼光看待他们。两人都没有接受过正式的心理学训练。纽厄尔原本是一名数学家,西蒙则是一名政治学家。他们都蔑视学科界限。他们的简历大声宣告了他们在知识上的异端。在《人类问题解决》出版的时候,Newell的研究兴趣跨越了人工智能、计算机架构,以及后来被称为认知科学的东西(我们将会看到)。西蒙的多学科创造力——他被称为“文艺复兴时期的人”——涵盖了行政理论、经济学、社会学、认知心理学、计算机科学和科学哲学——在20世纪70年代初几乎处于神话般的地位。然而,对于一位著名的心理学历史学家来说,纽维尔和西蒙的所作所为似乎与这门学科毫无关系:乔治城大学心理学家丹尼尔·n·罗宾逊的《心理学思想史》(1995)第三版没有提到纽维尔和西蒙。正如纽维尔和西蒙所解释的那样,这可能是因为他们对思维的研究采用了一种明确的信息处理视角。信息处理:这样计算机就进入了对话。但是,纽厄尔和西蒙赶紧澄清,他们并不是在把人比喻成计算机。相反,他们会提出一种信息处理系统(IPS),用来描述和解释人类如何“处理面向任务的符号信息”。换句话说,在他们看来,人类解决问题就是将信息表示为符号并对其进行处理。
{"title":"A Symbolic Science Of Intelligence","authors":"S. Dasgupta","doi":"10.1093/oso/9780190843861.003.0010","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0010","url":null,"abstract":"Human Problem Solving (1972) by Allen Newell and Herbert Simon of Carnegie-Mellon University, a tome of over 900 pages, was the summa of some 17 years of research by Newell, Simon, and their numerous associates (most notably Cliff Shaw, a highly gifted programmer at Rand Corporation) into “how humans think.” “How humans think” of course belonged historically to the psychologists’ turf. But what Newell and Simon meant by their project of “understanding . . . how humans think” was very different from how psychologists envisioned the problem before these two men invaded their milieu in 1958 with a paper on human problem solving in the prestigious Psychological Review. Indeed, professional psychologists must have looked at them askance. Neither was formally trained in psychology. Newell was originally trained as a mathematician, Simon as a political scientist. They both disdained disciplinary boundaries. Their curricula vitae proclaimed loudly their intellectual heterodoxy. At the time Human Problem Solving was published, Newell’s research interests straddled artificial intelligence, computer architecture, and (as we will see) what came to be called cognitive science. Simon’s multidisciplinary creativity—his reputation as a “Renaissance man”—encompassing administrative theory, economics, sociology, cognitive psychology, computer science, and the philosophy of science—was of near-mythical status by the early 1970s. Yet, for one prominent historian of psychology it would seem that what Newell and Simon did had nothing to do with the discipline: the third edition of Georgetown University psychologist Daniel N. Robinson’s An Intellectual History of Psychology (1995) makes no mention of Newell or Simon. Perhaps this was because, as Newell and Simon explained, their study of thinking adopted a pointedly information processing perspective. Information processing: Thus entered the computer into this conversation. But, Newell and Simon hastened to clarify, they were not suggesting a metaphor of humans as computers. Rather, they would propose an information processing system (IPS) that would serve to describe and explain how humans “process task-oriented symbolic information.” In other words, human problem solving, in their view, is an instance of representing information as symbols and processing them.","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"400 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123507131","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0005
Subrata Dasgupta
In 1969 a “Report on the Algorithmic Language ALGOL 68” was published in the journal Numerische Mathematik. The authors of the report were also its designers, all academic computer scientists, Adriaan van Wijngaarden and C. H. A. Koster from the Netherlands and Barry Mailloux and John Peck from Canada. The Algol 68 project was, by then, 4 years old. The International Federation for Information Processing (IFIP) had under its umbrella a number of technical committees devoted to various specialties; each technical committee in turn had, under its jurisdiction, several working groups given to subspecialties. One such committee was the technical committee TC2, on programming; and in 1965 one of its constituent working groups WG2.1 (programming languages) mandated the development of a new international language as a successor to Algol 60. The latter, developed by an international committee of computer scientists between 1958 and 1963, had had considerable theoretical and practical impact in the first age of computer science. The Dutch mathematician-turned-computer scientist Adriaan van Wijngaarden, one of the codesigners of Algol 60 was entrusted with heading this task. The goal for Algol 68 was that it was to be a successor of Algol 60 and that it would have to be accepted and approved by IFIP as the “official” international programming language. Prior to its publication in 1969, the language went through a thorough process of review, first within the ranks of WG2.1, then by its umbrella body TC2, and finally by the IFIP General Assembly before being officially recommended for publication. The words review and recommendation mask the fact that the Algol 68 project manifested some of the features of the legislative process with its attendant politics. Thus, at a meeting of WG2.1 in Munich in December 1968— described by one of the Algol 68 codesigners John Peck as “dramatic”— where the Algol 68 report was to be approved by the working group, the designers presented their language proposal much as a lawmaker presents a bill to a legislative body; and just as the latter debates over the bill, oftentimes acrimoniously, before putting the bill to a vote, so also the Algol 68 proposal was debated over by members of WG2.1 and was finally voted on.
1969年,《Numerische Mathematik》杂志发表了一篇“关于算法语言ALGOL 68的报告”。该报告的作者也是它的设计者,都是学术计算机科学家,来自荷兰的Adriaan van Wijngaarden和C. H. A. Koster,以及来自加拿大的Barry Mailloux和John Peck。到那时,Algol 68项目已经进行了4年。国际信息处理联合会(信息处理联合会)旗下有若干专门从事各种专业的技术委员会;每个技术委员会在其管辖范围内又有若干分专业工作组。一个这样的委员会是TC2技术委员会,负责编程;1965年,它的一个组成工作组WG2.1(编程语言)授权开发一种新的国际语言作为Algol 60的继承者。后者是由一个国际计算机科学家委员会在1958年至1963年间开发的,在计算机科学的第一个时代具有相当大的理论和实践影响。荷兰数学家出身的计算机科学家阿德里安·范·维恩加登(Adriaan van Wijngaarden)是Algol 60的共同设计者之一,他被委托领导这项任务。Algol 68的目标是成为Algol 60的继承者,并且必须被IFIP接受和批准为“官方的”国际编程语言。在1969年出版之前,该语言经历了一个彻底的审查过程,首先是在WG2.1的级别内,然后是其总括机构TC2,最后是国际图联大会,然后才被正式推荐出版。“审查”和“建议”这两个词掩盖了这样一个事实,即Algol 68项目表现出了立法程序及其伴随的政治的一些特征。因此,1968年12月在慕尼黑召开的WG2.1会议上——被Algol 68的共同设计者之一约翰·派克称为“戏剧性的”——Algol 68报告将由工作组批准,设计师们向立法机构提交了他们的语言提案,就像立法者向立法机构提交法案一样;就像后者在将法案付诸表决之前对该法案进行的辩论一样,Algol 68提案也是由WG2.1的成员辩论并最终投票通过的。
{"title":"Algol Genes","authors":"Subrata Dasgupta","doi":"10.1093/oso/9780190843861.003.0005","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0005","url":null,"abstract":"In 1969 a “Report on the Algorithmic Language ALGOL 68” was published in the journal Numerische Mathematik. The authors of the report were also its designers, all academic computer scientists, Adriaan van Wijngaarden and C. H. A. Koster from the Netherlands and Barry Mailloux and John Peck from Canada. The Algol 68 project was, by then, 4 years old. The International Federation for Information Processing (IFIP) had under its umbrella a number of technical committees devoted to various specialties; each technical committee in turn had, under its jurisdiction, several working groups given to subspecialties. One such committee was the technical committee TC2, on programming; and in 1965 one of its constituent working groups WG2.1 (programming languages) mandated the development of a new international language as a successor to Algol 60. The latter, developed by an international committee of computer scientists between 1958 and 1963, had had considerable theoretical and practical impact in the first age of computer science. The Dutch mathematician-turned-computer scientist Adriaan van Wijngaarden, one of the codesigners of Algol 60 was entrusted with heading this task. The goal for Algol 68 was that it was to be a successor of Algol 60 and that it would have to be accepted and approved by IFIP as the “official” international programming language. Prior to its publication in 1969, the language went through a thorough process of review, first within the ranks of WG2.1, then by its umbrella body TC2, and finally by the IFIP General Assembly before being officially recommended for publication. The words review and recommendation mask the fact that the Algol 68 project manifested some of the features of the legislative process with its attendant politics. Thus, at a meeting of WG2.1 in Munich in December 1968— described by one of the Algol 68 codesigners John Peck as “dramatic”— where the Algol 68 report was to be approved by the working group, the designers presented their language proposal much as a lawmaker presents a bill to a legislative body; and just as the latter debates over the bill, oftentimes acrimoniously, before putting the bill to a vote, so also the Algol 68 proposal was debated over by members of WG2.1 and was finally voted on.","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"63 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126698041","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0007
S. Dasgupta
When Caxton Foster of the University of Massachusetts published his book Computer Architecture in 1970, this term was only just being recognized, reluctantly, by the computing community. This despite an influential paper published in 1964 by a group of IBM engineers on the “Architecture of the IBM System/360.” For instance, ACM’s “Curriculum 68” made no mention of the term in its elaborate description of the entire scope of computing as an academic discipline. Rather, in the late 1960s and well into the ’70s terms such as computer organization, computer structures, logical organization, computer systems organization, or, most blandly, computer design were preferred to describe computers in an abstract sort of way, independent of the physical (hardware) details. Thus a widely referenced paper by Michael Flynn of Stanford University, published in 1974, was titled “Trends and Problems in Computer Organization.” And Maurice Wilkes, even in the third edition of his Time-Sharing Computer Systems (1975) declined to use the term computer architecture. Yet, computer architecture as both an abstract way of looking at, understanding, and designing computers, and as a field of computer science emerged in the first years of the ’70s. The Institute of Electrical and Electronics Engineers (IEEE) founded a Technical Committee on Computer Architecture (TCCA) in 1970 to join the ranks of other specialist IEEE TCs. The Association for Computing Machinery (ACM) followed suit in 1971 by establishing, alongside other special-interest groups, the Special Interest Group on Computer Architecture (SIGARCH). And in 1974, the first of what came to be the annual International Symposium on Computer Architecture (ISCA) was held in Gainesville, Florida. By the end of the decade a series of significant textbooks and articles bearing the term computer architecture(s) had appeared. The reason for naming an aspect of the computer its “architecture” and the reason for naming an academic and research discipline “computer architecture” can be traced back to the mid-1940s and the paradigm-shaping unpublished reports by John von Neumann of the Institute of Advanced Study, Princeton, and his collaborators, Arthur Burks and Herman Goldstine.
当马萨诸塞大学的Caxton Foster在1970年出版他的《计算机体系结构》一书时,这个术语才刚刚被计算机界勉强认可。1964年,一群IBM工程师发表了一篇颇具影响力的论文,题目是“IBM System/360的架构”。例如,ACM的“课程68”在详细描述作为一门学术学科的整个计算范围时没有提到这个术语。相反,在20世纪60年代末和70年代,诸如计算机组织、计算机结构、逻辑组织、计算机系统组织,或者最温和地说,计算机设计等术语更倾向于以一种抽象的方式描述计算机,独立于物理(硬件)细节。因此,斯坦福大学的Michael Flynn在1974年发表了一篇被广泛引用的论文,题为“计算机组织的趋势和问题”。莫里斯·威尔克斯甚至在他的《分时计算机系统》(1975)的第三版中也拒绝使用“计算机体系结构”这个术语。然而,计算机体系结构既是一种观察、理解和设计计算机的抽象方式,也是计算机科学的一个领域,它出现在70年代的头几年。电气和电子工程师协会(IEEE)于1970年成立了计算机体系结构技术委员会(TCCA),加入了IEEE其他专业技术委员会的行列。计算机协会(ACM)紧随其后,于1971年与其他特殊兴趣小组一起成立了计算机体系结构特殊兴趣小组(SIGARCH)。1974年,第一届计算机体系结构国际年会(ISCA)在佛罗里达州的盖恩斯维尔举行。到90年代末,出现了一系列带有“计算机体系结构”一词的重要教科书和文章。将计算机的一个方面命名为“体系结构”的原因,以及将一门学术和研究学科命名为“计算机体系结构”的原因,可以追溯到20世纪40年代中期,以及普林斯顿高等研究院的约翰·冯·诺伊曼(John von Neumann)及其合作者亚瑟·伯克斯(Arthur Burks)和赫尔曼·戈德斯坦(Herman Goldstine)撰写的塑造范式的未发表报告。
{"title":"In The Name Of Architecture","authors":"S. Dasgupta","doi":"10.1093/oso/9780190843861.003.0007","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0007","url":null,"abstract":"When Caxton Foster of the University of Massachusetts published his book Computer Architecture in 1970, this term was only just being recognized, reluctantly, by the computing community. This despite an influential paper published in 1964 by a group of IBM engineers on the “Architecture of the IBM System/360.” For instance, ACM’s “Curriculum 68” made no mention of the term in its elaborate description of the entire scope of computing as an academic discipline. Rather, in the late 1960s and well into the ’70s terms such as computer organization, computer structures, logical organization, computer systems organization, or, most blandly, computer design were preferred to describe computers in an abstract sort of way, independent of the physical (hardware) details. Thus a widely referenced paper by Michael Flynn of Stanford University, published in 1974, was titled “Trends and Problems in Computer Organization.” And Maurice Wilkes, even in the third edition of his Time-Sharing Computer Systems (1975) declined to use the term computer architecture. Yet, computer architecture as both an abstract way of looking at, understanding, and designing computers, and as a field of computer science emerged in the first years of the ’70s. The Institute of Electrical and Electronics Engineers (IEEE) founded a Technical Committee on Computer Architecture (TCCA) in 1970 to join the ranks of other specialist IEEE TCs. The Association for Computing Machinery (ACM) followed suit in 1971 by establishing, alongside other special-interest groups, the Special Interest Group on Computer Architecture (SIGARCH). And in 1974, the first of what came to be the annual International Symposium on Computer Architecture (ISCA) was held in Gainesville, Florida. By the end of the decade a series of significant textbooks and articles bearing the term computer architecture(s) had appeared. The reason for naming an aspect of the computer its “architecture” and the reason for naming an academic and research discipline “computer architecture” can be traced back to the mid-1940s and the paradigm-shaping unpublished reports by John von Neumann of the Institute of Advanced Study, Princeton, and his collaborators, Arthur Burks and Herman Goldstine.","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132617301","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0006
S. Dasgupta
Creative people are driven by certain inner forces, inner needs that are part cognitive, part affective. One such force is intellectual curiosity: the need to know or understand. Another compelling drive is dissatisfaction with the status quo. We saw this as the force that impelled Nicklaus Wirth into creating Pascal (Chapter 1, Section 1.7). But few in the emerging computer science community of the first age of computer science epitomized this characteristic more fiercely than Edsger W. Dijkstra. In his case his discontent was with the direction programming had taken in the 1960s. And the strength of his dissatisfaction was never more evident than in a letter to the editor of the Communications of the ACM in 1968. The practice of communicating new scientific results by their discoverers in the form of compact letters to the editors of scientific journals was, of course, well established in the natural sciences. The British journal Nature (London) had established this tradition right from its inaugural issue in 1869. But in an upstart discipline, as computer science still was, this practice as a means of scientific communication was quite unusual. (In one of his celebrated handwritten “EWD notes,” Dijkstra, reflecting retrospectively, explained that his short paper was published as a letter to bypass the usual publication pipeline and that the editor who made this decision was Nicklaus Wirth.) Dijkstra had long been concerned with the question of program quality and how one may acquire confidence in the reliability or correctness of a program. But, as the title of the letter— “Goto Statement Considered Harmful”— tells us, the object of his discontent lay in the use of the goto statement— the unconditional branch available in one notation or another in most programming languages, including Algol-like ones. Dijkstra claimed that the quality of the programmers decreased as a function of the frequency of the goto statements in their programs. And so he proposed that the goto should be banished from all high- level programming languages.
有创造力的人受到某种内在力量的驱动,内在需求部分是认知的,部分是情感的。其中一种力量就是求知欲:求知或理解的需要。另一个令人信服的动力是对现状的不满。我们认为这是促使Nicklaus Wirth创造Pascal的力量(第1章,第1.7节)。但是,在计算机科学第一个时代的新兴计算机科学社区中,很少有人比Edsger W. Dijkstra更强烈地体现了这一特征。对他来说,不满的是20世纪60年代编程的发展方向。1968年,他给《美国计算机协会通讯》(Communications of the ACM)的编辑写了一封信,最明显地表达了他的不满。当然,在自然科学领域,发现者以紧凑的信件形式向科学期刊的编辑传达新的科学成果的做法已经根深蒂固。英国杂志《自然》(伦敦)从1869年创刊开始就确立了这一传统。但在一个新兴学科中,就像计算机科学一样,这种作为科学交流手段的做法是很不寻常的。(在他著名的手写“EWD笔记”中,迪克斯特拉回忆说,他的短文是作为一封信发表的,绕过了通常的出版渠道,做出这个决定的编辑是尼克劳斯·沃思(Nicklaus Wirth)。)Dijkstra长期以来一直关注程序质量问题,以及人们如何对程序的可靠性或正确性获得信心。但是,正如这封信的标题——“Goto语句被认为是有害的”——告诉我们的那样,他不满的对象在于Goto语句的使用——在大多数编程语言中,包括类似algol的语言,以一种或另一种符号提供的无条件分支。Dijkstra声称程序员的质量随着程序中goto语句的频率而下降。因此,他建议将goto从所有高级编程语言中去除。
{"title":"Abstractions All The Way","authors":"S. Dasgupta","doi":"10.1093/oso/9780190843861.003.0006","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0006","url":null,"abstract":"Creative people are driven by certain inner forces, inner needs that are part cognitive, part affective. One such force is intellectual curiosity: the need to know or understand. Another compelling drive is dissatisfaction with the status quo. We saw this as the force that impelled Nicklaus Wirth into creating Pascal (Chapter 1, Section 1.7). But few in the emerging computer science community of the first age of computer science epitomized this characteristic more fiercely than Edsger W. Dijkstra. In his case his discontent was with the direction programming had taken in the 1960s. And the strength of his dissatisfaction was never more evident than in a letter to the editor of the Communications of the ACM in 1968. The practice of communicating new scientific results by their discoverers in the form of compact letters to the editors of scientific journals was, of course, well established in the natural sciences. The British journal Nature (London) had established this tradition right from its inaugural issue in 1869. But in an upstart discipline, as computer science still was, this practice as a means of scientific communication was quite unusual. (In one of his celebrated handwritten “EWD notes,” Dijkstra, reflecting retrospectively, explained that his short paper was published as a letter to bypass the usual publication pipeline and that the editor who made this decision was Nicklaus Wirth.) Dijkstra had long been concerned with the question of program quality and how one may acquire confidence in the reliability or correctness of a program. But, as the title of the letter— “Goto Statement Considered Harmful”— tells us, the object of his discontent lay in the use of the goto statement— the unconditional branch available in one notation or another in most programming languages, including Algol-like ones. Dijkstra claimed that the quality of the programmers decreased as a function of the frequency of the goto statements in their programs. And so he proposed that the goto should be banished from all high- level programming languages.","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"55 1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116214506","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0008
S. Dasgupta
Every morning the first thing that X does is make tea for herself. She first turns on the stove and then while the stove ring is heating up, she pours water from the faucet into the kettle. She then places the kettle on the stove ring, now nicely hot, and while the water is being heated she puts tea bags into the teapot; she then pours milk from the milk carton into a milk jug and then puts the milk jug into the microwave oven. After the water starts to boil she pours water into teapot. And while the tea “gathers strength” in the teapot, she presses the time button on the microwave to start warming the milk. After the milk is warmed she first pours tea from the teapot into a teacup and then adds milk from the warmed milk jug to the tea in the cup. This tiny, humdrum, comforting, domestic scenario X enacts every morning has many (but not all) of the ingredients of a situation that involves the scope and limits of parallel processing. More precisely, the art of making tea as practiced by X entails a blend of both sequential and parallel events. We note that certain events can take place in parallel (or concurrently) because they do not interfere with one another; for example, the heating of the stove and the pouring of water into the kettle. But other events must be sequentially ordered either because they interfere with one another or because one event must complete before the other can begin. The kettle can be placed on the stove ring only after it has been filled with water; water can be poured into the teapot only after the water has boiled. But notice also that there is some flexibility in the ordering of X’s actions. She can defer turning on the stove until after the kettle is placed on the stove ring; she can alter the ordering of pouring water into the teapot and placing teabags into the pot; she could defer warming the milk in the microwave until the tea has brewed.
{"title":"Getting To Know Parallelism","authors":"S. Dasgupta","doi":"10.1093/oso/9780190843861.003.0008","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0008","url":null,"abstract":"Every morning the first thing that X does is make tea for herself. She first turns on the stove and then while the stove ring is heating up, she pours water from the faucet into the kettle. She then places the kettle on the stove ring, now nicely hot, and while the water is being heated she puts tea bags into the teapot; she then pours milk from the milk carton into a milk jug and then puts the milk jug into the microwave oven. After the water starts to boil she pours water into teapot. And while the tea “gathers strength” in the teapot, she presses the time button on the microwave to start warming the milk. After the milk is warmed she first pours tea from the teapot into a teacup and then adds milk from the warmed milk jug to the tea in the cup. This tiny, humdrum, comforting, domestic scenario X enacts every morning has many (but not all) of the ingredients of a situation that involves the scope and limits of parallel processing. More precisely, the art of making tea as practiced by X entails a blend of both sequential and parallel events. We note that certain events can take place in parallel (or concurrently) because they do not interfere with one another; for example, the heating of the stove and the pouring of water into the kettle. But other events must be sequentially ordered either because they interfere with one another or because one event must complete before the other can begin. The kettle can be placed on the stove ring only after it has been filled with water; water can be poured into the teapot only after the water has boiled. But notice also that there is some flexibility in the ordering of X’s actions. She can defer turning on the stove until after the kettle is placed on the stove ring; she can alter the ordering of pouring water into the teapot and placing teabags into the pot; she could defer warming the milk in the microwave until the tea has brewed. \u0000","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128864153","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2018-07-05DOI: 10.1093/oso/9780190843861.003.0009
S. Dasgupta
If social and behavioral scientists have harbored “physics envy” as some have wryly claimed—envy of its explanatory and predictive success— then computer scientists may be said to have suffered from “mathematics envy.” Interestingly, this envy was less a characteristic of the pioneers of digital computing of the 1940s and 1950s, the people who shed first light on the design of digital electronic computers, the first programming languages, the first operating systems, the first language translators, and so on—though most of them were trained as mathematicians. They were too busy learning the heuristic principles of computational artifacts. Rather, it was in the 1960s when we first find signs of a kind of mathematics envy, at least in some segments of the embryonic computer science community. It was as if, having discovered (or invented) the heuristic principles of practical computational artifacts, some felt the need to understand the underlying “science” of these artifacts—by which they meant its underlying mathematics and logic. Mathematics envy could be assuaged only by thinking mathematically about computational artifacts. Computer science would then be raised to the intellectual stature of, say, physics or indeed of mathematics itself if computer scientists could transform their discipline into a mathematical science. One cannot blame computer scientists who thought this way. The fact is, there is something about mathematics that situates it in a world of its own. “Mathematics is a unique aspect of human thought,” wrote hyperprolific science (fact and fiction) writer Isaac Asimov. And Asimov was by no means the first or only person to think so. But wherein lies the uniqueness of mathematical thinking? Perhaps the answer is that for many people, mathematics offers the following promises:The unearthliness of mathematical objects. The perfectness and exactness of mathematical concepts. An inexorable rigor of mathematical reasoning. The certainty of mathematical knowledge. The self-sufficiency of the mathematical universe. These promises are clearly enviable if they can be kept; usually, they are kept.
{"title":"Very Formal Affairs","authors":"S. Dasgupta","doi":"10.1093/oso/9780190843861.003.0009","DOIUrl":"https://doi.org/10.1093/oso/9780190843861.003.0009","url":null,"abstract":"If social and behavioral scientists have harbored “physics envy” as some have wryly claimed—envy of its explanatory and predictive success— then computer scientists may be said to have suffered from “mathematics envy.” Interestingly, this envy was less a characteristic of the pioneers of digital computing of the 1940s and 1950s, the people who shed first light on the design of digital electronic computers, the first programming languages, the first operating systems, the first language translators, and so on—though most of them were trained as mathematicians. They were too busy learning the heuristic principles of computational artifacts. Rather, it was in the 1960s when we first find signs of a kind of mathematics envy, at least in some segments of the embryonic computer science community. It was as if, having discovered (or invented) the heuristic principles of practical computational artifacts, some felt the need to understand the underlying “science” of these artifacts—by which they meant its underlying mathematics and logic. Mathematics envy could be assuaged only by thinking mathematically about computational artifacts. Computer science would then be raised to the intellectual stature of, say, physics or indeed of mathematics itself if computer scientists could transform their discipline into a mathematical science. One cannot blame computer scientists who thought this way. The fact is, there is something about mathematics that situates it in a world of its own. “Mathematics is a unique aspect of human thought,” wrote hyperprolific science (fact and fiction) writer Isaac Asimov. And Asimov was by no means the first or only person to think so. But wherein lies the uniqueness of mathematical thinking? Perhaps the answer is that for many people, mathematics offers the following promises:The unearthliness of mathematical objects. The perfectness and exactness of mathematical concepts. An inexorable rigor of mathematical reasoning. The certainty of mathematical knowledge. The self-sufficiency of the mathematical universe. These promises are clearly enviable if they can be kept; usually, they are kept.","PeriodicalId":133335,"journal":{"name":"The Second Age of Computer Science","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129824112","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}