Lecture 1. Programming II. Iztok Savnik, FAMNIT. February, 2019.

Size: px
Start display at page:

Download "Lecture 1. Programming II. Iztok Savnik, FAMNIT. February, 2019."

Transcription

1 Lecture 1 Programming II Iztok Savnik, FAMNIT February,

2 Contents Course organization History of programmiing languages Concepts of programming languages Meta-Language ML Some benchmarks Method and aims of course What is happening in PL area?

3 Course organization Lectures Iztok Savnik Exercises Matjaž Krnc, László Hajdu Homeworks Writting programs in Ocaml 3 homeworks

4 Grading Written exam 40% Oral exam 30% Homeworks 30% Each part must be positive! 4

5 Literature 1. John Mitchell, Concepts in Programming Languages, Cambridge Univ Press, Iztok Savnik, Jan Karabas, Concepts of programming languages, Lecture notes (in English), FAMNIT, Michael L. Scott, Programming Language Pragmatics (3rd ed.) Elsevier,

6 Overview of PL Assembler Fortran IPL, Cobol Imperative languages Algol Prog.language C Pascal, Modula Functional languages Lisp ML Haskell Object languages C++, Objective C Java, Eifel Ruby High-level languages Electronics Information systems Integration languages Script languages System languages Web languages User interfaces Python, Perl, PhP, JSP, ASP Prolog Sicstus Prolog SWI-Prolog Datalog Lambda Prolog

7

8 Charles Babbage The origins of the digital programmable computer English mathematician, philosopher, inventor and mechanical engineer. In 1837 he has designed Analytical engine, the first mechanical computer, that led to the design of more complex electronic computers. The anlytical engine mechanical computation of arithmetic operations branching loops where the results of the previous computation are taken as an input to the following iterations. Turing-complete machine

9 Electronic computers The first electromechanical computer German civil engineer and inventor Konrad Zuse Z1, Z2, Z3, 1936 and 1945, totally independent Loops but no branching, shown to be Turing-complete General-purpose electronic computer University of Pennsylvania ENIAC (Electronic Numerical Integrator and Computer) 10 digit arithmetic, branching, loops, procedures

10 Electronic computers Mark 1, Mark 2, Mark 3 ASCC (Automatic Sequence Controlled Calculator) Developed by Harvard University in 1944 Original concept presented to IBM by H.Aiken in 1937 Following Charles Babbage, loops but no branching von Neumann architecture Princeton arhitecture, 1945 First Draft of a Report on the EDVAC Principal abstraction, representation of the basic function of computers central processing unit, main memory and input/output devices

11 Plankalkuel The first programming language Konrad Zuse German civil engineer and inventor Floating-point mechanical digital calculator Z1 Improved versions Z2 and Z3 in 1941 Telephone relays for memory Presented to the public Concepts Sequence of arithmetical operations Loops included No branching operation

12 First compiler A-O programming language Algorithmic Language version 0 UNIVAC I computer Grace Hopper in 1951, 1952 Program in A-0 language was a sequence of subrutine calls together with the parameters The compiler was merely a linker and a loader Followed by the A-1, A-2, A-3 ARITH-MATIC, MATH-MATIC, FLOW-MATIC

13 Fortran First complete compiler John W. Backus, 1953, IBM IBM 704 mainframe Mathematical FORmula TRANslating System IBM 360 Constructs of Fortran DO, GOTO, IF, SUBRUTINE, CALL Numeric processing Programs can be parallelized Followed by the imperative familiy C, Pascal, Modula Fortran II, Fortran 77, Fortran III, Fortran 90, Fortran 95, Fortran 2003,...

14 FLOW-MATIC Bussiness Language version 0, or, B-0. UNIVAC I at Remington Rand Grace Hopper in Bussiness does not like formulas English language Hopper team developed compiler by First language that made a clear distinction between the data definition section and the code section of the Strong influence on the development of the programming language COBOL.

