How Many Programming Languages are there in this World? CS 199 Computers Unplugged. What is a Programming Language? What is a Programming Language?

Size: px
Start display at page:

Download "How Many Programming Languages are there in this World? CS 199 Computers Unplugged. What is a Programming Language? What is a Programming Language?"

Transcription

1 CS 199 Computers Unplugged Course Notes 1 Week 4: Natural and Programming Languages Lecture 2: Programming Languages How Many Programming Languages are there in this World? Anton Setzer csetzer/index.html csetzer/lectures/ computersunplugged/10/index.html Number of languages linked from at HOPL: Same problems as for natural languages: Families of languages. Dialects. Different versions. Different compilers for the same language execute differently. November 5, Substantially based on Stephen Anderson: How many languages are there in the world. Available from files/howmany.pdf CS 199 1/ 30 What is a Programming Language? CS 199 2/ 30 What is a Programming Language? The Free Dictionary An artificial language used to write instructions that can be translated into machine language and then executed by a computer. Wikipedia language A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer Britannica Online Computer programming language, any of various languages for expressing a set of detailed instructions for a digital computer. Webopedia language.html A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks CS 199 3/ 30 CS 199 4/ 30

2 What is a Programming Language? What is a Language? My definition: A programming language is a set of descriptions such that each description can be used to instruct a computer or other mechanical device to perform a specific task. An alphabet is a finite set. A formal language is a set of strings over a given alphabet. CS 199 5/ 30 CS 199 6/ 30 What is a Programming Language? Adjustment Mechanism of a Mechanical Watch An Analogue Programming Language Is mp3 a programming language? Analogue computer languages. Not formal languages. Is English a programming language? CS 199 7/ 30 CS 199 7a/ 30

3 Vynil Record Analogue Programming Language Antikythera Mechanism CS 199 7b/ 30 CS 199 8/ 30 Antikythera Mechanism CS 199 9/ 30 Antikythera Mechanism (around BCE) From programming: The Antikythera mechanism from ancient Greece was a calculator utilizing gears of various sizes and configuration to determine its operation, which tracked the metonic cycle still used in lunar-to-solar calendars, and which is consistent for calculating the dates of the Olympiads. From Mark Wonnacott: Analogue Computers: The First Declarative Programming. The first machine computable delcarative program is within the earliest mechanical computer, the Antikythera mechanism (c. 70 BC). Changing the date with the mechanism s hand-crank turned a complex arrangement of gears to compute astronomical positions. Different gearing rations between connected gears dictate the relationships between them and ultimately between the date and calculated astronomical positions. These relationships are invariantly satisfied by the turning of the gears, making the gears a form of declarative program. CS / 30

4 Al-Jazari Musical Robots A Digital Programming Language History of Programming Languages Wikipedia, l-jazari created a musical automaton, which was a boat with four automatic musicians that floated on a lake to entertain guests at royal drinking parties. Professor Noel Sharkey has argued that it is quite likely that it was an early programmable automata and has produced a possible reconstruction of the mechanism; it has a programmable drum machine with pegs (cams) that bump into little levers that operated the percussion. The drummer could be made to play different rhythms and different drum patterns if the pegs were moved around. According to Charles B. Fowler, the automata were a robot band which performed more than fifty facial and body actions during each musical selection. CS / 30 CS / 30 Jacquard Loom (Invented 1801) Babbage s Analytical Engine (1834) Jacquard Loom, invented by Joseqph Marie Jacquard 1801 CS / 30 CS / 30

5 Babbage s Analytical Engine First Turing Complete Language Ada Lovelace - The first Computer Programmer It s Turing complete. More in CS-236 Lanugage and Computation. Any computable function can be computed in principle using Babbage s Analytical Engine. The language for Babbage s Analytical Engine is probably the first Turing-Complete Programming Language. CS / 30 CS / 30 Hello World Program 99 Bottles of Beer CS / 30 CS / 30

6 Popular Languages Scripting Languages Java C C++ Pascal Perl Python CS / 30 CS / 30 Easy to Use Languages Functional Programming Languages BASIC Visual Basic Haskell SML Coq (dependently typed) CS / 30 CS / 30

