# CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

Size: px
Start display at page:

Download "CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN"

Transcription

1 What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing, Pascal, Fortran, Modula, Eiffel Perl, Python, PHP, C#, Ruby Instructor: Ali Juma But these are also nearly the same. What about these? Scheme/Lisp Prolog Haskell ML 1 2 A survey of counted loops ("for loops"): C, C++, Java A survey of counted loops: FORTRAN int sum = 0; int i; for (i = 1; i < 11; i++) sum += i; /* Note the semicolons everywhere. */ SUM = 0 DO 100 I = 1, SUM = SUM + I 3 4

2 A survey of counted loops: COBOL A survey of counted loops: Turing MOVE 0 TO SUM MOVE 1 TO I PERFORM ADD-I-TO-SUM UNTIL I = 11. ADD-I-TO-SUM ADD I TO SUM ADD 1 TO I. var sum := 0 for i : sum += i end for -- or -- var sum := 0 type range : for i : range sum += i end for 5 6 A survey of counted loops: Python Looping over a list sum = 0 for i in range(11): sum += i Python: for i in list: # Do something with i. Java: for (Iterator it = mylist.iterator(); it.hasnext(); ) { MyClass mc = (MyClass) it.next(); // Do something with mc. } Java 1.5: List<MyClass> mylist; // It's a list of MyClass objects. for (MyClass mc : mylist ) { // Do something with mc. } 7 8

5 Tutorials Academic offenses Most weeks, the tutorial will be run as a help session where a TA will be present to answer questions. SF 1012, Fridays at 12, starting Sept. 12 We also have SF 1013 available if SF 1012 gets full. Any exceptions to this will be announced in class. It is not OK to "work together". Don't even look at anyone else's code. The labs are to be done individually. The project is to be done by your group only. All work must include the name and student number of the author or authors. You may use material from other sources if you include attribution. This includes the textbook and all other references, including online and printed. If you include full attribution, you have not committed an academic offense. If your attributions indicate that you haven't done much work, then the mark you get may be rather low. I'll be checking in two cases: all submissions together, where possible in more detail, where there's reason to wonder (Why do I care?) The current topic: introduction Kinds of languages Introduction! reasons for studying languages language classifications level, natural data types, paradigm simple syntax specification Object-oriented programming: Python Types and values Syntax and semantics Functional programming: Scheme Exceptions Logic programming: Prolog We can classify by: level natural data types paradigm Levels: machine assembly high-level Data types: COBOL: records FORTRAN: "real" numbers LISP and Scheme: lists, functions 19 20

6 Terminology: "first class" First-class "objects" are things that the language allows programs to: declare assign values to return as function values or: create without a name Example: functions/methods C: can't be created by programs (that is, C functions can't construct new C functions) or assigned values but you can have pointers to functions Java: can't even have function pointers Scheme: functions are first-class objects. Example: types C: types can't be created or manipulated at runtime, but can be declared in your code (typedefs and structs). C++, Java: you can have template arguments (known as type parameters in Java) which take on a type as their value, but you still can't create or manipulate types at runtime. Who would want to create types at runtime? Programming paradigms imperative: program is sequence of orders to be carried out Fortran, Cobol, C, Basic object-oriented: program is an interacting community Smalltalk, C++, Java, Python functional: program consists only of function definitions and function calls; in particular, there are no assignment statements, no loops. Lisp, Scheme, ML logic: program finds variables that satisfy predicates Prolog How does this affect a language's power? The current topic: introduction It doesn't. According to the Church-Turing thesis, anything that can be computed can be computed by a Turing machine, and all of our languages are capable of doing all that a Turing machine can do. That is, all of our languages have equivalent computational power. But our languages may differ in how easy it is to express particular computations. So we choose a language by how well it suits what we're trying to do, not for whether or not it permits us to do what we want. Introduction! reasons for studying languages! language classifications simple syntax specification Object-oriented programming: Python Types and values Syntax and semantics Functional programming: Scheme Exceptions Logic programming: Prolog 23 24