15 Information Processing Language Information Processing Language (IPL) Allen Newell, Cliff Shaw and Herbert Simon Rand Corporation in Assembly language - operations manipulate lists IPL computer Set of symbols, set of cells, set of primitive functions Functions defined on the cells and lists primitive PL run-time environment AI language Abstract and suitable for expressing AI programs Programs are not efficient

16 Algol C.A.R. Hoare: "Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors." Developed in ETH Zuerich, Team of computer scientists from Europe and US Allan J. Perlis, Peter Naur, John McCarthy, and others Originally: Algebraic Language, or, IAL Avoided problems percived in FORTRAN Contributions John Backus developed BNF to specify ALGOL 58 Formal semantics, two parameter passing methods: cbv and cbr, code blocks, nested functions, lexical scope Imperative effect of cbr to lambda calculus studied Influence: Pascal, C, Modula, Java,...

17 Lisp Developed by John McCarthy at MIT, 1958 Lisp is based on lambda calculus Alonzo Church in 1930 ble Church's paper on undecidable problem Strongly influenced by IPL Lists used for representation of programs and data New concepts Automatic storage management, dynamic typing, selfhosting compiler, and others. AI language Second-oldest programming language that is still in use Common Lisp and Scheme.

18 Cobol Designed by CODASYL, 1959 Conference/Committee on Data Systems Languages Previous work of Grace Murray Hopper Programming language for bussiness applications Imperative and procedural Since 2002, object-oriented A compiled English-like programming language Awkward syntax Cobol pograms work today! Syntax has been changed

19 C Programming Language Dennis Ritchie, Bell Laboratories, 1972 C designed for Language B, based on BCPL Language constructs Algol family Still one of best languages (C++ =? C + object illusion) Close to hardware, system programming Arrays and references are closely related E1[E2] = ]*((E1)+(E2)) Adress arithmetic Ritchie wrote: C is quirky, flawed, and a tremendous success.

20 Pascal Niklaus Wirth, ETH Zürich, 1970 Very popular in Europa Structred programming language Algol family Data structures, pointers, arrays, variable records,... Many implementations VAX Pascal, Turbo Pascal, Delphi: nice programming environment Modula-2, Modula-3, Oberon

21 Language sequences Lisp Algol 60 Algol 68 Pascal ML Modula

22 Functional languages Rooted in logic Lambda calculus, 1930, Alonzo Church LISP John McCarthy Implementation of lambda calculus Meta-Language ML, Rob Milner Functional languages are more appropriate for teaching? Strong typing Program is proof Elements of declarative programming USA

23 History of ML Logic for computable functions (LCF) Robin Milner, Dana Scott Stanford , Edinburgh Meta-language for LCF system Automatization of logic reasoning Proofs Type systems Notation for programs Higher-order functions Programs that search for proof

24 Object-Oriented Languages First OO language is Simula. Simulation programming environment Smalltalk is one of the most famous OO languages Adele Goldberg, Xerox, Palo Alto Everything is object! Every object belongs to one class Class is prototype object Class is object! Complex inheritance hierarchies C++, Java, Objective C,... Java J.Gosling, B.Joy, G.Steele, G.Bracha The Java Language Specification

25 Script languages Web programming languages V zadnjih letih se je pojavila množica jezikov, za delo na Web strežnikih JSP, PhP, JavaScript, ASP, Reseources of Web server System programming languages Strong ties to OS C + Awk, Perl, Python System integration languages

26 High-level languages Information systems 4GL, PL/SQL, SQL3 UML (specifikacije) Electronics VHDL, EDIF,...

27 Prolog Programming in Logic, Robert Kowalski Predicate calculus Horn clauses Unification, resolution Strong, simple and abstract language Back-tracking Declarative and procedural semantics of Prologa Operator CUT (!) Database programming languages Datalog Sicstus, SB Prolog, SWI Prolog,

28 Concepts in programming languages Programming language is programming tool, defined in the form of language, that is used for design and implementation of computer programs. Concepts of programming languages are abstractions used for representation of structure and behaviour of modelled systems.