7 Logic Programming Markup Languages/Spreadsheets Prolog HTML Excel CS / 30 CS / 30 Misc Historically Famous Languages Database Languages SQL Graphical Languages LabVIEW Babbage s Analytical Language ENIAC FORTRAN LISP Cobol Simula CS / 30 CS / 30

8 Assembler Theoretical Languages Turing Machine CSP CS / 30 CS / 30 Extreme Languages Esoteric Languages SheerPower. Aimed at having the fastest compilation. What does this mean? Brainfuck. Aimed at having thesmallest compiler. What does this mean? Malbolge Aimed at having the most incomprehensible language. Cow. LOLCODE. Piet. Whitespace. CS / 30 CS / 30

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008.

Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008. Language Translation, History. CS152. Chris Pollett. Sep. 3, 2008. Outline. Language Definition, Translation. History of Programming Languages. Language Definition. There are several different ways one

More information

Chapter 1. The Big Picture

Chapter 1. The Big Picture Chapter 1 The Big Picture 1.1 Computing Systems Hardware The physical elements of a computing system (printer, circuit boards, wires, keyboard ) Software The programs that provide the instructions for

More information

Describe the layers of a computer system

Describe the layers of a computer system Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe the history of computer hardware and software

More information

Concepts in Programming Languages

Concepts in Programming Languages Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture

More information

Lecture 1: Course Introduction

Lecture 1: Course Introduction Lecture 1: Course Introduction CS164: Programming Languages and Compilers P. N. Hilfinger, 787 Soda Spring 2015 Acknowledgement. Portions taken from CS164 notes by G. Necula. Last modified: Wed Jan 21

More information

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.

Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Topic I Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 1 of Programming languages: Design and implementation (3RD EDITION)

More information

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING

PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING PROGRAMMING LANGUAGE PARADIGMS & THE MAIN PRINCIPLES OF OBJECT-ORIENTED PROGRAMMING JAN BARTONÍČEK This paper's goal is to briefly explain the basic theory behind programming languages and their history

More information

Lecture 1: Course Introduction

Lecture 1: Course Introduction Lecture 1: Course Introduction CS164: Programming Languages and Compilers P. N. Hilfinger, 787 Soda Fall 2013 Acknowledgement. Portions taken from CS164 notes by G. Necula. Last modified: Thu Aug 29 16:03:34

More information

Welcome to COSC Introduction to Computer Science

Welcome to COSC Introduction to Computer Science Welcome to COSC 1302 Introduction to Computer Science (Syllabus) Chapter 1 The Big Picture 1.1 Computing Systems Hardware The physical elements of a computing system (printer, circuit boards, wires, keyboard

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

Chapter 01. Introduction 2018/9/17. Chapter Goals. Computing Systems. Computing Systems. Layers of a Computing System. Abstraction

Chapter 01. Introduction 2018/9/17. Chapter Goals. Computing Systems. Computing Systems. Layers of a Computing System. Abstraction Chapter Goals Chapter 01 Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe the history of computer hardware and software Introduction

More information

CS 102 Lecture 1. Syllabus, history, intro

CS 102 Lecture 1. Syllabus, history, intro CS 102 Lecture 1 Syllabus, history, intro Contact Info Instructor: Hannah Aizenman Email: haizenm00@ccny.cuny.edu Office: NAC 7/311 Office Hours: After class by appointment 2:00-4:00 T/Th Recitation Instructor:

More information

CSc 372 Comparative Programming Languages

CSc 372 Comparative Programming Languages CSc 372 Comparative Programming Languages The University of Arizona Fall Semester, 2006 CSc 372, Fall 2006 Introduction Slide 1 CSc 372, Fall 2006 Introduction Slide 2 Introduction Instructor Teaching

More information

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers

PLAGIARISM. Administrivia. Course home page: Introduction to Programming Languages and Compilers Administrivia Introduction to Programming Languages and Compilers CS164 11:00-12:00 MWF 306 Soda Notes by G. Necula, with additions by P. Hilfinger Course home page: http://www-inst.eecs.berkeley.edu/~cs164

More information

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda

Introduction to Programming Languages and Compilers. CS164 11:00-12:00 MWF 306 Soda Introduction to Programming Languages and Compilers CS164 11:00-12:00 MWF 306 Soda Notes by G. Necula, with additions by P. Hilfinger Prof. Hilfinger CS 164 Lecture 1 1 Administrivia Course home page:

More information

A Brief History of Computer Science

A Brief History of Computer Science A Brief History of Computer Science 4700 Hundred years ago Sumerians invented the abacus Sand, lines, pebbles Sexagesimal Base 60 still used today Time, distance How do you count like that? Side trip Factors

More information

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES

8/27/17. CS-3304 Introduction. What will you learn? Semester Outline. Websites INTRODUCTION TO PROGRAMMING LANGUAGES CS-3304 Introduction In Text: Chapter 1 & 2 COURSE DESCRIPTION 2 What will you learn? Survey of programming paradigms, including representative languages Language definition and description methods Overview

More information

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science) Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.

