CSC324 — Putting the Pieces Together • Tool: Regular Grammars

Total Page:16

File Type:pdf, Size:1020Kb

CSC324 — Putting the Pieces Together • Tool: Regular Grammars Programming Language an abstract entity with some specification, including: • formal specification of tokens, i.e., legal keywords & identifiers CSC324 — Putting the Pieces together • tool: Regular Grammars. ⇒ formal specification of acceptable sentences, or syntax Afsaneh Fazly • tool: Context Free Grammars. ⇒ (mainly informal) specification of meaning, or semantics. • Winter, 2013 1 2 Programming Language The Birth of Programming Languages (PLs) not to be confused with an IDE/compiler, that are pieces of Prior to the 1950s • software implementing the language (performing translation): programs had to be written in machine code, using absolute lexical analysis: identifying tokens. • • addressing. tool: Finite State Machines. ⇒ programs were hard to read and write, and the job didn’t syntactic analysis: combining tokens into larger untis (e.g., • • attract many people. statements, expressions). software started to cost way more than the hardware. tool: Parsing Algorithms. • ⇒ semantic analysis. • birth of assembly languages, optimization and code generation. ⇒ • with little impact on the design of high-level langauges. 3 4 The Birth of High-Level PLs History of Programming Languages Mid 1950s, 1960s Late 1970s announcement of the IBM 704 machine, with indexing and shift from procedure-oriented PL designs to data-oriented • floating-point instructions in hardware • designs first language with limited support for data abstraction: birth of the first high-level PL: Fortran. • • SIMULA 67, designed by Ole-Johan Dahl and Kristen Nygaard language was actually implemented (compiler); (Norwegian Computing Centre, Oslo). variables, user-defined subprograms, limited control structures; no recursion, no dynamic data structures. growing interest in Artificial Intelligence (AI), from linguistics, • psychology, and mathematics Ole-Johan Dahl (left) birth of the first functional PL: LISP. & Kristan Nygaard (right) • parent of Scheme, ML, Haskell. 5 6 History of Programming Languages Other Interesting/Influential PLs Early 1980s Algol (ALGOrithmic Language): giving birth to object-oriented (OO) design designed as a universal language for scientific computing • • first language developing OO concepts: Smalltalk, designed by hasn’t been used much, but had a great impact on many • • Adele Goldberg, Alan Kay & colleagues (Learning Research modern languages Group, Xerox PARC). COBOL (COmmon Business Language): designed for business applications, with sophisticated data • Adele Goldberg structures has been used more than any other PL, but no impact on the • design of other PLs support for OO programming is now part of most imperative, • and even functional/logic PLs: C++/C# (imperative), F# (functional), Prolog++ (logic) • 7 8 Other Interesting/Influential PLs RDBMS and Logic Programming SQL (Structured Query Language): Any connection between Relational Database Management designed for managing and querying Relational Databases, System, and logic programming? • that store data in the form of tables non-procedural (as in logic programming) • user describes what they want (not how to retrieve them from e.g., database as a series of predicates/facts in Prolog, • • the database) relations among entities expressed through rules, and the retrieval through the search process. Example: SELECT price, duration Pros & cons of using logic programming to implement RDBMS? FROM flights conventional RDBMS only look-up information, whereas logic • WHERE flights.origin = ’toronto’ programming can do inference AND flights.destination = ’paris’ logic programming (inference engine) is often slow AND price < 1000.00 • ORDER BY price; 9 10 Imperative Design Imperative Design Human Language & Mind Human Language & Mind Assembly Languages [before the 1950s] ⇑ Machine Hardware and Instruction Set Machine Hardware and Instruction Set 11 12 Imperative Design Imperative Design Human Language & Mind Human Language & Mind data-oriented / object-oriented PLs [1970s, 1980s] ⇑ High-level PL with limited functionality [1950s, 1960s] High-level PL with limited functionality [1950s, 1960s] ⇑ ⇑ Assembly Languages [before the 1950s] Assembly Languages [before the 1950s] ⇑ ⇑ Machine Hardware and Instruction Set Machine Hardware and Instruction Set 13 14 Influences on PL Design Imperative Design Human Language & Mind Imperative Paradigm: computer architecture (and instruction set). ⇓⇓ • functional PLs [1950s, 1960s] logic PLs [1970s] hardware and software costs. • application. • mainly bottom-up, ⇒ closer to the needs of the machine/application. data-oriented / object-oriented PLs [1970s, 1980s] ⇒ ⇑ Question: How about functional and logic paradigms? High-level PL with limited functionality [1950s, 1960s] ⇑ Assembly Languages [before the 1950s] ⇑ Machine Hardware and Instruction Set 15 16 Scheme Scheme clear and simple syntax • Data types: numbers, symbols, pairs, lists, ... clear and simple semantics (for the core): λ-calculus • uniform treatment of program and data Syntax: • implementations properly tail-recursive <expr> ::= <val> • | (if <expr> <expr> <expr>) functions are values: created dynamically, stored, passed as • | (cond {(<expr> <expr>)} [(else <expr>)]) parameters, returned as results, etc. | (lambda ({<id>}) <expr>) static scoping | ... • <defn> ::= (define <id> <expr>) dynamic typing ... • pass-by-value • Example: Anything in particular you liked/disliked about Scheme? > (define max (lambda (x y) (if (> x y) x y))) > (max 3 4) 17 18 ML ML Datatypes: unit, bool, int, real, string, tuples, lists, ... functional: recursion, higher-order functions • type safe, static type checking, type inference Syntax, Example: • built-in types, type synonyms • fun mystery lst = user-defined (abstract) data types • let enumerated, variant, recursive, mutually recursive types fun mysteryHelper [] res = res • exception handling | mysteryHelper (x::xs) res = • mysteryHelper xs (x::res) static scoping (dynamic scoping for exception handling) • in garbage collection, immutable data types, updatable mysteryHelper lst [] • references end; mystery : ’a list -> ’a list Anything you liked/disliked about ML in particular? What does mystery do? 19 20 Prolog Deficiencies of Prolog as a Pure Logic PL Syntax: Prolog matching is ordered: from top of the database, and <clause> ::= <pred> . • | <pred> :- <pred> { , <pred> } . from left end of a goal. <pred> ::= <pname>( <term> { , <term> } ) Prolog allows explicit control of backtracking through the use • <term> ::= <functor>( <term> { , <term> } ) of Cut !. | <const> | <var> Pros and cons of using Cut? <const> ::= ... • Closed-world assumption, and Negation by failure. <var> ::= ... • Example: Anything you liked/disliked about Prolog? mylength([],0). mylength([_|T],N) :- mylength(T,NT), N is NT+1. 21 22 Comparison: Summing a List of Numbers Comparison: Summing a List of Numbers in a C-like language: • sum = 0; Question: Do we know which one is closer to “how for (i=0; i<len(lst); i++) { non-programmers reason about programming concepts”? sum += lst[i]; [Pane & Myers’2006] } return sum; Giving birth to the idea of “More natural programming languages in Scheme: and environments”, • (define (sumlist lst) where the goal is: (+ (car lst) (sumlist (cdr lst)))) To understand how people express concepts if not restricted by in Prolog: • existing PLs. sumlist([H|Rest], Sum) :- sumlist(Rest, SumR), Sum is H + SumR. 23 24 Natural Programming Languages and Environments References L.A. Miller (1974). Programming by Non-programmers, There is evidence that: • International Journal of Man–Machine Studies 6(2): 237–260. there are regularities in how people express step-by-step • L.A. Miller (1981). Natural Language Programming: Styles, natural language procedures [Miller’74, 81; Biermann et al.’83] • Strategies, and Contrasts, IBM Systems Journal 20(2): 184–215. people improve the precision of their natural language • A.W. Biermann, B.W. Ballard, and A.H. Sigmon (1983). An expressions if they know the recipient has limited intelligence • Experimental Study of Natural Language Programming, suggesting that such regularities can be incorporated into PL International Journal of Man–Machine Studies 18(1): 71–87. designs. J.E. Pane and B.A. Myers (2006). More Natural Programming • Languages and Environments,HenryLiebermanetal.(eds),End Despite such findings, these studies have had little impact on the User Development: 31–50. design of new PLs. Why? R.W. Sebesta, Concepts of Programming Languages, • Addison-Wesley, 10th ed., 2012. 25 26 Thank you for listening! Good luck with your future career. 27.
Recommended publications
  • QATAR ASW ONLINE SCRIPT V.8.0 Pages
    “DEXIGN THE FUTURE: Innovation for Exponential Times” ARNOLD WASSERMAN COMMENCEMENT ADDRESS VIRGINIA COMMONWEALTH UNIVERSITY IN QATAR 2 MAY 2016 مساء الخير .Good afternoon It is an honor to be invited to address you on this important day. Today you artists and designers graduate into the future. Do you think about the future? Of course you do. But how do you think about the future? Is the future tangible - or is it intangible ? Is it a subject for rational deliberation? Or is it an imagined fantasy that forever recedes before us? Is the future simply whatever happens to us next? Or is it something we deliberately create? Can we Dexign the Future? What I would like us to think about for the next few moments is how creative professionals like yourselves might think about the future. What I have to say applies as much to art as it does to design. Both are technologies of creative innovation. I will take the liberty here of calling it all design. My speech is also available online. There you can follow a number of links to what I will talk about here. The future you are graduating into is an exponential future. What that means is that everything is happening faster and at an accelerating rate. For example, human knowledge is doubling every 12 months. And that curve is accelerating. An IBM researcher foresees that within a few years knowledge will be doubling every 12 hours as we build out the internet of things globally. This acceleration of human knowledge implies that the primary skill of a knowledge worker like yourself is research, analysis and synthesis of the not-yet-known.
    [Show full text]
  • Simula Mother Tongue for a Generation of Nordic Programmers
    Simula! Mother Tongue! for a Generation of! Nordic Programmers! Yngve Sundblad HCI, CSC, KTH! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Inspired by Ole-Johan Dahl, 1931-2002, and Kristen Nygaard, 1926-2002" “From the cold waters of Norway comes Object-Oriented Programming” " (first line in Bertrand Meyer#s widely used text book Object Oriented Software Construction) ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula concepts 1967" •# Class of similar Objects (in Simula declaration of CLASS with data and actions)! •# Objects created as Instances of a Class (in Simula NEW object of class)! •# Data attributes of a class (in Simula type declared as parameters or internal)! •# Method attributes are patterns of action (PROCEDURE)! •# Message passing, calls of methods (in Simula dot-notation)! •# Subclasses that inherit from superclasses! •# Polymorphism with several subclasses to a superclass! •# Co-routines (in Simula Detach – Resume)! •# Encapsulation of data supporting abstractions! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad! Simula example BEGIN! REF(taxi) t;" CLASS taxi(n); INTEGER n;! BEGIN ! INTEGER pax;" PROCEDURE book;" IF pax<n THEN pax:=pax+1;! pax:=n;" END of taxi;! t:-NEW taxi(5);" t.book; t.book;" print(t.pax)" END! Output: 7 ! ! KTH - CSC (School of Computer Science and Communication) Yngve Sundblad – Simula OctoberYngve 2010Sundblad!
    [Show full text]
  • Design and Implementation of an Optionally-Typed Functional Programming Language
    Design and Implementation of an Optionally-Typed Functional Programming Language Shaobai Li Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2017-215 http://www2.eecs.berkeley.edu/Pubs/TechRpts/2017/EECS-2017-215.html December 14, 2017 Copyright © 2017, by the author(s). All rights reserved. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. Design and Implementation of an Optionally-Typed Functional Programming Language by Patrick S. Li A dissertation submitted in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Engineering { Electrical Engineering and Computer Sciences in the Graduate Division of the University of California, Berkeley Committee in charge: Professor Koushik Sen, Chair Adjunct Professor Jonathan Bachrach Professor George Necula Professor Sara McMains Fall 2017 Design and Implementation of an Optionally-Typed Functional Programming Language Copyright 2017 by Patrick S. Li 1 Abstract Design and Implementation of an Optionally-Typed Functional Programming Language by Patrick S. Li Doctor of Philosophy in Engineering { Electrical Engineering and Computer Sciences University of California, Berkeley Professor Koushik Sen, Chair This thesis describes the motivation, design, and implementation of L.B. Stanza, an optionally- typed functional programming language aimed at helping programmers tackle the complexity of architecting large programs and increasing their productivity across the entire software development life cycle.
    [Show full text]
  • A Model of Inheritance for Declarative Visual Programming Languages
    An Abstract Of The Dissertation Of Rebecca Djang for the degree of Doctor of Philosophy in Computer Science presented on December 17, 1998. Title: Similarity Inheritance: A Model of Inheritance for Declarative Visual Programming Languages. Abstract approved: Margaret M. Burnett Declarative visual programming languages (VPLs), including spreadsheets, make up a large portion of both research and commercial VPLs. Spreadsheets in particular enjoy a wide audience, including end users. Unfortunately, spreadsheets and most other declarative VPLs still suffer from some of the problems that have been solved in other languages, such as ad-hoc (cut-and-paste) reuse of code which has been remedied in object-oriented languages, for example, through the code-reuse mechanism of inheritance. We believe spreadsheets and other declarative VPLs can benefit from the addition of an inheritance-like mechanism for fine-grained code reuse. This dissertation first examines the opportunities for supporting reuse inherent in declarative VPLs, and then introduces similarity inheritance and describes a prototype of this model in the research spreadsheet language Forms/3. Similarity inheritance is very flexible, allowing multiple granularities of code sharing and even mutual inheritance; it includes explicit representations of inherited code and all sharing relationships, and it subsumes the current spreadsheet mechanisms for formula propagation, providing a gradual migration from simple formula reuse to more sophisticated uses of inheritance among objects. Since the inheritance model separates inheritance from types, we investigate what notion of types is appropriate to support reuse of functions on different types (operation polymorphism). Because it is important to us that immediate feedback, which is characteristic of many VPLs, be preserved, including feedback with respect to type errors, we introduce a model of types suitable for static type inference in the presence of operation polymorphism with similarity inheritance.
    [Show full text]
  • Reading List
    EECS 101 Introduction to Computer Science Dinda, Spring, 2009 An Introduction to Computer Science For Everyone Reading List Note: You do not need to read or buy all of these. The syllabus and/or class web page describes the required readings and what books to buy. For readings that are not in the required books, I will either provide pointers to web documents or hand out copies in class. Books David Harel, Computers Ltd: What They Really Can’t Do, Oxford University Press, 2003. Fred Brooks, The Mythical Man-month: Essays on Software Engineering, 20th Anniversary Edition, Addison-Wesley, 1995. Joel Spolsky, Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity, APress, 2004. Most content is available for free from Spolsky’s Blog (see http://www.joelonsoftware.com) Paul Graham, Hackers and Painters, O’Reilly, 2004. See also Graham’s site: http://www.paulgraham.com/ Martin Davis, The Universal Computer: The Road from Leibniz to Turing, W.W. Norton and Company, 2000. Ted Nelson, Computer Lib/Dream Machines, 1974. This book is now very rare and very expensive, which is sad given how visionary it was. Simon Singh, The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Anchor, 2000. Douglas Hofstadter, Goedel, Escher, Bach: The Eternal Golden Braid, 20th Anniversary Edition, Basic Books, 1999. Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, 2nd Edition, Prentice Hall, 2003.
    [Show full text]
  • STEPS Toward Expressive Programming Systems, 2010 Progress Report Submitted to the National Science Foundation (NSF) October 2010
    STEPS Toward Expressive Programming Systems, 2010 Progress Report Submitted to the National Science Foundation (NSF) October 2010 Viewpoints Research Institute, 1209 Grand Central Avenue, Glendale, CA 91201 t: (818) 332-3001 f: (818) 244-9761 VPRI Technical Report TR-2010-004 NSF Award: 0639876 Year 4 Annual Report: October 2010 STEPS Toward Expressive Programming Systems Viewpoints Research Institute, Glendale CA Important Note For Viewing The PDF Of This Report We have noticed that Adobe Reader and Acrobat do not do the best rendering of scaled pictures. Try different magnifications (e.g. 118%) to find the best scale. Apple Preview does a better job. Table Of Contents STEPS For The General Public 2 STEPS Project Introduction 3 STEPS In 2010 5 The “Frank” Personal Computing System 5 The Parts Of Frank 7 1. DBjr 7 a. User Interface Approach 9 b. Some of the Document Styles We’ve Made 11 2. LWorld 17 3. Gezira/Nile 18 4. NotSqueak 20 5. Networking 20 6. OMeta 22 7. Nothing 22 2010 STEPS Experiments And Papers 23 Training and Development 26 Outreach Activities 26 References 27 Appendix 1: Nothing Grammar in OMeta 28 Appendix 2: A Copying Garbage Collector in Nothing 30 VPRI Technical Report TR-2010-004 A new requirement for NSF reports is to include a few jargon‑free paragraphs to help the general public un‑ derstand the nature of the research. This seems like a very good idea. Here is our first attempt. STEPS For The General Public If computing is important—for daily life, learning, business, national defense, jobs, and more—then qualitatively advancing computing is extremely important.
    [Show full text]
  • EDSGER W. DIJKSTRA Turing Award 1972 Contributions To: Compiler Design Algorithms Formal Verification Programming Languages
    LISP IN HPC MARCO HEISIG [email protected] 0 TABLE OF CONTENTS Motivational Quotes The Lisp Language Performance Our Research Questions & Answers 1 MOTIVATIONAL QUOTES … showing you that Lisp is not just another programming language 2 EDSGER W. DIJKSTRA Turing Award 1972 contributions to: compiler design algorithms formal verification programming languages 3 EDSGER W. DIJKSTRA FORTRAN's tragic fate has been its wide acceptance, mentally chaining thousands and thousands of programmers to our past mistakes. 3 - 1 EDSGER W. DIJKSTRA Lisp has jokingly been called "the most intelligent way to misuse a computer". I think that description is a great compliment because it transmits the full flavor of liberation […] 3 - 2 ALAN KAY Turing Award 2003 Inventor of Object Oriented Programming Graphical User Interface Smalltalk 4 ALAN KAY I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. Java and C++ make you think that the new ideas are like the old ones. Java is the most distressing thing to hit computing since MS-DOS. 4 - 1 ALAN KAY [Lisp is] … the greatest single programming language ever designed 4 - 2 RICHARD M. STALLMAN Founder of the Free Software Foundation Author of GCC GDB Emacs GNU Make … 5 RICHARD M. STALLMAN The most powerful programming language is Lisp. […] Once you learn Lisp you will see what is missing in most other languages. 5 - 1 OUR MOTIVATION The primary goal of a language should be the elegant notation of algorithms. Mandatory requirements should therefore be automatic memory management proper integers, fractions and complex numbers higher order functions (also at runtime) the possibility of reaching machine peak performance (computational completeness ?) 6 THE LISP LANGUAGE 7 THE LISP LANGUAGE discovered 1958 by John McCarthy short for LISt Processing Modern dialects: Common Lisp Scheme Clojure 8 PAIRS AND LISTS ;; basic datastructure: The pair! (a .
    [Show full text]
  • Arxiv:2106.11534V1 [Cs.DL] 22 Jun 2021 2 Nanjing University of Science and Technology, Nanjing, China 3 University of Southampton, Southampton, U.K
    Noname manuscript No. (will be inserted by the editor) Turing Award elites revisited: patterns of productivity, collaboration, authorship and impact Yinyu Jin1 · Sha Yuan1∗ · Zhou Shao2, 4 · Wendy Hall3 · Jie Tang4 Received: date / Accepted: date Abstract The Turing Award is recognized as the most influential and presti- gious award in the field of computer science(CS). With the rise of the science of science (SciSci), a large amount of bibliographic data has been analyzed in an attempt to understand the hidden mechanism of scientific evolution. These include the analysis of the Nobel Prize, including physics, chemistry, medicine, etc. In this article, we extract and analyze the data of 72 Turing Award lau- reates from the complete bibliographic data, fill the gap in the lack of Turing Award analysis, and discover the development characteristics of computer sci- ence as an independent discipline. First, we show most Turing Award laureates have long-term and high-quality educational backgrounds, and more than 61% of them have a degree in mathematics, which indicates that mathematics has played a significant role in the development of computer science. Secondly, the data shows that not all scholars have high productivity and high h-index; that is, the number of publications and h-index is not the leading indicator for evaluating the Turing Award. Third, the average age of awardees has increased from 40 to around 70 in recent years. This may be because new breakthroughs take longer, and some new technologies need time to prove their influence. Besides, we have also found that in the past ten years, international collabo- ration has experienced explosive growth, showing a new paradigm in the form of collaboration.
    [Show full text]
  • Thinking Object Oriented
    Chapter 1 Thinking Ob ject Oriented Ob ject-oriented programming has b ecome exceedingly p opular in the past few years. Soft- ware pro ducers rush to release ob ject-oriented versions of their pro ducts. Countless b o oks and sp ecial issues of academic and trade journals have app eared on the sub ject. Students strive to b e able somehow to list \exp erience in ob ject-oriented programming" on their re- sumes. To judge from this frantic activity, ob ject-oriented programming is b eing greeted with an even greater p opularity than wehave seen in the past heralding earlier revolutionary ideas, such as \structured programming" or \exp ert systems". My intent in this rst chapter is to investigate and explain the basic principles of ob ject oriented programming, and in doing so to illustrate the following two prop ositions: OOP is a revolutionary idea, totally unlikeanything that has come b efore in program- ming. OOP is an evolutionary step, following naturally on the heels of earlier programming abstractions. 1.1 Why is Ob ject-Oriented Programming Popular? To judge from much of the p opular press, the following represent a few of the p ossible reasons why Ob ject-oriented programming has, in the past decade, b ecome so p opular: The hop e that it will quickly and easily lead to increased pro ductivity and improved reliability help solve the software crises. The desire for an easy transition from existing languages. The resonant similarity to techniques of thinking ab out problems in other domains.
    [Show full text]
  • The Alto and Ethernet Hardware
    Personal Distributed Computing: The Alto and Ethernet Hardware Charles P. Thacker Systems Research Center Digital Equipment Corp. 130 Lytton Avenue Palo Alto, CA 94301 Abstract • In addition to the workstations, the network contains serners---nodes that provide capabilities Between 1972 and 1980, the first distributed personal that need to be shared, either for economic or computing system was built at the Xerox Palo Alto logical reasons. Research Center. The system was composed of a number of Alto workstations connected by an Ether- Timesharing systems grew primarily from the vi- net local network. It also included servers that pro- sion of man-computer symbiosis presented by J.C.R. vided centralized facilities. This paper describes the Licklider in a landmark 1960 paper [29]. Efforts to development of the hardware that was the basis of realize the possibilities presented in this paper occu- the system. pied the creative talents of many computer science re- searchers through the sixties and beyond. Distributed personal computing systems build on this view of the Introduction way computers and people interact by providing a level of responsiveness that timesharing systems can- In the last few years, a new type of computing en- not achieve. vironment has become available. These distributed personal computing systems represent another step The first distributed personal computing system was built at the Xerox Palo Alto Research Center in the process, started by timesharing, of bringing over a period spanning 1972 to 1980. The workstation computing power closer to the user. Although many used in this system was the Alto [36]; the network was variations are possible, these systems share a number of characteristics: Ethernet.
    [Show full text]
  • Alan Mathison Turing and the Turing Award Winners
    Alan Turing and the Turing Award Winners A Short Journey Through the History of Computer TítuloScience do capítulo Luis Lamb, 22 June 2012 Slides by Luis C. Lamb Alan Mathison Turing A.M. Turing, 1951 Turing by Stephen Kettle, 2007 by Slides by Luis C. Lamb Assumptions • I assume knowlege of Computing as a Science. • I shall not talk about computing before Turing: Leibniz, Babbage, Boole, Gödel... • I shall not detail theorems or algorithms. • I shall apologize for omissions at the end of this presentation. • Comprehensive information about Turing can be found at http://www.mathcomp.leeds.ac.uk/turing2012/ • The full version of this talk is available upon request. Slides by Luis C. Lamb Alan Mathison Turing § Born 23 June 1912: 2 Warrington Crescent, Maida Vale, London W9 Google maps Slides by Luis C. Lamb Alan Mathison Turing: short biography • 1922: Attends Hazlehurst Preparatory School • ’26: Sherborne School Dorset • ’31: King’s College Cambridge, Maths (graduates in ‘34). • ’35: Elected to Fellowship of King’s College Cambridge • ’36: Publishes “On Computable Numbers, with an Application to the Entscheindungsproblem”, Journal of the London Math. Soc. • ’38: PhD Princeton (viva on 21 June) : “Systems of Logic Based on Ordinals”, supervised by Alonzo Church. • Letter to Philipp Hall: “I hope Hitler will not have invaded England before I come back.” • ’39 Joins Bletchley Park: designs the “Bombe”. • ’40: First Bombes are fully operational • ’41: Breaks the German Naval Enigma. • ’42-44: Several contibutions to war effort on codebreaking; secure speech devices; computing. • ’45: Automatic Computing Engine (ACE) Computer. Slides by Luis C.
    [Show full text]
  • Programming Environments • Mastering Different Programming Paradigms
    Overview • Motivation • Why study programming languages? • Some key concepts Introduction 1 2 What is a programming language? 3 4 What is a programming language? On language and thought (1) “...there is no agreement on what a programming Idea: language effects thought language really is and what its main purpose is supposed to be. Is a programming language a “The Language of Thought Hypothesis (LOTH) tool for instructing machines? A means of communicating postulates that thought and thinking take place in a between programmers? A vehicle for expressing high-level mental language. This language consists of a system of designs? A notation for algorithms? A way of expressing representations that is physically realized in the brain of relationships between concepts? A tool for experimenta- thinkers and has a combinatorial syntax (and semantics) tion? A means of controlling computerized devices? My such that operations on representations are causally view is that a general-purpose programming language must sensitive only to the syntactic properties of be all of those to serve its diverse set of users. The only thing a language cannot be – and survive – is a mere representations. …” collection of ‘‘neat’’ features.” -- Stanford Encyclopedia of Philosophy -- http://plato.stanford.edu/entries/language-thought/ -- Bjarne Stroustrup, The Design and Evolution of C++ http://www.cs.umbc.edu/331/papers/dne_notes.pdf Still controversial for natural languages: eskimos, numbers, etc. 5 6 On language and thought (2) On languages and thought (3) The tools we use have a profound (and “What doesn't exist are really powerful devious!) influence on our thinking habits, general forms of arguing with computers right now.
    [Show full text]