29 Abstraction In Philosophy Specific operation of the intellect consisting in detaching and retaining some property from a thing Aristotel Constructive mental process associated with the relation between forms (ideas) and concrete objects Human mind actively abstracts or extracts forms from the objects in which they are realized St. Thomas Aquinas Two kinds of abstractions Mind joins properties that are separate from each other Mind separates properties that are one

30 Concepts in programming languages Abstractions integrated into the language Function, object, method, class, abstract class,..., classification, specialization, aggregation,... Abstractions define language model Imperative languages: variables, loops, procedures,... Funtional languages: functions Object languages: object and classes

31 Classifications of PL concepts Algorithmic and data abstractions Algorithmic abstractions Itaration statements, patterns, recursion,... Data abstractions N-tuples, lists, recursive data structures Language and implementation concepts Language abstractions Functions, objects, methods, inheritance,... Implementation abstractions Memory management, parameter passing,...

32 Implementation concepts We learn about the implementation of PL constructs Representation of variables, data structures,... Memory management Memory organization Garbage collection Implementation of PL concepts Functions in C, Java, Ocaml,... Parameters in C, Java, Ocaml,... Classes in Java, OCaml,...

33 Properties of abstractions in PL Closer to hardware, more simple languages Simple abstractions: Numbers, characters, loops, routines,... Higher abstractions: Objects, modules,... Higher level of abstraction in PL: More directed language Very general abstractions - more specific language General programming language is in the middle: Wide applicability General-purpose PL Very complex languages

34 Abstractions Study of abstractions can improve learning process COMMUNICATIONS OF THE ACM April 2007/Vol. 50, No. 4 IS ABSTRACTION THE KEY TO COMPUTING?

35

36 Why to study concepts in PL? We learn about the possible ways of expressing ideas. We learn how to use given PL abstractions correctly. You have to know the tool It is good to have formal background It is good to have experiences with using tools

37 Meta-Language Meta Language (ML) Developed unintentionally while working on system for automatic theorem proving based on LCF Logic of computable functions. LCF is a version of lambda calculus Initially at Edinburg University Later in AI group of Stanford University Project leader was Robin Milner. Meta-Language was used as language for expressing mathematical proofs They would change the files with proofs to obtain better proof

38 Meta-Language Success story from functional branch of programming languages Standard ML, SML/NJ, Alice ML, Ocaml, Moscow ML, Mlton, MLKit, SML.NET,... Research related to ML Hindley-Milner type-checking algorithm Polimorfic lambda calculus (System F, Girard)

39 Lambda calculus Lambda calculus is the foundamental formalism for studying programming languages Theory of programming languages Using rule-based reasoning for: deriving expression types, evaluation of expressions, Prooving the properties of language, etc. Static and dynamic semantics of PL Prooving the properties of languages (determinism, strict typing, termination, etc.). Labda calculus is topic of one lecture

40 Objective Caml Objective Caml is reference language Caml core is pure lambda calculus. Theoretically well-studied language. Caml has strong typing. Imperative constructs. Parametric polymorphism Nice object model Modules and functors Ocaml offers more than one programming models Imperative + functional + object-oriented + modular programming model

41 communications of the acm november vo l. 5 4 n o. 1 1

42

43 Who uses OCaml Facebook Jane Street Bloomberg, Citrix, See:

44 Comparisons of PL Codeval comparison A Comparison of Programming Languages in Economics In-Deman Programming languages The Computer Language Benchmarks Game Githut TIOBE Index

45

46

47

48

49

50 A Comparison of Programming Languages in Economics, Aruoba and Fernandez-Villaverde, 2014

51

52

53

54

55 Kotkin: Java reconsidered Erlang: Functional programming for real-time systems Go: Simple and dynamic OCaml: Complex data hierarchy juggler TypeScript: JavaScript you ll like Rust: Safe and usable systems language...

56 The Computer Language Benchmarks Game 33 languages, 4 systems, 13 test programs