More information

Compilers. Prerequisites

Compilers. Prerequisites Compilers Prerequisites Data structures & algorithms Linked lists, dictionaries, trees, hash tables Formal languages & automata Regular expressions, finite automata, context-free grammars Machine organization

More information

COURSE OVERVIEW. Introduction to Computer Engineering 2015 Spring by Euiseong Seo

COURSE OVERVIEW. Introduction to Computer Engineering 2015 Spring by Euiseong Seo COURSE OVERVIEW Introduction to Computer Engineering 2015 Spring by Euiseong Seo Course Objectives Introduction to computer engineering For computer engineer-wannabe For students studying other fields

More information

Outline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples

Outline. Introduction to Programming (in C++) Introduction. First program in C++ Programming examples Outline Introduction to Programming (in C++) Introduction Programming examples Algorithms, programming languages and computer programs Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer

More information

A little bit of history. Jordi Cortadella Department of Computer Science

A little bit of history. Jordi Cortadella Department of Computer Science A little bit of history Jordi Cortadella Department of Computer Science Mechanization Introduction to Programming Dept. CS, UPC 2 Mechanization Introduction to Programming Dept. CS, UPC 3 The old dream

More information

Low-Level Languages. Computer Programs and Programming Languages

Low-Level Languages. Computer Programs and Programming Languages Computer Programs and Programming Languages What is a computer program? Set of instructions that directs computer to perform tasks Programming used to write instructions 1 Computer Programs and Programming

More information

Announcements Tues., Aug and 2. to call them ( ) ! For next time, read Learning Computing with Robots, chs.

Announcements Tues., Aug and 2. to call them ( ) ! For next time, read Learning Computing with Robots, chs. Announcements Tues., Aug. 24! For next time, read Learning Computing with Robots, chs. 1 and 2.! The Blackboard site is up and operational!! not much content! mostly links back to my course homepage! Printed

More information

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented

! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented Course Goal CMSC 330: Organization of Programming Languages Introduction Learn how programming languages work Broaden your language horizons! Different programming languages! Different language features

More information

Overview of a computer

Overview of a computer Overview of a computer One marks 1. What is von Neumann concept also called as? Stored memory or stored program concept. 2. Who is the father of computer Charles Babbage 3. What is a computer? It is an

More information

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2014 Euiseong Seo Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Textbook Programming Challenges

More information

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Introduction Instructor:

More information

CS2303 C14 Systems Programming Concepts. Bob Kinicki

CS2303 C14 Systems Programming Concepts. Bob Kinicki CS2303 C14 Concepts Bob Kinicki Survey and TA/SA s Pause to Look Backwards and Forwards Course Objectives Course Operation/Expectations Course Plan and Syllabus Systems Concepts Higher Level Language

More information

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming 30 th September 2018 Objective: To learn meaning and concepts of programming Outcome: By the end of this students should be able to describe the meaning of programming Section 1: What is a programming

More information

CS140 Lecture 09a: Brief History of Computing

CS140 Lecture 09a: Brief History of Computing CS140 Lecture 09a: Brief History of Computing "There is no reason anyone would want a computer in their home." -- Ken Olson, founder and CEO of Digital Equipment Corp., 1977 John Magee 17 February 2017

More information

MECHANICAL COMPUTATION, BABBAGE AND HIS ENGINES

