Konrad Zuse and Plankalkul

Total Page:16

File Type:pdf, Size:1020Kb

Konrad Zuse and Plankalkul CMSC 331 Fall 2004 • Early History : The first programmers • The 1940s: Von Neumann and Zuse • The 1950s: The First Programming Language • The 1960s: An Explosion in Programming languages • The 1970s: Simplicity, Abstraction, Study • The 1980s: Consolidation and New Directions • The 1990s: the internet and web • The 2000s: tbd CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 1 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 2 Konrad Zuse and Plankalkul Konrad Zuse began work on Plankalkul (plan calculus), the • Jacquard loom of early 1800s first algorithmic programming – Translated card patterns into cloth designs language, with an aim of creating the theoretical preconditions for • Charles Babbage’s analytical the formulation of problems of a engine (1830s & 40s) general nature. Programs were cards with data and operations Seven years earlier, Zuse had developed and built the world's • Ada Lovelace – first programmer first binary digital computer, the Z1. He completed the first fully “The engine can arrange and combine functional program-controlled its numerical quantities exactly as if electromechanical digital they were letters or any other general computer, the Z3, in 1941. symbols; And in fact might bring out Only the Z4 – the most its results in algebraic notation, were sophisticated of his creations -- provision made.” survived World War II. CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 3 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 4 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • Konrad Zuse (Plankalkul) – in Germany - in isolation because of the war A(7) := 5 * B(6) – defined Plankalkul (program calculus) circa 1945 but never implemented it. | 5 * B => A – Wrote algorithms in the language, including a program to play chess. V | 6 7 (subscripts) – His work finally published in 1972. S | 1.n 1.n (data types) – Included some advanced data type features such as » Floating point, used twos complement and hidden bits »Arrays » records (that could be nested) CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 5 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 6 John Von Neumann led a team that • Initial computers were programmed in raw built computers machine codes. with stored • These were entirely numeric. programs and a • What was wrong with using machine code? central Everything! processor • Poor readability ENIAC was • Poor modifiability also • Expression coding was tedious programmed • Inherit deficiencies of hardware, e.g., no with patch indexing or floating point numbers cords. Von Neuman with ENIAC CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 7 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 8 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • Short Code or SHORTCODE - John Mauchly, 1949. • Pseudocodes: interpreters for assembly language • Pseudocode interpreter for math problems, on • Fortran: the first higher level programming Eckert and Mauchly’s BINAC and later on UNIVAC I and II. language • Possibly the first attempt at a higher level language. • COBOL: he first business oriented language • Expressions were coded, left to right, e.g.: • Algol: one of the most influential programming X0 = sqrt(abs(Y0)) languages ever designed 00 X0 03 20 06 Y0 • Some operations: • LISP: the first language outside the von Neumann 01 – 06 abs 1n (n+2)nd power model 02 ) 07 + 2n (n+2)nd root 03 = 08 pause 4n if <= n • APL: A Programming Language 04 / 09 ( 58 print & tab CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 9 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 10 Speedcoding; 1953-4 • FORmula TRANslator • A pseudocode interpreter for math on IBM701, IBM650. • Developed at IBM under the • Developed by John Backus guidance of John Backus • Pseudo ops for arithmetic and math functions primarily for scientific, • Conditional and unconditional branching computational programming • Autoincrement registers for array access • Slow but still dominated by slowness of s/w math • Dramatically changed forever the • Interpreter left only 700 words left for user program way computers used Laning and Zierler System - 1953 • Has continued to evolve, adding new features & concepts. • Implemented on the MIT Whirlwind computer – FORTRAN II, FORTRAN IV, FORTRAN66, FORTRAN77, FORTRAN90 • First "algebraic" compiler system • Always among the most efficient compilers, producing fast • Subscripted variables, function calls, expression translation code • Never ported to any other machine CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 11 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 12 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 FORTRAN 0 – 1954 (not implemented) • Names could have up to six characters FORTRAN I - 1957 • Posttest counting loop (DO I=1, 100) • Formatted I/O Designed for the new IBM 704, which had index registers and • User-defined subprograms floating point hardware • Three-way selection statement (arithmetic IF with GOTO) Environment of development: IF (ICOUNT-1) 100 200 300 Computers were small and unreliable Applications were scientific • Implicit data typing statements No programming methodology or tools variables beginning with i, j, k, l, m or n were integers, Machine efficiency was most important all else floating point Impact of environment on design • No separate compilation • No need for dynamic storage • Programs larger than 400 lines rarely compiled correctly, • Need good array handling and counting loops • No string handling, decimal arithmetic, or powerful mainly due to poor reliability of the 704 input/output (commercial stuff) • Code was very fast • Quickly became widely used CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 13 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 14 Added many features of more modern FORTRAN II - 1958 programming languages, including • Independent compilation •Pointers • Fix the bugs • Recursion • CASE statement FORTRAN IV - 1960-62 • Parameter type checking • Explicit type declarations • Logical selection statement • A collection of array operations, • Subprogram names could be parameters DOTPRODUCT, MATMUL, TRANSPOSE, etc • ANSI standard in 1966 • dynamic allocations and deallocation of FORTRAN 77 - 1978 arrays • Character string handling • a form of records (called derived types) • Logical loop control statement • IF-THEN-ELSE statement • Module facility (similar Ada’s package) CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 15 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 16 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • COmmon Business Oriented Language • Principal mentor: (Rear Admiral Dr.) Grace Murray Hopper (1906-1992) • Based on FLOW-MATIC which had such features as: • Names up to 12 characters, with embedded hyphens • English names for arithmetic operators • Data and code were completely separate • Verbs were first word in every statement • CODASYL committee (Conference on Data Systems Languages) developed a programming language by the name of COBOL CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 17 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 18 First CODASYL Design Meeting - May 1959 Contributions: Design goals: - First macro facility in a high-level language • Must look like simple English - Hierarchical data structures (records) • Must be easy to use, even if that means it will be less - Nested selection statements powerful - Long names (up to 30 characters), with hyphens - Data Division • Must broaden the base of computer users Comments: • Must not be biased by current compiler problems • First language required by DoD; would have Design committee were all from computer manufacturers failed without DoD and DoD branches • Still the most widely used business applications Design Problems: arithmetic expressions? subscripts? language Fights among manufacturers CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 19 CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 20 Printed with FinePrint - purchase at www.softwarelabs.com CMSC 331 Fall 2004 • Beginner's All purpose Symbolic Instruction Code • LISt Processing language (Designed at MIT by McCarthy) • Designed by Kemeny & Kurtz at Dartmouth for the GE • AI research needed a language that: 225 with the goals: • Process data in lists (rather than arrays) • Symbolic computation (rather than numeric) • Easy to learn and use for non-science students and as a path to Fortran and Algol • One universal, recursive data type: the s-expression • Must be ”pleasant and friendly" • An s-expression is either an atom or a list of zero or more • Fast turnaround for homework s-expressions • Syntax is based on the lambda calculus • Free and private access • Pioneered functional programming • User time is more important than computer time • No need for variables or assignment • Well suited for implementation on first PCs (e.g., Gates • Control via recursion and conditional expressions and Allen’s 4K Basic interpreter for the MITS Altair •Status personal computer (circa 1975) • Still the dominant language for AI • COMMON LISP and Scheme are contemporary dialects • Current popular dialects: Visual BASIC • ML, Miranda, and Haskell are related languages CMSC 331. Some material © 1998 by Addison Wesley Longman, Inc. 21 CMSC 331.
Recommended publications
  • Create a Program Which Will Accept the Price of a Number of Items. • You Must State the Number of Items in the Basket
    PROBLEM: Create a program which will accept the price of a number of items. • You must state the number of items in the basket. • The program will then accept the unit price and the quantity for each item. • It must then calculate the item prices and the total price. • The program must also calculate and add a 5% tax. • If the total price exceeds $450, a discount of $15 is given to the customer; else he/she pays the full amount. • Display the total price, tax, discounted total if applicable, as well as the total number of items bought. • A thank you message must appear at the bottom. SOLUTION First establish your inputs and your outputs, and then develop your IPO chart. Remember: this phase is called - Analysis Of The Problem. So what are your inputs & output? : Variable names: Number of items (input & output) Num (Assume there are 4 items) Unit price of each item (input) Price1, Price2, Price3, Price4 Quantity of each item (Input) Quan1, Quan2, Quan3, Quan4 Total price (output) TotPrice Tax amount (output) Tax Discounted total price (output) DiscTotPrice In your IPO chart, you will describe the logical steps to move from your inputs to your outputs. INPUT PROCESSING OUTPUT Price1, Price2, 1. Get the number of items TotPrice, Tax, Price3, Price4, 2. Get the price and quantity of the each item DiscTaxedTotal, Num 3. Calculate a sub-total for each item TaxedTotal Quan1, Quan2, 4. Calculate the overall total Num Quan3, Quan4 5. Calculate the tax payable {5% of total} 6. If TaxedTotal > 450 then Apply discount {Total minus 15} Display: TotPrice, Tax, DiscTaxedTotal, TaxedTotal, Num Else TaxedTotal is paid Display: TotPrice, Tax, TaxedTotal, Num Note that there are some variables that are neither input nor output.
    [Show full text]
  • Wearable-Based Pedestrian Inertial Navigation with Constraints Based on Biomechanical Models
    Wearable-based pedestrian inertial navigation with constraints based on biomechanical models Dina Bousdar Ahmed∗ and Kai Metzger† ∗ Institute of Communications and Navigation German Aerospace Center (DLR), Munich, Germany Email: [email protected] † Technical University of Munich, Germany Email: kai [email protected] Abstract—Our aim in this paper is to analyze inertial nav- sensor to correct the heading estimation [4]. The combina- igation systems (INSs) from the biomechanical point of view. tion of inertial sensors and WiFi measurements is useful in We wanted to improve the performance of a thigh INS by indoor environments. Chen et al. use the position estimated applying biomechanical constraints. To that end, we propose a biomechanical model of the leg. The latter establishes a through WiFi measurements to correct the position estimates relationship between the orientation of the thigh INS and the of an inertial navigation system [5]. The latter is based on a kinematic motion of the leg. This relationship allows to observe smartphone. the effect that the orientation errors have in the expected motion The detection of known landmarks, e.g. turns, elevators, etc, of the leg. We observe that the errors in the orientation estimation can improve the position estimation. Chen et al. [5] incorporate of an INS translate into incoherent human motion. Based on this analysis, we proposed a modified thigh INS to integrate landmarks to improve the performance of their navigation biomechanical constraints. The results show that the proposed system. Munoz et al. [6] use also landmarks to correct directly system outperforms the thigh INS in 50% regarding distance the heading estimation of a thigh-mounted inertial navigation error and 32% regarding orientation error.
    [Show full text]
  • The Advent of Recursion & Logic in Computer Science
    The Advent of Recursion & Logic in Computer Science MSc Thesis (Afstudeerscriptie) written by Karel Van Oudheusden –alias Edgar G. Daylight (born October 21st, 1977 in Antwerpen, Belgium) under the supervision of Dr Gerard Alberts, and submitted to the Board of Examiners in partial fulfillment of the requirements for the degree of MSc in Logic at the Universiteit van Amsterdam. Date of the public defense: Members of the Thesis Committee: November 17, 2009 Dr Gerard Alberts Prof Dr Krzysztof Apt Prof Dr Dick de Jongh Prof Dr Benedikt Löwe Dr Elizabeth de Mol Dr Leen Torenvliet 1 “We are reaching the stage of development where each new gener- ation of participants is unaware both of their overall technological ancestry and the history of the development of their speciality, and have no past to build upon.” J.A.N. Lee in 1996 [73, p.54] “To many of our colleagues, history is only the study of an irrele- vant past, with no redeeming modern value –a subject without useful scholarship.” J.A.N. Lee [73, p.55] “[E]ven when we can't know the answers, it is important to see the questions. They too form part of our understanding. If you cannot answer them now, you can alert future historians to them.” M.S. Mahoney [76, p.832] “Only do what only you can do.” E.W. Dijkstra [103, p.9] 2 Abstract The history of computer science can be viewed from a number of disciplinary perspectives, ranging from electrical engineering to linguistics. As stressed by the historian Michael Mahoney, different `communities of computing' had their own views towards what could be accomplished with a programmable comput- ing machine.
    [Show full text]
  • Turing's Influence on Programming — Book Extract from “The Dawn of Software Engineering: from Turing to Dijkstra”
    Turing's Influence on Programming | Book extract from \The Dawn of Software Engineering: from Turing to Dijkstra" Edgar G. Daylight∗ Eindhoven University of Technology, The Netherlands [email protected] Abstract Turing's involvement with computer building was popularized in the 1970s and later. Most notable are the books by Brian Randell (1973), Andrew Hodges (1983), and Martin Davis (2000). A central question is whether John von Neumann was influenced by Turing's 1936 paper when he helped build the EDVAC machine, even though he never cited Turing's work. This question remains unsettled up till this day. As remarked by Charles Petzold, one standard history barely mentions Turing, while the other, written by a logician, makes Turing a key player. Contrast these observations then with the fact that Turing's 1936 paper was cited and heavily discussed in 1959 among computer programmers. In 1966, the first Turing award was given to a programmer, not a computer builder, as were several subsequent Turing awards. An historical investigation of Turing's influence on computing, presented here, shows that Turing's 1936 notion of universality became increasingly relevant among programmers during the 1950s. The central thesis of this paper states that Turing's in- fluence was felt more in programming after his death than in computer building during the 1940s. 1 Introduction Many people today are led to believe that Turing is the father of the computer, the father of our digital society, as also the following praise for Martin Davis's bestseller The Universal Computer: The Road from Leibniz to Turing1 suggests: At last, a book about the origin of the computer that goes to the heart of the story: the human struggle for logic and truth.
    [Show full text]
  • Preparation and Investigation of Highly Charged Ions in a Penning Trap for the Determination of Atomic Magnetic Moments
    Preparation and Investigation of Highly Charged Ions in a Penning Trap for the Determination of Atomic Magnetic Moments Präparation und Untersuchung von hochgeladenen Ionen in einer Penning-Falle zur Bestimmung atomarer magnetischer Momente Dissertation approved by the Fachbereich Physik of the Technische Universität Darmstadt in fulfillment of the requirements for the degree of Doctor of Natural Sciences (Dr. rer. nat.) by Dipl.-Phys. Marco Wiesel from Neustadt an der Weinstraße June 2017 — Darmstadt — D 17 Preparation and Investigation of Highly Charged Ions in a Penning Trap for the Determination of Atomic Magnetic Moments Dissertation approved by the Fachbereich Physik of the Technische Universität Darmstadt in fulfillment of the requirements for the degree of Doctor of Natural Sciences (Dr. rer. nat.) by Dipl.-Phys. Marco Wiesel from Neustadt an der Weinstraße 1. Referee: Prof. Dr. rer. nat. Gerhard Birkl 2. Referee: Privatdozent Dr. rer. nat. Wolfgang Quint Submission date: 18.04.2017 Examination date: 24.05.2017 Darmstadt 2017 D 17 Title: The logo of ARTEMIS – AsymmetRic Trap for the measurement of Electron Magnetic moments in IonS. Bitte zitieren Sie dieses Dokument als: URN: urn:nbn:de:tuda-tuprints-62803 URL: http://tuprints.ulb.tu-darmstadt.de/id/eprint/6280 Dieses Dokument wird bereitgestellt von tuprints, E-Publishing-Service der TU Darmstadt http://tuprints.ulb.tu-darmstadt.de [email protected] Die Veröffentlichung steht unter folgender Creative Commons Lizenz: Namensnennung – Keine kommerzielle Nutzung – Keine Bearbeitung 4.0 International https://creativecommons.org/licenses/by-nc-nd/4.0/ Abstract The ARTEMIS experiment aims at measuring magnetic moments of electrons bound in highly charged ions that are stored in a Penning trap.
    [Show full text]
  • Konrad Zuse Und Die Schweiz
    Research Collection Report Konrad Zuse und die Schweiz Relaisrechner Z4 an der ETH Zürich : Rechenlocher M9 für die Schweizer Remington Rand : Eigenbau des Röhrenrechners ERMETH : Zeitzeugenbericht zur Z4 : unbekannte Dokumente zur M9 : ein Beitrag zu den Anfängen der Schweizer Informatikgeschichte Author(s): Bruderer, Herbert Publication Date: 2011 Permanent Link: https://doi.org/10.3929/ethz-a-006517565 Rights / License: In Copyright - Non-Commercial Use Permitted This page was generated automatically upon download from the ETH Zurich Research Collection. For more information please consult the Terms of use. ETH Library Konrad Zuse und die Schweiz Relaisrechner Z4 an der ETH Zürich Rechenlocher M9 für die Schweizer Remington Rand Eigenbau des Röhrenrechners ERMETH Zeitzeugenbericht zur Z4 Unbekannte Dokumente zur M9 Ein Beitrag zu den Anfängen der Schweizer Informatikgeschichte Herbert Bruderer ETH Zürich Departement Informatik Professur für Informationstechnologie und Ausbildung Zürich, Juli 2011 Adresse des Verfassers: Herbert Bruderer ETH Zürich Informationstechnologie und Ausbildung CAB F 14 Universitätsstrasse 6 CH-8092 Zürich Telefon: +41 44 632 73 83 Telefax: +41 44 632 13 90 [email protected] www.ite.ethz.ch privat: Herbert Bruderer Bruderer Informatik Seehaldenstrasse 26 Postfach 47 CH-9401 Rorschach Telefon: +41 71 855 77 11 Telefax: +41 71 855 72 11 [email protected] Titelbild: Relaisschränke der Z4 (links: Heinz Rutishauser, rechts: Ambros Speiser), ETH Zürich 1950, © ETH-Bibliothek Zürich, Bildarchiv Bild 4. Umschlagseite: Verabschiedungsrede von Konrad Zuse an der Z4 am 6. Juli 1950 in der Zuse KG in Neukirchen (Kreis Hünfeld) © Privatarchiv Horst Zuse, Berlin Eidgenössische Technische Hochschule Zürich Departement Informatik Professur für Informationstechnologie und Ausbildung CH-8092 Zürich www.abz.inf.ethz.ch 1.
    [Show full text]
  • A Biased History Of! Programming Languages Programming Languages:! a Short History Fortran Cobol Algol Lisp
    A Biased History of! Programming Languages Programming Languages:! A Short History Fortran Cobol Algol Lisp Basic PL/I Pascal Scheme MacLisp InterLisp Franz C … Ada Common Lisp Roman Hand-Abacus. Image is from Museo (Nazionale Ramano at Piazzi delle Terme, Rome) History • Pre-History : The first programmers • Pre-History : The first programming languages • The 1940s: Von Neumann and Zuse • The 1950s: The First Programming Language • The 1960s: An Explosion in Programming languages • The 1970s: Simplicity, Abstraction, Study • The 1980s: Consolidation and New Directions • The 1990s: Internet and the Web • The 2000s: Constraint-Based Programming Ramon Lull (1274) Raymondus Lullus Ars Magna et Ultima Gottfried Wilhelm Freiherr ! von Leibniz (1666) The only way to rectify our reasonings is to make them as tangible as those of the Mathematician, so that we can find our error at a glance, and when there are disputes among persons, we can simply say: Let us calculate, without further ado, in order to see who is right. Charles Babbage • English mathematician • Inventor of mechanical computers: – Difference Engine, construction started but not completed (until a 1991 reconstruction) – Analytical Engine, never built I wish to God these calculations had been executed by steam! Charles Babbage, 1821 Difference Engine No.1 Woodcut of a small portion of Mr. Babbages Difference Engine No.1, built 1823-33. Construction was abandoned 1842. Difference Engine. Built to specifications 1991. It has 4,000 parts and weighs over 3 tons. Fixed two bugs. Portion of Analytical Engine (Arithmetic and Printing Units). Under construction in 1871 when Babbage died; completed by his son in 1906.
    [Show full text]
  • The History of Computer Language Selection
    The History of Computer Language Selection Kevin R. Parker College of Business, Idaho State University, Pocatello, Idaho USA [email protected] Bill Davey School of Business Information Technology, RMIT University, Melbourne, Australia [email protected] Abstract: This examines the history of computer language choice for both industry use and university programming courses. The study considers events in two developed countries and reveals themes that may be common in the language selection history of other developed nations. History shows a set of recurring problems for those involved in choosing languages. This study shows that those involved in the selection process can be informed by history when making those decisions. Keywords: selection of programming languages, pragmatic approach to selection, pedagogical approach to selection. 1. Introduction The history of computing is often expressed in terms of significant hardware developments. Both the United States and Australia made early contributions in computing. Many trace the dawn of the history of programmable computers to Eckert and Mauchly’s departure from the ENIAC project to start the Eckert-Mauchly Computer Corporation. In Australia, the history of programmable computers starts with CSIRAC, the fourth programmable computer in the world that ran its first test program in 1949. This computer, manufactured by the government science organization (CSIRO), was used into the 1960s as a working machine at the University of Melbourne and still exists as a complete unit at the Museum of Victoria in Melbourne. Australia’s early entry into computing makes a comparison with the United States interesting. These early computers needed programmers, that is, people with the expertise to convert a problem into a mathematical representation directly executable by the computer.
    [Show full text]
  • Constructing Algorithms and Pseudocoding This Document Was Originally Developed by Professor John P
    Constructing Algorithms and Pseudocoding This document was originally developed by Professor John P. Russo Purpose: # Describe the method for constructing algorithms. # Describe an informal language for writing PSEUDOCODE. # Provide you with sample algorithms. Constructing Algorithms 1) Understand the problem A common mistake is to start writing an algorithm before the problem to be solved is fully understood. Among other things, understanding the problem involves knowing the answers to the following questions. a) What is the input list, i.e. what information will be required by the algorithm? b) What is the desired output or result? c) What are the initial conditions? 2) Devise a Plan The first step in devising a plan is to solve the problem yourself. Arm yourself with paper and pencil and try to determine precisely what steps are used when you solve the problem "by hand". Force yourself to perform the task slowly and methodically -- think about <<what>> you are doing. Do not use your own memory -- introduce variables when you need to remember information used by the algorithm. Using the information gleaned from solving the problem by hand, devise an explicit step-by-step method of solving the problem. These steps can be written down in an informal outline form -- it is not necessary at this point to use pseudo-code. 3) Refine the Plan and Translate into Pseudo-Code The plan devised in step 2) needs to be translated into pseudo-code. This refinement may be trivial or it may take several "passes". 4) Test the Design Using appropriate test data, test the algorithm by going through it step by step.
    [Show full text]
  • CSC 272 - Software II: Principles of Programming Languages
    CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? • A programming language is a notational system for describing computation in machine-readable and human-readable form. • Most of these forms are high-level languages , which is the subject of the course. • Assembly languages and other languages that are designed to more closely resemble the computer’s instruction set than anything that is human- readable are low-level languages . Why Study Programming Languages? • In 1969, Sammet listed 120 programming languages in common use – now there are many more! • Most programmers never use more than a few. – Some limit their career’s to just one or two. • The gain is in learning about their underlying design concepts and how this affects their implementation. The Six Primary Reasons • Increased ability to express ideas • Improved background for choosing appropriate languages • Increased ability to learn new languages • Better understanding of significance of implementation • Better use of languages that are already known • Overall advancement of computing Reason #1 - Increased ability to express ideas • The depth at which people can think is heavily influenced by the expressive power of their language. • It is difficult for people to conceptualize structures that they cannot describe, verbally or in writing. Expressing Ideas as Algorithms • This includes a programmer’s to develop effective algorithms • Many languages provide features that can waste computer time or lead programmers to logic errors if used improperly – E. g., recursion in Pascal, C, etc. – E. g., GoTos in FORTRAN, etc. Reason #2 - Improved background for choosing appropriate languages • Many professional programmers have a limited formal education in computer science, limited to a small number of programming languages.
    [Show full text]
  • Evolution of the Major Programming Languages
    COS 301 Programming Languages Evolution of the Major Programming Languages UMaine School of Computing and Information Science COS 301 - 2018 Topics Zuse’s Plankalkül Minimal Hardware Programming: Pseudocodes The IBM 704 and Fortran Functional Programming: LISP ALGOL 60 COBOL BASIC PL/I APL and SNOBOL SIMULA 67 Orthogonal Design: ALGOL 68 UMaine School of Computing and Information Science COS 301 - 2018 Topics (continued) Some Early Descendants of the ALGOLs Prolog Ada Object-Oriented Programming: Smalltalk Combining Imperative and Object-Oriented Features: C++ Imperative-Based Object-Oriented Language: Java Scripting Languages A C-Based Language for the New Millennium: C# Markup/Programming Hybrid Languages UMaine School of Computing and Information Science COS 301 - 2018 Genealogy of Common Languages UMaine School of Computing and Information Science COS 301 - 2018 Alternate View UMaine School of Computing and Information Science COS 301 - 2018 Zuse’s Plankalkül • Designed in 1945 • For computers based on electromechanical relays • Not published until 1972, implemented in 2000 [Rojas et al.] • Advanced data structures: – Two’s complement integers, floating point with hidden bit, arrays, records – Basic data type: arrays, tuples of arrays • Included algorithms for playing chess • Odd: 2D language • Functions, but no recursion • Loops (“while”) and guarded conditionals [Dijkstra, 1975] UMaine School of Computing and Information Science COS 301 - 2018 Plankalkül Syntax • 3 lines for a statement: – Operation – Subscripts – Types • An assignment
    [Show full text]
  • Computer Simulation of an Unsprung Vehicle, Part I C
    Agricultural and Biosystems Engineering Agricultural and Biosystems Engineering Publications 1967 Computer Simulation of an Unsprung Vehicle, Part I C. E. Goering University of Missouri Wesley F. Buchele Iowa State University Follow this and additional works at: https://lib.dr.iastate.edu/abe_eng_pubs Part of the Agriculture Commons, and the Bioresource and Agricultural Engineering Commons The ompc lete bibliographic information for this item can be found at https://lib.dr.iastate.edu/ abe_eng_pubs/960. For information on how to cite this item, please visit http://lib.dr.iastate.edu/ howtocite.html. This Article is brought to you for free and open access by the Agricultural and Biosystems Engineering at Iowa State University Digital Repository. It has been accepted for inclusion in Agricultural and Biosystems Engineering Publications by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Computer Simulation of an Unsprung Vehicle, Part I Abstract The mechanics of unsprung wheel tractors has received extensive study in the last 40 years. The quantitative approach to the problem essentially began with the work of McKibben (7) in the 1920s. Twenty years later, Worthington (12) analyzed the effect of pneumatic tires on tractor stabiIity. Later, Buchele (3) drew on land- locomotion theory to introduce soil variables into the equations for tractor stability. Differential equations were avoided in these analyses by assuming that the tractor moved with zero or constant acceleration. Thus, vibration and actual tipping of the tractor were beyond the scope of the analyses. Disciplines Agriculture | Bioresource and Agricultural Engineering Comments This article is published as Goering, C.
    [Show full text]