57

58 High-level programming languages can be very efficient Java and Ocaml are efficient languages

59

60

61 Energy Efficiency across Programming Languages: How does Energy, Time and Memory Relate?

62 Energy Efficiency across Programming Languages: How does Energy, Time and Memory Relate?

63 Speed, size and memory usage of PL 429 programs 13 test programs 33 PL Experiment: Guillaume Marceau

64

65 githut Programming languages on github, M active repositories Parameters No. of projects on github No. of push operations No. of push/repository operations No. of fork operations No. of opened issues No. of watchers 65

66

67

68 TIOBE Indeks: Indeks based on: Web search engines: Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube, Baidu TIOBE index is NOT: About best PL About the most used PL 68

69

70

71

72

73 Aims of course Concepts of programming languages Language is»conceptual universe (Perlis) Framework for solving problems Usefull concepts and constructs of PLs Learning more than one PL It is good to know the history! Learning concepts from sources Efficient usage of PL constructs 73

74 Methods Lambda calculus Formal foundation Basic principles of procedural PL Lisp: first programming language based on LC ML Mathematical foundations Strong typing Includes most PL constructs Java + C Languages to compare ML! C is still the most popular language Java uses clean object-oriented model Strong typing and dynamic typing 74

75 Methods First classification = language model Functional, imperative, object, module Some concepts will be put forward Functions, parameters, types, scope, control, data abstractions, inheritancem polimorphism, memory We will see diferent approaches Languages used: C, ML, Java Sometimes: Pascal, Fortran, C++, Ada Comparison of PL concepts We know what we can use Concepts can also be very different 75

76 Method Learning about PL constructs and implementation Every construct has its price It always good to know what is happening»below«efficient use of constructs Many times it is neccessary to know implementation of concepts Memory management Representation of data structures Implementation of functions and recursion Dynamic aspects of languages 76

77 What is happening in PL area? Trendy applications Complex programming systems Telecommunications Parallel programming Data mining/data science Supercomputers Visual/dataflow programming Artificial intelligence 77

78 What is happening in PL area? Classical high-level PL Java, C++, C, C#, Script/system languages Python, Perl, Lua, Rust,... Abstract but efficient PL Scala, Swift, Ruby, Go,. Increased use of functional languages Haskell, F#, Ocaml, Erlang, ML,... Increased use of functional concepts Java, C++, Scala, Ruby, Python,... Data programming languages R, Julia, Mathlab, SAS... 78

79 What is happening in PL area? Java is replacing C and C++? C, C++ is replacing Java? Python as the first language? Lisp/Schema still first language? C is coming back? Practical languages Python in schools? Strong programming environments Strong open-source support 79

80 What is happening in PL area? Research trends Strong typing, dynamic typing Dynamic and JIT optimization Compilers and multicore programming challenge Parallel programming Program graph analysis for parallelization Meta-programming 80

81 What is happening in PL area? Programming languages for target systems Mobile phones, ipad, El.machines, TV, car, washing machine, Concurrent PL Erlang, Concurrent ML, E, CAL,... Dataflow programming Multi-processor, multi-threaded prgramming 81

82 What is happening in PL area? More formal analysis used Type-checking, static and dynamic typing, program analysers, diagnostics, Abstract VM Additional level of abstraction: Virtual Machine Java VM, Erlang VM (BEAM),... Portability Meta-pogramming languages Coq, Isabelle, Twelf Languages used to analyse, test and implement other programming languages 82

83 What to learn? Most commonly used PLs C, C++, Java, Python Concepts of PLs Important implementation ideas New trends New languages: R, VimL, Go, Swift, Scala Functional constructs: Haskell, Ruby, C++, Java Design decisions trade-offs Functional vs. imperative, modular vs. object-oriented,... 83

Lecture 1. Programming II. Iztok Savnik, FAMNIT. October, 2015.