MECHANICAL COMPUTATION, BABBAGE AND HIS ENGINES MECHANICAL COMPUTATION, BABBAGE AND HIS ENGINES Janet Delve & David Anderson Taken from A History of Computing Technology by Michael R. Williams, 2000 MECHANICAL CALCULATING MACHINES MECHANICAL CALCULATING

More information

An Incomplete History of Computation

An Incomplete History of Computation An Incomplete History of Computation Charles Babbage 1791-1871 Lucasian Professor of Mathematics, Cambridge University, 1827-1839 First computer designer Ada Lovelace 1815-1852 First computer programmer

More information

SOFTWARE ARCHITECTURE 6. LISP

SOFTWARE ARCHITECTURE 6. LISP 1 SOFTWARE ARCHITECTURE 6. LISP Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ 2 Compiler vs Interpreter Compiler Translate programs into machine languages Compilers are

More information

COMP 201: Principles of Programming

COMP 201: Principles of Programming COMP 201: Principles of Programming 1 Learning Outcomes To understand what computing entails and what the different branches of computing are. To understand the basic design of a computer and how it represents

More information

Com S 541. Programming Languages I

Com S 541. Programming Languages I Programming Languages I Lecturer: TA: Markus Lumpe Department of Computer Science 113 Atanasoff Hall http://www.cs.iastate.edu/~lumpe/coms541.html TR 12:40-2, W 5 Pramod Bhanu Rama Rao Office hours: TR

More information

Mechanization. A little bit of history. Mechanization. The old dream of mechanical computing. Jordi Cortadella Department of Computer Science

Mechanization. A little bit of history. Mechanization. The old dream of mechanical computing. Jordi Cortadella Department of Computer Science Mechanization A little bit of history Jordi Cortadella Department of Computer Science Mechanization 2 The old dream of mechanical computing Roman Abacus Calculating-Table by Gregor Reisch: Margarita Philosophica,

More information

Introduction. A. Bellaachia Page: 1

Introduction. A. Bellaachia Page: 1 Introduction 1. Objectives... 2 2. Why are there so many programming languages?... 2 3. What makes a language successful?... 2 4. Programming Domains... 3 5. Language and Computer Architecture... 4 6.

More information

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that

More information

Fundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen

Fundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen Fundamentals of Python: First Programs Chapter 1: Introduction Modifications by Mr. Dave Clausen Objectives After completing this chapter, you will be able to: Describe the basic features of an algorithm

More information

Chapter 2 HISTORICAL DEVELOPMENT OF COMPUTERS

Chapter 2 HISTORICAL DEVELOPMENT OF COMPUTERS Chapter 2 HISTORICAL DEVELOPMENT OF COMPUTERS History of Computers Outline Generations of Computers Types of Computers 2 History of Computers A computer is a machine that works with data and information

More information

CS 50 Introduction to Computer Science I

CS 50 Introduction to Computer Science I CS 50 Introduction to Computer Science I Michael D. Smith smith@eecs.harvard.edu Fall 2005 CS50 1 Q1: What s in common? Internet commerce and electronic markets Blockbuster movies and their special effects

More information

Introduction to Engineering Using Robotics Experiments. Dr. Yinong Chen

Introduction to Engineering Using Robotics Experiments. Dr. Yinong Chen Introduction to Engineering Using Robotics Experiments Dr. Yinong Chen Outline Historical Perspective Programming Language Generations Programming Language Paradigms Imperative Programming Paradigm Writing

More information

CS1100 Introduction to Programming

CS1100 Introduction to Programming Course Outline Introduction to Computing CS00 Introduction to Programming Introduction to Computing Programming (in C) Exercises and examples from the mathematical area of Numerical Methods Madhu Mutyam

More information

HST250 (section 740) Exam #1 Wednesday, February 10, 2010

HST250 (section 740) Exam #1 Wednesday, February 10, 2010 HST250 (section 740) Exam #1 Wednesday, February 10, 2010 NAME: PID: Instructions Make sure you enter your name & PID on the exam sheet Select the best answer from those provided You may not leave the

More information

Discovering Computers 2008

Discovering Computers 2008 Discovering Computers 2008 Chapter 13 (a) Programming Languages and Program Development 1 Chapter 13 Objectives Differentiate between machine and assembly languages Identify and discuss the purpose of