7 Syntax What are you allowed to say? -- syntax. What does it mean? -- semantics. We'll come back to both syntax and semantics later on. For now, we just need to know a little about describing syntax. Reference: Sebesta, Chapter 3. Describing syntax The standard notation used in computing is Backus-Naur form or BNF. Example 1 (in C/Java): x = y + z; <asst stmt> ::= <vbl> '=' <expr> ';' This rule says that an assignment statement is a variable name, followed by an = operator, followed by an expression, followed by a semicolon. Of course, we'd also need to give definitions for <vbl> and <expr>. Example 2 (for a simplified language): <expr> ::= <vbl> <vbl> '+' <vbl> <vbl> '-' <vbl> This rule says in our simplified language, an expression is a variable name, or a variable name followed by a + operator followed by a variable name, or a variable name followed by a - operator followed by a variable name. Note that the symbol " " means "or" Backus-Naur form (BNF) Extended BNF On the left, the form being described. Then, the ::= (or!) symbol. Then, the components allowed in the form, with pipes used to separate multiple allowed definitions of the same form. Components that must be exactly as shown are put in quotation marks: e.g. '='. The names of the form and of components that are forms themselves are put in angle brackets < > or distinguished by a special typeface. In other words, BNF is like this: <BNF description> ::= <form> '::=' <components> Repetition: use curly brackets, which mean "zero or more" of their contents. <comma expr> ::= <expr> { ',' <expr> } A comma expression consists of one or more expressions, separated by commas. Optional parts: use square brackets, which mean "zero or one" of their contents. <if stmt> ::= 'if' '(' <expr> ')' <stmt> [ 'else' <stmt> ] An "if" statement has at most one "else" clause. Alternatives: use brackets and pipes, which mean "choose exactly one" <expr> ::= <vbl> ('+' '-' '*' '\') <vbl> An expression consists of a variable followed by exactly one symbol followed by another variable. BNF and Extended BNF are equivalent in what they can describe, but Extended BNF improves readability

8 BNF usage BNF style varies: < > may be replaced by font choice or subscripts quotation marks may be replaced by font choice or lack of subscripts Sometimes usage can be a little loose. The reader is supposed to figure it out from context. 29

### 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

### A language is a subset of the set of all strings over some alphabet. string: a sequence of symbols alphabet: a set of symbols

The current topic:! Introduction! Object-oriented programming: Python! Functional programming: Scheme! Python GUI programming (Tkinter)! Types and values! Logic programming: Prolog! Introduction! Rules,

### 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

### 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

### 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

### CS 3304 Comparative Languages. Lecture 1: Introduction

CS 3304 Comparative Languages Lecture 1: Introduction 17 January 2012 2012 Denis Gracanin Course Overview 2 Welcome What this course is about? What this course is not about? What will you learn? How will

### 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)

### CSc 520. Course Outline (Subject to change) Course Outline (Subject to change)... Principles of Programming Languages. Christian Collberg

Slide 0 2 Course Outline (Subject to change) This course will define, analyze and evaluate important concepts found in current programming languages. Its goals are to build an ability to evaluate and compare

### 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

### 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

### 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.

### COSC 2P90 Programming Languages & Object-Orientation

COSC 2P90 Programming Languages & Object-Orientation Hi! 1 Textbooks Main Text Comparative Programming Languages 3rd ed.; Wilson, LB & Clark, RG; Addison-Wesley (2001); ISBN 0-201-71012-9 Supplemental

### 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

### Why are there so many programming languages? Why do we have programming languages? What is a language for? What makes a language successful?

Chapter 1 :: Introduction Introduction Programming Language Pragmatics Michael L. Scott Why are there so many programming languages? evolution -- we've learned better ways of doing things over time socio-economic

### Tutorials. Tutorial every Friday at 11:30 AM in Toldo 204 * discuss the next lab assignment

60-212 subir@cs.uwindsor.ca Phone # 253-3000 Ext. 2999 web site for course www.cs.uwindsor.ca/60-212 Dr. Subir Bandyopadhayay Website has detailed rules and regulations All assignments and labs will be

### 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

Programming Paradigms Programming languages A Programming language is a notational system for describing tasks/computations in a machine and human readable form. Most computer languages are designed to

### Welcome to Introduction to Computer Science I

Welcome to Introduction to Computer Science I CSE 1020 moodle.yorku.ca Instructor Name: Franck van Breugel Email: franck@cse.yorku.ca Please use your EECS or York account to send me email Office: Lassonde

### 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

### 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

### Week 2: The Clojure Language. Background Basic structure A few of the most useful facilities. A modernized Lisp. An insider's opinion

Week 2: The Clojure Language Background Basic structure A few of the most useful facilities A modernized Lisp Review of Lisp's origins and development Why did Lisp need to be modernized? Relationship to

### CS 3030 Scripting Languages Syllabus

General Information CS 3030 Scripting Languages Semester: Fall 2017 Textbook: Location: Instructor Info: None. We will use freely available resources from the Internet. Online Ted Cowan tedcowan@weber.edu

### SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2

### Why are there so many programming languages?

Chapter 1 :: Introduction Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier 1 Chapter01_ Introduction_4e - Tue November 21, 2017 Introduction Why are there so many

### Programmiersprachen (Programming Languages)

2016-05-13 Preface Programmiersprachen (Programming Languages) coordinates: lecturer: web: usable for: requirements: No. 185.208, VU, 3 ECTS Franz Puntigam http://www.complang.tuwien.ac.at/franz/ps.html

### Web Programming Fall 2011

Web Programming Fall 2011 Course number: M&IS 24065 Section: 002 CRN: 23080 Location: BSA 110 Meeting Day: TR Meeting Time: 12:30-1:45 Instructor Information: Name: Professor Janet Formichelli, MS E-mail:

### Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed

Chapter 1 :: Programming Language Pragmatics Michael L. Scott Early computers (1940s) cost millions of dollars and were programmed in machine language machine s time more valuable than programmer s machine

### 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:

### 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

### Programming Languages Third Edition

Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

### Chapter 5 Names, Binding, Type Checking and Scopes

Chapter 5 Names, Binding, Type Checking and Scopes Names - We discuss all user-defined names here - Design issues for names: -Maximum length? - Are connector characters allowed? - Are names case sensitive?

### Chapter 8. Statement-Level Control Structures

Chapter 8 Statement-Level Control Structures Chapter 8 Topics Introduction Selection Statements Iterative Statements Unconditional Branching Guarded Commands Conclusions Copyright 2009 Addison-Wesley.

### Defining Program Syntax. Chapter Two Modern Programming Languages, 2nd ed. 1

Defining Program Syntax Chapter Two Modern Programming Languages, 2nd ed. 1 Syntax And Semantics Programming language syntax: how programs look, their form and structure Syntax is defined using a kind

### The current topic: Python. Announcements. Python. Python

The current topic: Python Announcements! Introduction! reasons for studying languages! language classifications! simple syntax specification Object-oriented programming: Python Types and values Syntax

### 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

### 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

### Lecturer: William W.Y. Hsu. Programming Languages

Lecturer: William W.Y. Hsu Programming Languages Chapter 9 Data Abstraction and Object Orientation 3 Object-Oriented Programming Control or PROCESS abstraction is a very old idea (subroutines!), though

### 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).

### 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

### Introduction. Primitive Data Types: Integer. Primitive Data Types. ICOM 4036 Programming Languages

ICOM 4036 Programming Languages Primitive Data Types Character String Types User-Defined Ordinal Types Array Types Associative Arrays Record Types Union Types Pointer and Reference Types Data Types This

### 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

### Week 5: Background. A few observations on learning new programming languages. What's wrong with this (actual) protest from 1966?

Week 5: Background A few observations on learning new programming languages What's wrong with this (actual) protest from 1966? Programmer: "Switching to PL/I as our organization's standard programming

### 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

### 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

### Programming (Econometrics)

Programming (Econometrics) Lecture 1: Introduction Tommi Tervonen Econometric Institute, Erasmus University Rotterdam Course learning objectives After this course, you should be able to: Program econometrical

### Introduction Primitive Data Types Character String Types User-Defined Ordinal Types Array Types. Record Types. Pointer and Reference Types

Chapter 6 Topics WEEK E FOUR Data Types Introduction Primitive Data Types Character String Types User-Defined Ordinal Types Array Types Associative Arrays Record Types Union Types Pointer and Reference

### 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

### Iterative Statements. Iterative Statements: Examples. Counter-Controlled Loops. ICOM 4036 Programming Languages Statement-Level Control Structure

ICOM 4036 Programming Languages Statement-Level Control Structure Selection Statement Iterative Statements Unconditional Branching Guarded Commands This lecture covers review questions 8-16 This lecture

### CISC 124: Introduction To Computing Science II

CISC 124: Introduction To Computing Science II instructor: Margaret Lamb instructor's home page: www.cs.queensu.ca/home/malamb office: Goodwin 527 current office hours are always on my home page 1 Moodle

### Programming Languages

Chapter 1 :: Introduction Programming Language Pragmatics Michael L. Scott Programming Languages What programming languages can you name? Which do you know? 1 Introduction Why are there so many programming

### CSc 372. Comparative Programming Languages. 2 : Functional Programming. Department of Computer Science University of Arizona

1/37 CSc 372 Comparative Programming Languages 2 : Functional Programming Department of Computer Science University of Arizona collberg@gmail.com Copyright c 2013 Christian Collberg 2/37 Programming Paradigms

### Programming Language Concepts 1982, 1987, Outline. Period

Programming Language Concepts 1982, 1987, 1997 Mehdi Jazayeri Distributed Systems Group Technische Universität Wien mjazayeri@alum.mit.edu http://www.infosys.tuwien.ac.at Outline Computer science environment

### San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

Course and Contact Information San José State University Computer Science CS 122 Advanced Python Programming Spring 2018 Instructor: Office Location: Telephone: Email: Office Hours: Class Days/Time: Classroom:

### CS252 Advanced Programming Language Principles. Prof. Tom Austin San José State University Fall 2013

CS252 Advanced Programming Language Principles Prof. Tom Austin San José State University Fall 2013 What are some programming languages? Why are there so many? Different domains Mobile devices (Objective

### 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

### 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

### Lecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?

Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in

### Chapter 5. Names, Bindings, and Scopes

Chapter 5 Names, Bindings, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Scope Scope and Lifetime Referencing Environments Named Constants 1-2 Introduction Imperative

### 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" "

### Compiler Design. Dr. Chengwei Lei CEECS California State University, Bakersfield

Compiler Design Dr. Chengwei Lei CEECS California State University, Bakersfield The course Instructor: Dr. Chengwei Lei Office: Science III 339 Office Hours: M/T/W 1:00-1:59 PM, or by appointment Phone:

### CS240: Programming in C

CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special

### Chapter 8. Statement-Level Control Structures ISBN

Chapter 8 Statement-Level Control Structures ISBN 0-321-49362-1 Chapter 8 Topics Introduction Selection Statements Iterative Statements Unconditional Branching Guarded Commands Conclusions Copyright 2012

### Chapter 8. Statement-Level Control Structures

Chapter 8 Statement-Level Control Structures Chapter 8 Topics Introduction Selection Statements Iterative Statements Unconditional Branching Guarded Commands Conclusions 1-2 Levels of Control Flow Within

### CS 415 Midterm Exam Spring 2002

CS 415 Midterm Exam Spring 2002 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Good Luck! Score Fortran Algol 60 Compilation Names, Bindings, Scope Functional Programming

### 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

### 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

### Chapter 8 Statement-Level Control Structures

Chapter 8 Statement-Level Control Structures In Chapter 7, the flow of control within expressions, which is governed by operator associativity and precedence rules, was discussed. This chapter discusses

### CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0

About the Course it's all on the web page... http://www.ugrad.cs.ubc.ca/~cs213/winter1t1/ - news, admin details, schedule and readings CPSC 213 - lecture slides (always posted before class) - 213 Companion

### 15-411/ Compiler Design

15-411/15-611 Compiler Design Jan Hoffmann Fall 2016 http://www.cs.cmu.edu/~janh/courses/411/16 Teaching Staff Instructor: Jan Hoffmann Office hours: Tue 10:30am-noon Thu 1:00pm-2:30pm at GHC 9105 Teaching

### Chapter 9 :: Data Abstraction and Object Orientation

Chapter 9 :: Data Abstraction and Object Orientation Programming Language Pragmatics Michael L. Scott Control or PROCESS abstraction is a very old idea (subroutines!), though few languages provide it in

http://xkcd.com/224/ CS252 Programming Language Paradigms Prof. Tom Austin San José State University Fall 2014 What are some programming languages? Why are there so many? Different domains. Mobile devices

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

### 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:

### Chapter 10 :: Data Abstraction and Object Orientation

Chapter 10 :: Data Abstraction and Object Orientation Programming Language Pragmatics, Fourth Edition Michael L. Scott Copyright 2016 Elsevier Chapter10_Data_Abstraction_and_Object_Orientation_4e 1 Object-Oriented

### Today. An Animated Introduction to Programming. Prerequisites. Computer programming

Today 1 2 3 4 Computer programming What is this course about? We re making several assumptions about you as a student. In particular, we assume that you have: Never taken a programming course before. Have

### CSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion

CSC 148 Lecture 3 Dynamic Typing, Scoping, and Namespaces Recursion Announcements Python Ramp Up Session Monday June 1st, 1 5pm. BA3195 This will be a more detailed introduction to the Python language

### 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.

### 1 Getting used to Python

1 Getting used to Python We assume you know how to program in some language, but are new to Python. We'll use Java as an informal running comparative example. Here are what we think are the most important

### CS 241 Data Organization using C

CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

### Well, Hal just told us how you build robust systems. The key idea was-- I'm sure that many of

MITOCW Lecture 3B [MUSIC PLAYING] Well, Hal just told us how you build robust systems. The key idea was-- I'm sure that many of you don't really assimilate that yet-- but the key idea is that in order

### CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CS 240 Fall 2015 Section 004 Alvin Chao, Professor Today Course overview Data Structures / Algorithms Course policies The C language Motivation Computers are digital Data is stored in binary format (1's

### TTh 9.25 AM AM Strain 322

TTh 9.25 AM - 10.40 AM Strain 322 1 Questions v What is your definition of client/server programming? Be specific. v What would you like to learn in this course? 2 Aims and Objectives v Or, what will you

### Informatica 3 Syntax and Semantics

Informatica 3 Syntax and Semantics Marcello Restelli 9/15/07 Laurea in Ingegneria Informatica Politecnico di Milano Introduction Introduction to the concepts of syntax and semantics Binding Variables Routines

### The Stack, Free Store, and Global Namespace

Pointers This tutorial is my attempt at clarifying pointers for anyone still confused about them. Pointers are notoriously hard to grasp, so I thought I'd take a shot at explaining them. The more information

### Slide 1 CS 170 Java Programming 1 Multidimensional Arrays Duration: 00:00:39 Advance mode: Auto

CS 170 Java Programming 1 Working with Rows and Columns Slide 1 CS 170 Java Programming 1 Duration: 00:00:39 Create a multidimensional array with multiple brackets int[ ] d1 = new int[5]; int[ ][ ] d2;

### Introduction to the course and basic programming concepts

Introduction to the course and basic programming concepts Lecture 1 of TDA 540 Object-Oriented Programming Jesper Cockx Fall 2018 Chalmers University of Technology Gothenburg University About the course

### Chapter 2. 5 * B => A V 6 7 (subscripts) S 1.n 1.n (data types)

1. Plankalkül - 1945 - Never implemented - Advanced data structures - floating point, arrays, records - Invariants - Notation: A(7) := 5 * B(6) 5 * B => A V 6 7 (subscripts) S 1.n 1.n (data types) 2. Pseudocodes

### Languages october 22, 2017 Éric Lévénez <http://www.levenez.com/lang/> FORTRAN III end-1958 FORTRAN II FORTRAN I october 1956

1954 1957 FORTRAN november 1954 FORTRAN I october 1956 FORTRAN II 1957 FORTRAN III end-1958 B-O 1957 Flow-Matic 1958 COBOL 1959 JOVIAL 1959 IAL 1958 ALGOL 58 1958 Lisp 1958 Lisp 1 1959 Languages october

### Chapter 6 part 1. Data Types. (updated based on 11th edition) ISBN

Chapter 6 part 1 Data Types (updated based on 11th edition) ISBN 0-321 49362-1 Chapter 6 Topics Introduction Primitive Data Types Character String Types User-Defined Ordinal Types Array Types Associative

### Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

### A Tour of Language Implementation

1 CSCE 314: Programming Languages Dr. Flemming Andersen A Tour of Language Implementation Programming is no minor feat. Prometheus Brings Fire by Heinrich Friedrich Füger. Image source: https://en.wikipedia.org/wiki/prometheus

### CSCD18: Computer Graphics. Instructor: Leonid Sigal

CSCD18: Computer Graphics Instructor: Leonid Sigal CSCD18: Computer Graphics Instructor: Leonid Sigal (call me Leon) lsigal@utsc.utoronto.ca www.cs.toronto.edu/~ls/ Office: SW626 Office Hour: M, 12-1pm?

### UCD School of Information and Library Studies. IS30020: Web Publishing

UCD School of Information and Library Studies IS30020: Web Publishing Module Coordinator: Dr Judith Wusteman Office: SILS 110, Email: judith.wusteman@ucd.ie, Tel: 716 7612 Office hour Semester 1 (Sept

ITT8060 Advanced Programming In F# Juhan Ernits Welcome to Advanced Programming (in F#)! Teachers: Juhan Ernits Hendrik Maarand Course web page http://courses.cs.ttu.ee/pages/itt8060 Contact: juhan.ernits@ttu.ee

### CPSC 213. Introduction to Computer Systems. Introduction. Unit 0

CPSC 213 Introduction to Computer Systems Unit Introduction 1 Overview of the course Hardware context of a single executing program hardware context is CPU and Main Memory develop CPU architecture to implement

### Comparative Programming Languages

Comparative Programming Languages CSC 372 Spring 2018 cs.arizona.edu/classes/cs372/spring18 Stranger Danger Introduce yourself to your tablemates while we're waiting to launch! CSC 372, Spring 2018, Introduction