Lecture 1. Programming II. Iztok Savnik, FAMNIT. October, 2015. Lecture 1 Programming II Iztok Savnik, FAMNIT October, 2015. 1 Contents Course outline History of programmiing languages Concepts of programming languages Meta-Language ML Some benchmarks Method and aims

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

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

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

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

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

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

Comp 333: Concepts of Programming Languages Fall 2016

Comp 333: Concepts of Programming Languages Fall 2016 Comp 333: Concepts of Programming Languages Fall 2016 Instructor: Professor Schwartz History Syntax and Semantics Compilers Language Constructs Names, Binding, Scoping, Data Types Expressions, Control

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

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

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

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

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

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

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

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

CS 430 Spring History of Programming Languages. Mike Lam, Professor. John McCarthy ( ) Inventor of LISP

CS 430 Spring History of Programming Languages. Mike Lam, Professor. John McCarthy ( ) Inventor of LISP CS 430 Spring 2015 Mike Lam, Professor Dennis Ritchie (1941-2011) Inventor of C John McCarthy (1927-2011) Inventor of LISP History of Programming Languages All images taken from Wikipedia unless stated

More information

Programming Language Concepts

Programming Language Concepts Programming Language Concepts Mooly Sagiv msagiv@acm.org Thursday 11-13, Schriber 317 TA: Oded Padon Email: odedp@mail.tau.ac.il http://www.cs.tau.ac.il/~msagiv/courses/pl16.html Inspired by Stanford John

More information

CS 242. Fundamentals. Reading: See last slide

CS 242. Fundamentals. Reading: See last slide CS 242 Fundamentals Reading: See last slide Syntax and Semantics of Programs Syntax The symbols used to write a program Semantics The actions that occur when a program is executed Programming language

More information

COS 326 Functional programming: an elegant weapon for the modern age

COS 326 Functional programming: an elegant weapon for the modern age COS 326 Functional programming: an elegant weapon for the modern age In 1936, Alonzo Church invented the lambda calculus. He called it a logic, but it was a language of pure functions -- the world's first

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

Compiler Construction

Compiler Construction Compiler Construction WWW: http://www.cs.uu.nl/wiki/cco Contact: J.Hage@uu.nl Edition 2016/2017 Course overview 2 What is compiler construction about? Programs are usually written in a high-level programming

More information

Chapter 2. Pseudocodes: Speedcoding. 2.2 Minimal Hardware Programming: Pseudocodes. Evolution of the Major Programming Languages

Chapter 2. Pseudocodes: Speedcoding. 2.2 Minimal Hardware Programming: Pseudocodes. Evolution of the Major Programming Languages Chapter 2 Evolution of the Major Programming Languages ISBN 0-321-33025-0 2.2 Minimal Hardware Programming: Pseudocodes What was wrong with using machine code? Poor readability Poor modifiability Expression

More information

2. Evolution of the Major Programming languages

2. Evolution of the Major Programming languages 2. Evolution of the Major Programming languages Genealogy of Common Programming Lang. 2.1 Plankalkül - 1945 Never implemented Advanced data structures floating point, arrays, records Invariants Notation:

More information

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

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

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

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

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

IA010: Principles of Programming Languages

IA010: Principles of Programming Languages IA010: Principles of Programming Languages Introduction and course organization Achim Blumensath blumens@fi.muni.cz Faculty of Informatics, Masaryk University, Brno Warm-up: A Quiz What does this program

More information

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

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

More information

Chapter 2. Evolution of the Major Programming Languages

Chapter 2. Evolution of the Major Programming Languages Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics Zuse s Plankalkül Minimal Hardware Programming: Pseudocodes The IBM 704 and Fortran Functional Programming: Lisp The First Step Toward

More information

Programming Languages (CSCI 4430/6430) History, Syntax, Semantics, Essentials, Paradigms

Programming Languages (CSCI 4430/6430) History, Syntax, Semantics, Essentials, Paradigms Programming Languages (CSCI 4430/6430) History, Syntax, Semantics, Essentials, Paradigms Carlos Varela Rennselaer Polytechnic Institute August 30, 2016 C. Varela 1 The first programmer ever Ada Augusta,

