Evolution of Programming Languages Evolution of Programming Languages

Total Page:16

File Type:pdf, Size:1020Kb

Evolution of Programming Languages Evolution of Programming Languages Levels of Abstraction What to expect from the course? Problem Domain (stacks, tables) Superficially : Features in Java, C#, C++, Scheme, Scala Java, C#, Jython, Scala Broader Perspective : (Class Hierarchies) Paradigms : Imperative, Functional, Object-oriented Concepts : Ada » Abstract Data Types; Encapsulation C++ (ADTs) Pascal (int, ..., arrays) C » Features for Reuse – Class hierarchy; Polymorphism Assembly Languages (X86,MIPS) » Features for Reliability Abstract (Java Bytecode, MSIL) – Strong typing Machine (char, int) – Exception mechanism » Recursion and List Processing. cs480(Prasad) L0Intro 1 cs480(Prasad) L0Intro 2 Related Languages Example: Simple Language Design Issue Java Reserving keywords contributes to simplicity. C++, C# IF IF = THEN THEN THEN=ELSE; Scala, Jython (Confusing but legal in PL/I) Modula-2, Modula-3, Oberon Control Abstraction Eiffel, Ada-95 if C then S1 else S2 vs Scheme if C goto 1; LISP, Common LISP S2; ML (* FORTRAN *) Haskell goto 2; 1: S1; 2: cs480(Prasad) L0Intro 3 1 1 Evolution of Programming Languages Evolution of Programming Languages • FORTRAN ( FORmula TRANslator) Goals : Scientific Computations • ALGOL- 60 (ALGOrithmic Language) Efficiency of execution Goals : Communicating Algorithms Compile-time storage determination Features : Block Structure (Top-down design) Features : Syypmbolic Expressions Recursion (Problem -solving strategy) Subprograms BNF - Specification Absence of Recursion (Peter Naur : 2005 Turing Award) (John Backus : 1977 Turing Award) • LISP (LISt Processing) • COBOL Goals : Manipulating symbolic information Goal: Business Application Features : List Primitives Features : Data Definition and File Handling Interpreters / Environment (Grace Murray Hopper) (John McCarthy : 1971 Turing Award) cs480(Prasad) L0Intro 5 cs480(Prasad) L0Intro 6 C.A.R Hoare On Algol-60 Evolution of Programming Languages Here is a language so far ahead of its time, that it • PL / 1 was not only an improvement on its predecessors, FORTRAN + COBOL + SNOBOL+ but also on nearly all its successors. ... + concurrency + ... I conclude that there are two ways of constructing “ When FORTRAN has been called infantile a software design: One way is to make it so simple disorder, full PL /1, with its growth that there are obviously no deficiencies and the characteristics of a dangerous tumor, other way is to make it so complicated that there could turn out to be a fatal disease.” are no obvious deficiencies. ---- E. W. Dijkstra (C. A. R. Hoare : 1980 Turing Award) (1972 Turing Award Lecture) cs480(Prasad) L0Intro 7 cs480(Prasad) L0Intro 8 2 2 Evolution of Programming Languages On C and C++ • SIMULA (SIMULAtion LAnguage) C makes it easy to shoot yourself in the foot, C++ makes it harder, but when you do, it blows away Features : Data Abstraction . your whole leg. -- Bjarne Stroustrup Class Hierarchies. (Inheritance) (O. J. Dahl, K. Nygaard : 2001 Turing Award) • C The last good thing written in C was Franz Goal : Systems Programming Schubert's Symphony number 9. Features : Coding language for Unix. Portability. C is quirky, flawed, and an enormous success. (D. Richie and K. Thompson : 1983 Turing Award) -- Dennis M. Ritchie. cs480(Prasad) L0Intro 9 cs480(Prasad) L0Intro 10 Evolution of Programming Languages On Type System; Efficiency • Pascal Goal : Structured Programming, Compiler writing. Type security is intended not so much to Features : inspire programmers as to protect them • Rich set of data types for efficient from their own not inconsiderable frailties. algorithm design • E.g., Records, sets, ... MiiidihMore computing sins are committed in the • Variety of “readable” single-entry name of efficiency (without necessarily single-exit control structures • E.g., for-loop, while-loop,... achieving it) than for any other single • Efficient Implementation reason - including blind stupidity. • Recursive descent parsing -- William A. Wulf (N. Wirth : 1984 Turing Award) cs480(Prasad) L0Intro 11 cs480(Prasad) L0Intro 12 3 3 Other Languages Modern Scripting Languages Functional » Common LISP, Scheme Multiparadigm Constructs = » ML, Haskell (Robin Milner : 1991 Turing Award (for ML)) OOP style + Functional style Logic (+ Ease of prototyping (Interpreter-based)) »Prolog Object-oriented » Smalltalk, Eiffel, Java, C# Examples: Python, Ruby, PERL, PHP, …, (Alan Kay : 2003 Turing Award (for SmallTalk)) » C++, Ada-95, CLU JPython, JRuby, …,CAML, F# (Barbara Liskov: 2009 Turing Award (for CLU)) » Modula-3, Oberon Scala, … Application specific languages and tools cs480(Prasad) L0Intro 13 cs480(Prasad) L0Intro 14 On Comparing Languages I have reaffirmed a long-standing and strongly held view: Language comparisons are rarely meaningful and even less often fair. A good comparison of major programming languages requires more effort than most people are willing to spend, experience in a wide range of application areas, a rigid maintenance of a detached and impartial point of view, and a sense of fairness. Bjarne Stroustrup, The Design and Evolution of C++ cs480(Prasad) L0Intro 15 4 4.
Recommended publications
  • Computing Versus Human Thinking
    By Peter Naur, recipient of ACM’s 2005 A.M. Turing Award Computing Versus Human Thinking n this presentation I shall give you an overview of efforts. Indeed, I have found that a large part of what Imy works from the past fifty years concerning the is currently said about human thinking and about sci- issue given in the title. Concerning this title I entific and scholarly activity is false and harmful to invite you to note particularly the middle word, ‘ver- our understanding. I realize that my presentation of sus’. This word points to the tendency of my efforts some of these issues may be offensive to you. This I around this theme, to wit, to clarify the contrast regret, but it cannot be avoided. between the two items, computing and human thinking. This tendency of my work has found its DESCRIPTION AS THE CORE ISSUE OF SCIENCE AND ultimate fulfilment in my latest result, which is a SCHOLARSHIP description of the nervous system showing that this The tone of critique and rejection of established system has no similarity whatever to a computer. ideas has its roots in my earliest activity, from its very It is ironic that my present award lecture is given beginning more than fifty years ago. Already in my under the title of Turing. As a matter of fact, one part work in astronomy, around 1955, a decisive item in of my work concerning computing and human think- my awareness came from Bertrand Russell’s explicit ing has been an explicit critique, or rejection, of the rejection of any notion of cause as a central issue of ideas of one prominent contribution from Alan Tur- scientific work.
    [Show full text]
  • An Early Program Proof by Alan Turing F
    An Early Program Proof by Alan Turing F. L. MORRIS AND C. B. JONES The paper reproduces, with typographical corrections and comments, a 7 949 paper by Alan Turing that foreshadows much subsequent work in program proving. Categories and Subject Descriptors: 0.2.4 [Software Engineeringj- correctness proofs; F.3.1 [Logics and Meanings of Programs]-assertions; K.2 [History of Computing]-software General Terms: Verification Additional Key Words and Phrases: A. M. Turing Introduction The standard references for work on program proofs b) have been omitted in the commentary, and ten attribute the early statement of direction to John other identifiers are written incorrectly. It would ap- McCarthy (e.g., McCarthy 1963); the first workable pear to be worth correcting these errors and com- methods to Peter Naur (1966) and Robert Floyd menting on the proof from the viewpoint of subse- (1967); and the provision of more formal systems to quent work on program proofs. C. A. R. Hoare (1969) and Edsger Dijkstra (1976). The Turing delivered this paper in June 1949, at the early papers of some of the computing pioneers, how- inaugural conference of the EDSAC, the computer at ever, show an awareness of the need for proofs of Cambridge University built under the direction of program correctness and even present workable meth- Maurice V. Wilkes. Turing had been writing programs ods (e.g., Goldstine and von Neumann 1947; Turing for an electronic computer since the end of 1945-at 1949). first for the proposed ACE, the computer project at the The 1949 paper by Alan M.
    [Show full text]
  • Internet Engineering Jan Nikodem, Ph.D. Software Engineering
    Internet Engineering Jan Nikodem, Ph.D. Software Engineering Theengineering paradigm Software Engineering Lecture 3 The term "software crisis" was coined at the first NATO Software Engineering Conference in 1968 by: Friedrich. L. Bauer Nationality;German, mathematician, theoretical physicist, Technical University of Munich Friedrich L. Bauer 1924 3/24 The term "software crisis" was coined at the first NATO Software Engineering Conference in 1968 by: Peter Naur Nationality;Dutch, astronomer, Regnecentralen, Niels Bohr Institute, Technical University of Denmark, University of Copenhagen. Peter Naur 1928 4/24 Whatshouldbe ourresponse to software crisis which provided with too little quality, too late deliver and over budget? Nationality;Dutch, astronomer, Regnecentralen, Niels Bohr Institute, Technical University of Denmark, University of Copenhagen. Peter Naur 1928 5/24 Software should following an engineering paradigm NATO conference in Garmisch-Partenkirchen, 1968 Peter Naur 1928 6/24 The hope is that the progress in hardware will cure all software ills. The Oberon System User Guide and Programmer's Manual. ACM Press Nationality;Swiss, electrical engineer, computer scientist ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser 7/24 However, a critical observer may notethat software manages to outgrow hardware in size and sluggishness. The Oberon System User Guide and Programmer's Manual. ACM Press Nationality;Swiss, electrical engineer, computer scientist ETH Zürich, IBM Zürich Research Laboratory, Institute for Media Communications Martin Reiser 8/24 Wirth's computing adage Software is getting slower more rapidly than hardware becomes faster. Nationality;Swiss, electronic engineer, computer scientist ETH Zürich, University of California, Berkeley, Stanford University University of Zurich. Xerox PARC.
    [Show full text]
  • Structured Programming A.P.I.C
    ¢ . , v'~.1 c: STRUCTURED PROGRAMMING A.P.I.C. Studies in Data Processing General Editor: C. A. R. Hoare 1. Some Commercial Autocodes. A Comparative Study E. L. WiUey, A. d'Agapeyeff, Marion Tribe, B. J. Gibbens and Michelle Clarke. 2. A Primer of ALGOL 60 Programming E. W. Dijkstra 3. Input Language for Automatic Programming A. P. Yershov, G. I. Kozhukhin and U. Voloshin 4. Introduction to System Programming Edited by Peter Wegner 5. ALGOL 60 Implementation. The translation and use of Algol 60 Programs on a Computer B. RandeU and L. J. Russell 6. Dictionary for Computer Languages Hans Breuer 7. The Alpha Automatic Programming System Edited by A. P. Yershov 8. Structured Programming O.-J. Dahl, E. W. Dijkstra and C. A. R. Hoare In preparation Operating Systems Techniques Edited by C. A. R. Hoare and R. H. Perrott A.P.I.C. Studies in Data Processing No. 8 STRUCTURED PROGRAMMING O.-J. DAHL Universitet i Oslo, Matematisk Institut, Blindern, Oslo, Norway E. W. DIJKSTRA Department of Mathematics, Technological University, Eindhoven, The Netherlands C. A. R. HOARE Department of Computer Science, The Queen's University of Belfast, Belfast, Northern Ireland 1972 ACADEMIC PRESS LONDON AND NEW YORK ACADEMIC PRESS INC. (LONDON) LTD. 24]28 Oval Road, London NW1 United States Edition published by ACADEMIC PRESS INC. 111 Fifth Avenue New York, New York 10003 Copyright © 1972 by ACADEMIC PRESS INC. (LONDON) LTD. Second printing 1973 All Rights Reserved No part of this book may be reproduced in any form by photostat, microfilm, or any other means, without written permission from the publishers Library of Congress Catalog Card Number: 72-84452 ISBN: 0--12-200550-3 PRINTED IN GREAT BRITAIN BY WHITSTABLE LITHO~ STRAKER BROTHERS LTD.
    [Show full text]
  • Ebook Download Pluralism in Software Engineering : Turing
    PLURALISM IN SOFTWARE ENGINEERING : TURING AWARD WINNER PETER NAUR EXPLAINS PDF, EPUB, EBOOK Edgar G Daylight | 134 pages | 19 Oct 2011 | Lonely Scholar | 9789491386008 | English | none Pluralism in Software Engineering : Turing Award Winner Peter Naur Explains PDF Book Ludwig Wittgenstein, by contrast, opposed a rational metaphysical view to our now digital world. By penetrating deeply into the research of William James, Naur gradually developed his own theory of how mental life is like at the neural level of the nervous system. Peter Straub Books. In he received his PhD in astronomy and in he joined the staff of Regnecentralen, specializing in high-level programming languages. Proteomics 14 , , Sort order. Refresh and try again. People in the automotive industry who have patience with my philosophical reflections often end up falling into Dreyfus's trap by saying the following:. Packaging should be the same as what is found in a retail store, unless the item is handmade or was packaged by the manufacturer in non-retail packaging, such as an unprinted box or plastic bag. The flight management system for an Airbus A is software. Want to Read saving…. Lists with This Book. Todos tus libros Pluralism in Software Engineering. Our general desire to make AI more aware of the world as a whole instead of a set of rules notwithstanding, let's remember that adding rules to the training set for every new situation is more or less what happened with evolution. Steven Chang marked it as to-read Nov 18, Help Privacy Terms. Friday, July 24, Available from Amazon and many other stores.
    [Show full text]
  • Halting Problems: a Historical Reading of a Paradigmatic Computer Science Problem
    PROGRAMme Autumn workshop 2018, Bertinoro L. De Mol Halting problems: a historical reading of a paradigmatic computer science problem Liesbeth De Mol1 and Edgar G. Daylight2 1 CNRS, UMR 8163 Savoirs, Textes, Langage, Universit´e de Lille, [email protected] 2 Siegen University, [email protected] 1 PROGRAMme Autumn workshop 2018, Bertinoro L. De Mol and E.G. Daylight Introduction (1) \The improbable symbolism of Peano, Russel, and Whitehead, the analysis of proofs by flowcharts spearheaded by Gentzen, the definition of computability by Church and Turing, all inventions motivated by the purest of mathematics, mark the beginning of the computer revolution. Once more, we find a confirmation of the sentence Leonardo jotted despondently on one of those rambling sheets where he confided his innermost thoughts: `Theory is the captain, and application the soldier.' " (Metropolis, Howlett and Rota, 1980) Introduction 2 PROGRAMme Autumn workshop 2018, Bertinoro L. De Mol and E.G. Daylight Introduction (2) Why is this `improbable' symbolism considered relevant in comput- ing? ) Different non-excluding answers... 1. (the socio-historical answers) studying social and institutional developments in computing to understand why logic, or, theory, was/is considered to be the captain (or not) e.g. need for logic framed in CS's struggle for disciplinary identity and independence (cf (Tedre 2015)) 2. (the philosophico-historical answers) studying history of computing on a more technical level to understand why and how logic (or theory) are in- troduced in the computing practices { question: is there something to com- puting which makes logic epistemologically relevant to it? ) significance of combining the different answers (and the respective approaches they result in) ) In this talk: focus on paradigmatic \problem" of (theoretical) computer science { the halting problem Introduction 3 PROGRAMme Autumn workshop 2018, Bertinoro L.
    [Show full text]
  • The Programmer As a Young Dog
    The Programmer as a Young Dog (1976) This autobiographical sketch describes the beginning of the author’s career at the Danish computer company Regnecentralen from 1963 to 1970. (The title is inspired by James Joyce’s “A Portrait of the Artist as a Young Man” and Dylan Thomas’s “Portrait of the Artist as a Young Dog.”) After three years in Regnecentralen’s compiler group, the author got the chance to design the architecture of the RC 4000 computer. In 1967, he became Head of the Software Development group that designed the RC 4000 multiprogramming system. The article was written in memory of Niels Ivar Bech, the dynamic director of Regnecentralen, who inspired a generation of young Danes to make unique contributions to computing. I came to Regnecentralen in 1963 to work with Peter Naur and Jrn Jensen. The two of them worked so closely together that they hardly needed to say anything to solve a problem. I remember a discussion where Peter was writing something on the blackboard, when Jrn suddenly said “but Peter ...” and immediately was interrupted with the reply “yes, of course, Jrn.” I swear that nothing else was said. It made quite an impression on me, especially since I didn’t even know what the discussion was about in the rst place. After a two-year apprenticeship as a systems programmer, I wanted to travel abroad and work for IBM in Winchester in Southern England. At that time Henning Isaksson was planning to build a process control computer for Haldor Topse, Ltd. Henning had asked Niels Ivar Bech for a systems programmer for quite some time.
    [Show full text]
  • Report on the Algorithmic Language ALGOL 60
    Reprinted from the COMMUNICATIONS OF THE ASSOCIATION FOR COMPUTING MACHINERY Vol. 3, No.5, May 1960 Made in U.S.A. With tYPographical corrections as of June ~8, 1980 Report on the Algorithmic Language ALGOL 60 PETER NAUR (Editor) J. W. BACKUS C. KATZ H. RUTISHAUSER J. H. WEGSTEIN F.L.BAUER J. MCCARTHY K. SAMELSON A. VAN WIJNGAARDEN J. GREEN A. J. PERLIS B. VAUQUOIS M. WOODGER Dedicated to the Memory of WILLIAM TURANSKI INTRODUCTION Background Meanwhile, in the United States, anyone who wished to After the publication of a preliminary report on the suggest changes or corrections to ALGOL was requested to send his comments to the ACM Communications where algorithmic language ALGOL,!' 2 as prepared at a conference in Zurich in 1958, much interest in the ALGOL language they were published. These comments then became the developed. basis of consideration for changes in the ALGOL language. As a result of an informal meeting held at Mainz in Both the SHARE and USE organizations established November 1958, about forty interested persons from ALGOL working groups, and both organizations were several European countries held an ALGOL implementation represented on the ACM Committee on Programming conference in Copenhagen in February 1959. A "hardware Languages. The ACM Committee met in Washington in group" was formed for working cooperatively right down November 1959 and considered all comments on ALGOL to the level of the paper tape code. This conference also that had been sent to the ACM Communications. Also, led to the publication by Regnecentralen, Copenhagen, of seven representatives were selected to attend the January an ALGOL Bulletin, edited by Peter Naur, which served 1960 international conference.
    [Show full text]
  • Oral History Interview with David J. Wheeler
    An Interview with DAVID J. WHEELER OH 132 Conducted by William Aspray on 14 May 1987 Princeton, NJ Charles Babbage Institute The Center for the History of Information Processing University of Minnesota, Minneapolis Copyright, Charles Babbage Institute 1 David J. Wheeler Interview 14 May 1987 Abstract Wheeler, who was a research student at the University Mathematical Laboratory at Cambridge from 1948-51, begins with a discussion of the EDSAC project during his tenure. He compares the research orientation and the programming methods at Cambridge with those at the Institute for Advanced Study. He points out that, while the Cambridge group was motivated to process many smaller projects from the larger university community, the Institute was involved with a smaller number of larger projects. Wheeler mentions some of the projects that were run on the EDSAC, the user-oriented programming methods that developed at the laboratory, and the influence of the EDSAC model on the ILLIAC, the ORDVAC, and the IBM 701. He also discusses the weekly meetings held in conjunction with the National Physical Laboratory, the University of Birmingham, and the Telecommunications Research Establishment. These were attended by visitors from other British institutions as well as from the continent and the United States. Wheeler notes visits by Douglas Hartree (of Cavendish Laboratory), Nelson Blackman (of ONR), Peter Naur, Aad van Wijngarden, Arthur van der Poel, Friedrich L. Bauer, and Louis Couffignal. In the final part of the interview Wheeler discusses his visit to Illinois where he worked on the ILLIAC and taught from September 1951 to September 1953. 2 DAVID J.
    [Show full text]
  • A Programmer's Story. the Life of a Computer Pioneer
    A PROGRAMMER’S STORY The Life of a Computer Pioneer PER BRINCH HANSEN FOR CHARLES HAYDEN Copyright c 2004 by Per Brinch Hansen. All rights reserved. Per Brinch Hansen 5070 Pine Valley Drive, Fayetteville, NY 13066, USA CONTENTS Acknowledgments v 1 Learning to Read and Write 1938–57 1 Nobody ever writes two books – My parents – Hitler occupies Denmark – Talking in kindergarten – A visionary teacher – The class newspaper – “The topic” – An elite high school – Variety of teachers – Chemical experiments – Playing tennis with a champion – Listening to jazz – “Ulysses” and other novels. 2 Choosing a Career 1957–63 17 Advice from a professor – Technical University of Denmark – rsted’s inuence – Distant professors – Easter brew – Fired for being late – International exchange student – Masers and lasers – Radio talk — Graduation trip to Yugoslavia – An attractive tourist guide – Master of Science – Professional goals. 3 Learning from the Masters 1963–66 35 Regnecentralen – Algol 60 – Peter Naur and Jrn Jensen – Dask and Gier Algol – The mysterious Cobol 61 report – I join the compiler group – Playing roulette at Marienlyst resort – Jump- starting Siemens Cobol at Mogenstrup Inn – Negotiating salary – Compiler testing in Munich – Naur and Dijkstra smile in Stock- holm – The Cobol compiler is nished – Milena and I are married in Slovenia. 4 Young Man in a Hurr 1966–70 59 Naur’s vision of datalogy – Architect of the RC 4000 computer – Programming a real-time system – Working with Henning Isaks- son, Peter Kraft, and Charles Simonyi – Edsger Dijkstra’s inu- ence – Head of software development – Risking my future at Hotel Marina – The RC 4000 multiprogramming system – I meet Edsger Dijkstra, Niklaus Wirth, and Tony Hoare – The genius of Niels Ivar Bech.
    [Show full text]
  • Revised Report on the Algorithmic Language Algol 60
    Revised Report on the Algorithmic Language Algol 60 By J.W. Backus, F.L. Bauer, J.Green, C. Katz, J. McCarthy P. Naur, A.J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois J.H. Wegstein, A. van Wijngaarden, M. Woodger Edited by Peter Naur Dedicated to the memory of William Turanski Summary. The report gives a complete defining description of the international algorithmic language Algol 60. This is a language suitable for expressing a large class of numerical processes in a form sufficiently concise for direct automatic translation into the language of programmed automatic computers. The introduction contains an account of the preparatory work leading up to the final conference, where the language was defined. In addi- tion the notions reference language, publication language, and hardware representations are explained. In the first chapter a survey of the basic constituents and features of the language is given, and the formal notation, by which the syntactic structure is defined, is explained. The second chapter lists all the basic symbols, and the syntactic units known as identifiers, numbers, and strings are defined. Further some important notions such as quantity and value are defined. The third chapter explains the rules for forming expressions and the meaning of these expressions. Three different types of expressions exist: arithmetic, Boolean (logical), and designational. The fourth chapter describes the operational units of the language, known as statements. The basic statements are: assignment statements (evalu- ation of a formula), go to statements (explicit break of the sequence of execution of statements), dummy statements, and procedure statements (call for execution of a closed process, defined by a procedure declaration).
    [Show full text]
  • Wirth Transcript Final
    A. M. Turing Award Oral History Interview with Niklaus Wirth by Elena Trichina ETH, Zürich, Switzerland March 13, 2018 Trichina: My name is Elena Trichina. It is my honor to interview Professor Niklaus Wirth for the Turing Award Winners Project of the Association for Computing Machinery, the ACM. The Turing Award, sometimes referred to as “the Nobel Prize of computing,” is given annually for major contributions of lasting importance in computing. Professor Wirth received his award in 1984 in recognition of his outstanding work in developing a sequence of programming languages – Euler, Algol-W, Pascal, Modula. The hallmarks of Wirth’s languages are their simplicity, economy of design, and high-level engineering. We will talk about it and many other things later today in the interview that takes place on the 13th of March, 2018, in the Swiss Federal Institute of Technology. So we start. Ready? Guten Tag, Niklaus. Gruetzi. Wirth: Добрый ден, Елена Василевна Здравствуи [Good morning, Elena. Hello. – ed.] Trichina: Well, although your command of Russian is sufficient, my command of Swiss German is a little bit rudimentary. Shall we continue in one of the languages where we both feel comfortable? What would it be? French? English? Wirth: Oh, I think English is better for me. Yes, yes. Trichina: Okay. It’s probably better for the audience. [laughs] Wirth: Okay. True. Trichina: Okay. We continue in English. Here in front of me there is a list of the most important days in your life. You were born in February 1934 in Winterthur, which is a sort of middle-size industrial town in Switzerland.
    [Show full text]