More information

Programming Languages 2nd edition Tucker and Noonan"

Programming Languages 2nd edition Tucker and Noonan Programming Languages 2nd edition Tucker and Noonan" " Chapter 1" Overview" " A good programming language is a conceptual universe for thinking about programming. " " " " " " " " " " " " "A. Perlis" "

More information

LECTURE 1. Overview and History

LECTURE 1. Overview and History LECTURE 1 Overview and History COURSE OBJECTIVE Our ultimate objective in this course is to provide you with the knowledge and skills necessary to create a new programming language (at least theoretically).

More information

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified

! Broaden your language horizons. ! Study how languages are implemented. ! Study how languages are described / specified Course Goal CMSC 330: Organization of Programming Languages Introduction Instructors: Mike Hicks, Chau-Wen Tseng TAs: Srividya Ramaswamy, Eylul Dogruel, Khoa Doan Learn how programming languages work!

More information

Programming Languages, Summary CSC419; Odelia Schwartz

Programming Languages, Summary CSC419; Odelia Schwartz Programming Languages, Summary CSC419; Odelia Schwartz Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design

More information

CSCI 3136 Principles of Programming Languages

CSCI 3136 Principles of Programming Languages CSCI 3136 Principles of Programming Languages Summer 2013 Faculty of Computer Science Dalhousie University 1 / 100 CSCI 3136 Principles of Programming Languages Summer 2013 Aminul Islam Faculty of Computer

More information

Introduction P L COS 301. Fall School of Computing and Information Science University of Maine. Introduction COS 301.