More information

8/23/18. Programming Language Genealogy The Evolution of Programming Languages. Zuse s Plankalkül. Plankalkül Syntax. Machine Code

8/23/18. Programming Language Genealogy The Evolution of Programming Languages. Zuse s Plankalkül. Plankalkül Syntax. Machine Code Programming Language Genealogy The Evolution of Programming Languages In Text: Chapter 2 2 Zuse s Plankalkül Designed in 1945, but not published until 1972 Never implemented Advanced data structures floating

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

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

Chapter 2. Chapter 2

Chapter 2. Chapter 2 1. Plankalkül 1945(program calculus) pp. - 41 - Never implemented but based on Z4 - Advanced data structures(scalar type and for loop) - integer, floating point, arrays, records - Mathematical expression,

More information

Seminar in Programming Languages

Seminar in Programming Languages Seminar in Programming Languages Shuly Wintner Fall 2010-11 Course web site: http://cs.haifa.ac.il/~shuly/teaching/10/plseminar/ Course Goals Programming Language Concepts A language is a conceptual universe

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

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

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

COSC 2P90 Programming Languages & Object-Orientation

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

More information

Programming Language Pragmatics

Programming Language Pragmatics Chapter 10 :: Functional Languages Programming Language Pragmatics Michael L. Scott Historical Origins The imperative and functional models grew out of work undertaken Alan Turing, Alonzo Church, Stephen

More information

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

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

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

Functional Programming

Functional Programming The Meta Language (ML) and Functional Programming Daniel S. Fava danielsf@ifi.uio.no Department of informatics University of Oslo, Norway Motivation ML Demo Which programming languages are functional?

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

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes Welcome to CS 470/670 Introduction to Artificial Intelligence Office: Lab: Instructor Marc Pomplun S-3-171 S-3-135 Office Hours: Tuesdays 4:00pm 5:30pm Thursdays 7:00pm 8:30pm Spring 2016 Instructor: Marc

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

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages

Chapter 2 Preview. Preview. History of Programming Languages. History of Programming Languages. History of Programming Languages Chapter 2 Preview Evolution of the Major Programming Languages The Beginnings of Data Abstraction: SIMULA 67 Orthogonal Design: ALGOL 68 Some Early Descendants of the ALGOLs Programming Based on Logic:

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

Chapter 2. Evolution of the Major Programming Languages ISBN

Chapter 2. Evolution of the Major Programming Languages ISBN Chapter 2 Evolution of the Major Programming Languages ISBN 0-321-49362-1 Chapter 2 Topics Zuse s Plankalkül Minimal Hardware Programming: Pseudocodes The IBM 704 and Fortran Functional Programming: Lisp

More information

Chapter 2. Evolution of the Major Programming Languages

Chapter 2. Evolution of the Major Programming Languages Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics Zuse s Plankalkül Minimal Hardware Programming: Pseudocodes The IBM 704 and Fortran Functional Programming: Lisp The First Step Toward

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

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

CMSC 330: Organization of Programming Languages. Functional Programming with OCaml

CMSC 330: Organization of Programming Languages. Functional Programming with OCaml CMSC 330: Organization of Programming Languages Functional Programming with OCaml 1 What is a functional language? A functional language: defines computations as mathematical functions discourages use

More information

1 A question of semantics

1 A question of semantics PART I BACKGROUND 1 A question of semantics The goal of this chapter is to give the reader a glimpse of the applications and problem areas that have motivated and to this day continue to inspire research

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

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

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

More information

What is a programming language?

What is a programming language? Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? What is a programming language?...there is no agreement on what a programming language

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

Functional Programming. Big Picture. Design of Programming Languages

Functional Programming. Big Picture. Design of Programming Languages Functional Programming Big Picture What we ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What s next: Functional Programming Languages Semantics

More information

Evolution of the Major Programming Languages

