Less than twenty years after computer science was able to establish itself as an academic discipline, a group of US computer scientists organized a conference on the history of programming languages. The conference is...
详细信息
Less than twenty years after computer science was able to establish itself as an academic discipline, a group of US computer scientists organized a conference on the history of programming languages. The conference is distinguished from other self-historicization projects by the organizer's claim to present an "accurate" account of their own discipline's history. However, the actors encountered challenges in terms of how to present their own history "objectively." How to deal with incomplete memories? How to avoid putting others in a bad light? There was far from agreement on these points and heated discussions ensued. Strategies had to be developed and compromises made to make the project a reality. The conference was intended to contribute to the history of computer science and the organizers sought exchange with professional historians. However, the project met with little interest among them. Rather, the discussion between the computer scientists and the historians shows how the history of science also struggled with questions of how to deal suitably with the past. In this respect, the Computer Scientists' Conference not only illuminates the history of computer science, but also offers a new perspective on the history of the history of science.
The history of computing usually focuses on achievements in Western universities and research centers and is mostly about what happened in the United States and Great Britain. However, in Eastern Europe, particularly ...
详细信息
The history of computing usually focuses on achievements in Western universities and research centers and is mostly about what happened in the United States and Great Britain. However, in Eastern Europe, particularly in war-torn Poland, where there was very little state funding, many highly original hardware and software projects were initiated. The small number of publications available to us, especially those in English, led to the belief that technological progress was the result of research carried out in Western countries alone. This article aims to fill this knowledge gap by focusing on the numerous research projects initiated in Polish universities and computer industries that unfortunately turned into dead ends as the result of socialist policies. These are references that cannot be ignored, not only for a historical reconstruction of the evolution of technology but also with regard to the social effects recorded in Poland immediately after the Second World War. The communist ideology, which pursued gender equality policies after the end of the war, encouraged women to pursue education, enabling the many female students enrolled in mathematics degree courses to specialize in "Maszyny Matematyczne" (mathematical machines) and become, like men, experts in computer programming and design. As well as highlighting the role that Poland played in the nascent "computer science" and providing detailed information on what women contributed, this article will explain why the success of the Polish computer industry was limited due to the nonexistent coordination between the communist states (Comecon).
The history of software development includes numerous textual and graphical ways to represent software structures and the mechanisms for executing high-level instructions. The proliferation of programminglanguages is...
详细信息
ISBN:
(纸本)9798400711800
The history of software development includes numerous textual and graphical ways to represent software structures and the mechanisms for executing high-level instructions. The proliferation of programminglanguages is a visible outcome of that effort, with many popular languages having a strong association with their creator(s). In this paper, we present a historically focused overview of many different types of software representations, primarily programminglanguages, but also graphical notations that can generate code in a programming language or be directly executed with associated tools. The paper then describes some of the characteristics that differentiate them from one another, and concludes with a review of guidelines for designing programminglanguages and notations.
The topics of structural proof theory and logic programming have influenced each other for more than three decades. Proof theory has contributed the notion of sequent calculus, linear logic, and higher-order quantific...
详细信息
While Emacs proponents largely agree that it is the world's greatest text editor, it is almost as much a Lisp machine disguised as an editor. Indeed, one of its chief appeals is that it is programmable via its own...
详细信息
While Emacs proponents largely agree that it is the world's greatest text editor, it is almost as much a Lisp machine disguised as an editor. Indeed, one of its chief appeals is that it is programmable via its own programming language. Emacs Lisp is a Lisp in the classic tradition. In this article, we present the history of this language over its more than 30 years of evolution. Its core has remained remarkably stable since its inception in 1985, in large part to preserve compatibility with the many third-party packages providing a multitude of extensions. Still, Emacs Lisp has evolved and continues to do so. Important aspects of Emacs Lisp have been shaped by concrete requirements of the editor it supports as well as implementation constraints. These requirements led to the choice of a Lisp dialect as Emacs's language in the first place, specifically its simplicity and dynamic nature: Loading additional Emacs packages or changing the ones in place occurs frequently, and having to restart the editor in order to re-compile or re-link the code would be unacceptable. Fulfilling this requirement in a more static language would have been difficult at best. One of Lisp's chief characteristics is its malleability through its uniform syntax and the use of macros. This has allowed the language to evolve much more rapidly and substantively than the evolution of its core would suggest, by letting Emacs packages provide new surface syntax alongside new functions. In particular, Emacs Lisp can be customized to look much like Common Lisp, and additional packages provide multiple-dispatch object systems, legible regular expressions, programmable pattern-matching constructs, generalized variables, and more. Still, the core has also evolved, albeit slowly. Most notably, it acquired support for lexical scoping. The timeline of Emacs Lisp development is closely tied to the projects and people who have shaped it over the years: We document Emacs Lisp history through its predecessors, M
How a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world's most widely used programming language. This paper tells ...
详细信息
How a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world's most widely used programming language. This paper tells the story of the creation, design, evolution, and standardization of the JavaScript language over the period of 1995-2015. But the story is not only about the technical details of the language. It is also the story of how people and organizations competed and collaborated to shape the JavaScript language which dominates the Web of 2020.
Germany, 1935: the engineer Konrad Zuse (1910-1995), in the living room of his Berlin house, devotes himself to the design and construction of a binary, programmable machine, the Z1, capable of processing data in a fa...
详细信息
Germany, 1935: the engineer Konrad Zuse (1910-1995), in the living room of his Berlin house, devotes himself to the design and construction of a binary, programmable machine, the Z1, capable of processing data in a fast and efficient way. While building his machines, he also started to devise a conceptual and notational system for writing 'programs' to execute applications much more complex than the basic arithmetic calculations. He delved deep into the study of formal logic in order to work out his "computation plan", the Plankalkul. Although the Plan Calculus didn't exercise much impact on German post-World War hardships, it displays all the traits currently recognized as standard features of modern programminglanguages. The aim of the present study is to highlight the general purpose and technical specifics of this language, its historical and scientific background, and the philosophical inspiration leading Konrad Zuse to employ the predicate logic in the formalization of the "computation projects" for his machines.
Patterns, micro-patterns, and nano-patterns have many applications: program comprehension, code transformations, documentation aids, improving code robustness, etc. This work revisits the notion of nano-patterns-origi...
详细信息
Patterns, micro-patterns, and nano-patterns have many applications: program comprehension, code transformations, documentation aids, improving code robustness, etc. This work revisits the notion of nano-patterns-originally an obiter dictum of the work on micro-patterns. Nano-patterns here are taken as more general than their previous definition in the literature: predicates on short code snippets that represent some common and elementary programming missions such as "for each m is an element of M do ...", or, "use x (but if x is null, y is a substitute)", which represent small and recurring programming idioms. With this generalization, we offer a taxonomized languageof nanos nano-patterns for Java. We also describe the process of pattern harvesting we used and the underlying rationale, including our proposed prevalence threshold criterion, which, by capitalizing on Hirsch's famous h-index, makes a robust yard-stick of the pattern's significance. An empirical survey of 78 Open Source Java projects indicates that the nano-patterns of our proposed language described here have a substantial prevalence in the code. About a third of the commands (executable statements) and half of the methods are instances of nano-patterns in the proposed language. Also, the language's prevalence is typically higher than that of languages harvested in a project specific, automated machine learning process. Nano-patterns are implementation/language level details for most high level software engineering purposes. One contribution made by the present paper is in identifying the clutter made by the snippets, appreciating its presence, and imposing order on it. The language, the nano-patterns in it, and the contributed automatic tool for tracing nano-patterns in code may help to deal systematically with this low level, yet significant, portion of code.
Beginning in the mid-1960s, electromechanical telecommunications switches were increasingly replaced by computer-controlled switches. Production and development of this equipment relied on the construction of its soft...
详细信息
Beginning in the mid-1960s, electromechanical telecommunications switches were increasingly replaced by computer-controlled switches. Production and development of this equipment relied on the construction of its software. This software was shaped by practices, ideas, and ideals appropriated from the computer industry and computer science as much as by concerns and constraints within the telecommunications industry.
暂无评论