Introduction P L COS 301. Fall School of Computing and Information Science University of Maine. Introduction COS 301. s? School of Computing and Information Science University of Maine Fall 2018 Outline s? 1 2 s? 3 4 s? Me s? Roy M. Turner PhD: Georgia Tech Research: AI (intelligent agents, robot control, software agents,

More information

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction Introduction (Cont.) Introduction to CSE 1325 Object Oriented Programming (Using Java) Sharma Chakravarthy Information Technology Laboratory (IT Lab) Computer Science and Engineering Department The University

More information

CS383 PROGRAMMING LANGUAGES. Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University

CS383 PROGRAMMING LANGUAGES. Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University CS383 PROGRAMMING LANGUAGES Kenny Q. Zhu Dept. of Computer Science Shanghai Jiao Tong University KENNY Q. ZHU Research Interests: Programming Languages Probabilistic Programming Data Processing Concurrency

More information

CS101 Lecture 29: Brief History of Computing

CS101 Lecture 29: Brief History of Computing CS101 Lecture 29: Brief History of Computing "There is no reason anyone would want a computer in their home." -- Ken Olson, founder and CEO of Digital Equipment Corp., 1977 John Magee 1 August 2013 Some

More information

Part (01) Introduction to Computer

Part (01) Introduction to Computer Part (01) Introduction to Computer Dr. Ahmed M. ElShafee 1 Dr. Ahmed ElShafee, ACU : Summer 2014, Introduction to CS 1 TURING MODEL The idea of a universal computational device was first described by Alan

More information

Lecture 1: CS2400 Introduction to Computer Science

Lecture 1: CS2400 Introduction to Computer Science Lecture 1: CS2400 Introduction to Computer Science Introduction to the course Introduction to computers Ethics Programming C++ CS2400 Lecture 1-1- 2017 David M. Chelberg Computer Science What is computer

More information

What is programming? Elements of Programming Languages. From machine code to programming languages. What is a programming language?

What is programming? Elements of Programming Languages. From machine code to programming languages. What is a programming language? What is programming? Elements of Programming Languages Lecture 0: Introduction and Course Outline James Cheney University of Edinburgh September 18, 2017 Computers are deterministic machines, controlled

More information

Introduction to Computer Science I

Introduction to Computer Science I Introduction to Computer Science I CSE 1020 www.cse.yorku.ca/course/1020 Programming Contests in September and October Everyone is welcome to participate in these contests. The students who will represent

More information

Test Bank for Prelude to Programming Chapter 0

Test Bank for Prelude to Programming Chapter 0 Test Bank for Prelude to Programming Chapter 0 MULTIPLE CHOICE 1. Which of the following is not an attribute of a computer? a. can act on intermediate results without human intervention b. has its roots

More information

Early Calculating Tools

Early Calculating Tools Early Calculating Tools Abacus At least 5,000 years old Memory aid for making calculations Cannot perform actual computations Eventually replaced by pencil and paper Early Calculating Tools Pascalene Invented

More information

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 1. ÚVOD DO PŘEDMĚTU, LAMBDA CALCULUS

FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 1. ÚVOD DO PŘEDMĚTU, LAMBDA CALCULUS FUNKCIONÁLNÍ A LOGICKÉ PROGRAMOVÁNÍ 1. ÚVOD DO PŘEDMĚTU, LAMBDA CALCULUS 2011 Jan Janoušek MI-FLP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Funkcionální a logické programování

More information

CE151 Introduction to Programming Part 1 Introduction

CE151 Introduction to Programming Part 1 Introduction CE151 Introduction to Programming Part 1 Introduction 29/09/2014 CE151 Part 1 1 Module Schedule There are two lectures (Monday 11.00-11.50 and 13.00-13.50) and two 2-hour labs (on Tuesdays and Thursdays)

More information

The First Operating System Was Human

The First Operating System Was Human The First Operating System Was Human CS 333 Professor Karavanic Lecture 1 1. What is an Operating System? Historical View 2. Course Information 3. What is an Operating System? Operating Systems Goals and

More information

Which of the following is not true of FORTRAN?

Which of the following is not true of FORTRAN? PART II : A brief historical perspective and early high level languages, a bird's eye view of programming language concepts. Syntax and semantics-language definition, syntax, abstract syntax, concrete

More information

An Introduction to Computer Science CS 8: Introduction to Computer Science Lecture #2

An Introduction to Computer Science CS 8: Introduction to Computer Science Lecture #2 An Introduction to Computer Science CS 8: Introduction to Computer Science Lecture #2 Ziad Matni Dept. of Computer Science, UCSB A Word About Registration for CS8 FOR THOSE OF YOU NOT YET REGISTERED: This

More information

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou

COMP-421 Compiler Design. Presented by Dr Ioanna Dionysiou COMP-421 Compiler Design Presented by Dr Ioanna Dionysiou Administrative! Next time reading assignment [ALSU07] Chapters 1,2 [ALSU07] Sections 1.1-1.5 (cover in class) [ALSU07] Section 1.6 (read on your

More information

Principles of computer programming. Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković

Principles of computer programming. Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković Principles of computer programming Profesor : doc. dr Marko Tanasković Assistent : doc. dr Marko Tanasković E-mail: mtanaskovic@singidunum.ac.rs Course organization Lectures: Presentation of concepts and

More information

Chapter 1: An Introduction to Computer Science. Invitation to Computer Science, C++ Version, 6-th Edition

Chapter 1: An Introduction to Computer Science. Invitation to Computer Science, C++ Version, 6-th Edition Chapter 1: An Introduction to Computer Science Invitation to Computer Science, C++ Version, 6-th Edition Objectives In this chapter, you will learn about The definition of computer science Algorithms A

More information

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing

What Is Computer Science? The Scientific Study of Computation. Expressing or Describing What Is Computer Science? The Scientific Study of Computation CMPSCI 630: Programming Languages Introduction Spring 2009 (with thanks to Robert Harper) Expressing or Describing Automating Understanding

More information

CSCI.4430/6969 Programming Languages Lecture Notes

CSCI.4430/6969 Programming Languages Lecture Notes CSCI.4430/6969 Programming Languages Lecture Notes August 28, 2006 1 Brief History of Programming Languages Ada Augusta, the Countess of Lovelace, the daughter of the poet Lord Byron, is attributed as

More information

CS A331 Programming Language Concepts

CS A331 Programming Language Concepts CS A331 Programming Language Concepts Lecture 4 Programming Language Semantics and Code Generation February 3, 2014 Sam Siewert PLP Companion Materials CD-ROM is On-Line: http://booksite.elsevier.com/9780123745149/?isbn=978

More information

CSE 143 Lecture 14 AnagramSolver and Hashing

CSE 143 Lecture 14 AnagramSolver and Hashing CSE 143 Lecture 14 AnagramSolver and Hashing slides created by Ethan Apter http://www.cs.washington.edu/143/ Ada Lovelace (1815-1852) Ada Lovelace is considered the first computer programmer for her work

More information

(History of Computers) Lecture # 03 By: M.Nadeem Akhtar. Lecturer. URL:

(History of Computers) Lecture # 03 By: M.Nadeem Akhtar. Lecturer. URL: INTRODUCTION TO INFORMATION & COMMUNICATION TECHNOLOGIES. (History of Computers) Lecture # 03 By: M.. Lecturer. Department of CS & IT. URL: https://sites.google.com/site/nadeemcsuoliict/home/lectures 1

More information

History of computing. Until future. Computers: Information Technology in Perspective By Long and Long

History of computing. Until future. Computers: Information Technology in Perspective By Long and Long History of computing Until future Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. & 2011 J. Holvikivi Evolution of Computing 1.2 First Computers 1960s

More information

CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan

CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan CS508-Modern Programming Solved MCQ(S) From Midterm Papers (1 TO 22 Lectures) BY Arslan April 18,2017 V-U For Updated Files Visit Our Site : Www.VirtualUstaad.blogspot.com Updated. MidTerm Papers Solved

More information

Type Inference. Prof. Clarkson Fall Today s music: Cool, Calm, and Collected by The Rolling Stones

Type Inference. Prof. Clarkson Fall Today s music: Cool, Calm, and Collected by The Rolling Stones Type Inference Prof. Clarkson Fall 2016 Today s music: Cool, Calm, and Collected by The Rolling Stones Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax Formal semantics

More information

CS2110 CONCLUSION Spring 2018

CS2110 CONCLUSION Spring 2018 CONCLUSION CS2110 Spring 2018 History 2 Programming and computers: Momentous changes since the 1940s or since even the use of punch cards and attempt at automation Punch cards 3 Jacquard loom Loom still

More information

History 5/8/18 CONCLUSION. Punch cards

History 5/8/18 CONCLUSION. Punch cards History 2 Programming and computers: Momentous changes since the 1940s or since even the use of punch cards and attempt at automation CONCLUSION CS2110 Spring 2018 Punch cards Charles Babbage designed

More information

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful? Organization of Programming Languages (CSE452) Instructor: Dr. B. Cheng Fall 2004 1 Why are there so many programming languages? Evolution -- we've learned better ways of doing things over time Socio-economic

More information

CMPSCI 105 Fall 2013 LECTURE #1 TOPICS (EXPANDED)

CMPSCI 105 Fall 2013 LECTURE #1 TOPICS (EXPANDED) CMPSCI 105 Fall 2013 LECTURE #1 TOPICS (EXPANDED) Professor: William T. Verts, Ph.D. (Senior Lecturer II) Office: LGRC A357 Hours: TuTh 2:00-3:45 and by appointment EMail: verts@cs.umass.edu Web: http://people.cs.umass.edu/~verts/

More information

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 CS 565: Programming Languages Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106 Administrivia Who am I? Course web page http://www.cs.purdue.edu/homes/peugster/cs565spring08/ Office hours By appointment Main

More information

COMP 102: Computers and Computing Lecture 1: Introduction!

COMP 102: Computers and Computing Lecture 1: Introduction! COMP 102: Computers and Computing Lecture 1: Introduction! Instructor: Kaleem Siddiqi (siddiqi@cim.mcgill.ca) Class web page: www.cim.mcgill.ca/~siddiqi/102.html Outline for today What are computers? What

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 1 - Introduction Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages Spring 2014

More information

Objectives. Structure. Munster Programming Training

Objectives. Structure. Munster Programming Training 1 Munster Programming Training Objectives 1. To give a short and basic introduction to computer programming, web design, web animation and video production. 2. To foster interest in computers by encouraging

More information

Chapter Twelve. Systems Design and Development

Chapter Twelve. Systems Design and Development Chapter Twelve Systems Design and Development After reading this chapter, you should be able to: Describe the process of designing, programming, and debugging a computer program Explain why there are many

More information

HISTORY OF COMPUTING

HISTORY OF COMPUTING NAME: DATE: PERIOD: 01) Definition of computers: HISTORICAL DEVICES 02) How is the term Analog used when representing data? 03) Answer the questions for the two devices used prior to the invention of the