Evolution of the Major Programming Languages Evolution of the Major Programming Languages SANGJI University Kwangman Ko (kkman@sangji.ac.kr) Genealogy of Common Languages kkman@sangji.ac.kr 2 1-3 Minimal Hardware Programming: Pseudocodes What was

More information

Foundations. Yu Zhang. Acknowledgement: modified from Stanford CS242

Foundations. Yu Zhang. Acknowledgement: modified from Stanford CS242 Spring 2013 Foundations Yu Zhang Acknowledgement: modified from Stanford CS242 https://courseware.stanford.edu/pg/courses/317431/ Course web site: http://staff.ustc.edu.cn/~yuzhang/fpl Reading Concepts

More information

Chapter 2. Evolution of the Major Programming Languages ISBN

Chapter 2. Evolution of the Major Programming Languages ISBN Chapter 2 Evolution of the Major Programming Languages ISBN 0-321-33025-0 Chapter 2 Topics Zuse s Plankalkul Minimal Hardware Programming: Pseudocodes The IBM 704 and Fortran Functional Programming: LISP

More information

CS 314 Principles of Programming Languages

CS 314 Principles of Programming Languages CS 314 Principles of Programming Languages Lecture 15: Review and Functional Programming Zheng (Eddy) Zhang Rutgers University March 19, 2018 Class Information Midterm exam forum open in Sakai. HW4 and

More information

CIS24 Project #3. Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec. Subject: Functional Programming Language (ML)

CIS24 Project #3. Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec. Subject: Functional Programming Language (ML) CIS24 Project #3 Student Name: Chun Chung Cheung Course Section: SA Date: 4/28/2003 Professor: Kopec Subject: Functional Programming Language (ML) 1 Introduction ML Programming Language Functional programming

More information

Introduction to Scientific Computing Languages

Introduction to Scientific Computing Languages 1 / 1 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 1 What is a programming language? Languages for Scientific

More information

Programming Languages 1. Introduction. Oscar Nierstrasz

Programming Languages 1. Introduction. Oscar Nierstrasz Programming Languages 1. Introduction Oscar Nierstrasz Roadmap > Course Schedule > Programming Paradigms > A Quick Tour of Programming Language History Programming Languages Lecturer: Assistants: WWW:

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

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

Programming (Econometrics)

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

More information

Introduction to Scientific Computing Languages

Introduction to Scientific Computing Languages 1 / 17 Introduction to Scientific Computing Languages Prof. Paolo Bientinesi pauldj@aices.rwth-aachen.de Languages for Scientific Computing 2 / 17 What is a programming language? Languages for Scientific

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

Functional Languages. Hwansoo Han

Functional Languages. Hwansoo Han Functional Languages Hwansoo Han Historical Origins Imperative and functional models Alan Turing, Alonzo Church, Stephen Kleene, Emil Post, etc. ~1930s Different formalizations of the notion of an algorithm

More information

CS 415 Midterm Exam Spring 2002

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

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

The Algol family and ML

The Algol family and ML The Algol family and ML Volker Stolz stolz@ifi.uio.no Department of Informatics University of Oslo Initially by Gerardo Schneider. Based on John C. Mitchell s slides (Stanford U.) ML lectures 16.09: The

More information

The Algol family and ML

The Algol family and ML The Algol family and ML Jacopo Mauro mauro.jacopo@gmail.com Department of Informatics University of Oslo Initially by Gerardo Schneider, Volker Stolz. Based on John C. Mitchell s slides (Stanford U.) ML

More information

Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics

Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics Chapter 2 Evolution of the Major Programming Languages Chapter 2 Topics Zuse s Plankalkül Minimal Hardware Programming: Pseudocodes The IBM 704 and Fortran Functional Programming: LISP The First Step Toward

More information

ITT8060 Advanced Programming

ITT8060 Advanced Programming 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

More information

Programming Languages CMSC 4023 Chapter 2

Programming Languages CMSC 4023 Chapter 2 2. Programming languages are designed to satisfy two objectives. 2.1. People need to be able to write instructions that implement computational procedures and algorithms in a programming language. 2.2.

More information

Compilers and interpreters

Compilers and interpreters Lecture 5 Compilers and interpreters FAMNIT March, 2018. 1 Slides Lecture by Jan Karabaš Compilers and interpreters Programming II FAMNIT, 2015 Additional literature: Michael L. Scott, Programming Language

More information

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given MUHAMMAD FAISAL MIT 4 th Semester Al-Barq Campus (VGJW01) Gujranwala faisalgrw123@gmail.com MEGA File Solved MCQ s For Final TERM EXAMS CS508- Modern Programming Languages Question No: 1 ( Marks: 1 ) -

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

Evolution of PL s. EECS 476, Prog. Lang. Design/ page 1

Evolution of PL s. EECS 476, Prog. Lang. Design/ page 1 Evolution of PL s I. Ways of Organizing the evolution of PL s A. Types of PL s [Sebesta p. 37] 1. Procedural (Imperative) [F&G, p. 39] 2. Functional (applicative) [F&G, p. 41] 3. Logical (declarative)

More information

Programmiersprachen (Programming Languages)

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

More information

15-411/ Compiler Design

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

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

COS 326 Func,onal Programming: An elegant weapon for the modern age David Walker Princeton University

COS 326 Func,onal Programming: An elegant weapon for the modern age David Walker Princeton University 2007 xkcd COS 326 Func,onal Programming: An elegant weapon for the modern age David Walker Princeton University slides copyright 2013-2015 David Walker and Andrew W. Appel permission granted to reuse these

More information

Programming Paradigms and Languages Introduction. dr Robert Kowalczyk WMiI UŁ

Programming Paradigms and Languages Introduction. dr Robert Kowalczyk WMiI UŁ Programming Paradigms and Languages Introduction dr Robert Kowalczyk WMiI UŁ What is a programming paradigm? A programming paradigm is a fundamental style of computer programming, a way of building the

More information

Software II: Principles of Programming Languages

Software II: Principles of Programming Languages Software II: Principles of Programming Languages Lecture 2 A History of Programming Languages What is a Programming Language? A programming language describes computation to be performed by computers.

More information

Computers in Engineering COMP 208. A Brief History. Mechanical Calculators. A Historic Perspective Michael A. Hawker

Computers in Engineering COMP 208. A Brief History. Mechanical Calculators. A Historic Perspective Michael A. Hawker Computers in Engineering COMP 208 A Historic Perspective Michael A. Hawker Sept 4th, 2007 Computers in Engineering 1 A Brief History Abacus considered first mechanical computing device Used beads and rods

More information

Computers in Engineering COMP 208

Computers in Engineering COMP 208 Computers in Engineering COMP 208 A Historic Perspective Michael A. Hawker Sept 4th, 2007 Computers in Engineering 1 A Brief History Abacus considered first mechanical computing device Used beads and rods

More information

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

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN 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,

More information

Language Sequence. The Algol Family and ML. Algol 60 Sample. Algol 60. Some trouble spots in Algol 60. Algol Joke. John Mitchell

Language Sequence. The Algol Family and ML. Algol 60 Sample. Algol 60. Some trouble spots in Algol 60. Algol Joke. John Mitchell CS 4 Language Sequence The Algol Family and ML Lisp Algol 60 John Mitchell Algol 68 Pascal ML Modula Reading: Chapter 5 Many other languages: Algol 58, Algol W, Euclid, EL, Mesa (PARC), Modula-, Oberon,

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

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

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current

Outline. Programming Languages 1/16/18 PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY. Current PROGRAMMING LANGUAGE FOUNDATIONS AND HISTORY Dr. John Georgas, Northern Arizona University Copyright John Georgas All Rights Reserved Outline Current Programming languages Compiled and interpreted implementations

More information

Concepts of Programming Languages

Concepts of Programming Languages Concepts of Programming Languages Lecture 15 - Functional Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages

More information