More information

An Introduction to Computer Science CS 8: Introduction to Computer Science, Winter 2018 Lecture #2

An Introduction to Computer Science CS 8: Introduction to Computer Science, Winter 2018 Lecture #2 An Introduction to Computer Science CS 8: Introduction to Computer Science, Winter 2018 Lecture #2 Ziad Matni Dept. of Computer Science, UCSB A Word About Registration for CS8 FOR THOSE OF YOU NOT YET

More information

Welcome to COS151! 1.1

Welcome to COS151! 1.1 Welcome to COS151! Title: Introduction to Computer Science Course website: https://cs.up.ac.za/admin/courses/cos151 Find the study guide there Announcements Assignments (download & upload) Brief overview

More information

Winter 2019 CISC101 1/17/2019

Winter 2019 CISC101 1/17/2019 CISC101 Reminders Today TA emails are listed on the Labs page of the course web site. More assignments are posted. Commanding the CPU the use of a Stack. Computer Languages History of Python. Features

More information

Compilation 2012 The What and Why of Compilers

Compilation 2012 The What and Why of Compilers Compilation 2012 The What and Why of Compilers Jan Midtgaard Michael I. Schwartzbach Aarhus University What is a Compiler? A program that: tralates from one programming language to another preserves the

More information

The trusted, student-friendly online reference tool. Name: Date:

The trusted, student-friendly online reference tool. Name: Date: World Book Online: The trusted, student-friendly online reference tool. World Book Advanced Database* Name: Date: History of Computers Computers! Virtually no other form of technology has become so powerful

More information

Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems. Tommi Tervonen

Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems. Tommi Tervonen Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems Tommi Tervonen Econometric Institute, Erasmus School of Economics Course learning objectives After this course, you

More information

Chapter 11 :: Functional Languages

Chapter 11 :: Functional Languages Chapter 11 :: Functional Languages Programming Language Pragmatics Michael L. Scott Copyright 2016 Elsevier 1 Chapter11_Functional_Languages_4e - Tue November 21, 2017 Historical Origins The imperative

More information

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains

Chapter 1. Preview. Reason for Studying OPL. Language Evaluation Criteria. Programming Domains Chapter 1. Preview Reason for Studying OPL Reason for Studying OPL? Programming Domains Language Evaluation Criteria Language Categories Language Design Trade-Offs Implementation Methods Programming Environments

More information

CS 236 Language and Computation

CS 236 Language and Computation CS 236 Language and Computation Course Notes Chapt. 1: Introduction Anton Setzer (Based on a book draft by J. V. Tucker and K. Stephenson) Dept. of Computer Science, Swansea University http://www.cs.swan.ac.uk/

More information

6.823 Computer System Architecture

6.823 Computer System Architecture 6.823 Computer System Architecture http://www.csg.lcs.mit.edu/6.823 The emphasis in this course is on architectural mechanisms and not on quantitative performance evaluation. - Evolution of instruction

More information

Part (04) Introduction to Programming

Part (04) Introduction to Programming Part (04) Introduction to Programming Dr. Ahmed M. ElShafee 1 Dr. Ahmed ElShafee, ACU : Summer 2014, Introduction to CS 1 EVOLUTION To write a program for a computer, we must use a computer language. A

More information

CS 1 Notes 1 - Early Computing and 2 - Electronic Computing

CS 1 Notes 1 - Early Computing and 2 - Electronic Computing CS 1 Notes 1 - Early Computing and 2 - Electronic Computing Computer Science: The discipline that seeks to build a scientific foundation for such topics as: computer design computer programming information

More information

EVOLUTION OF COMPUTERS. In the early years, before the computer was invented, there are several inventions of counting machines.

EVOLUTION OF COMPUTERS. In the early years, before the computer was invented, there are several inventions of counting machines. EVOLUTION OF COMPUTERS In the early years, before the computer was invented, there are several inventions of counting machines. 200 BC 500 BC CHINESE ABACUS EGYPTIAN ABACUS 1620 JOHN NAPIER NAPIER'S BONES

More information