CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

1 Scheme and Functional Programming Aaron Bloomfield CS 415 Fall 2005.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Object-Oriented Programming OOP John Gilligan School of Computing DIT Kevin St.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Overview of Programming Paradigms
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
High-Level Programming Languages
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Programming Languages Structure
Chapter 8 High-Level Programming Languages Nell Dale John Lewis.
Comp 205: Comparative Programming Languages Imperative Programming Languages Functional Programming Languages Semantics Other Paradigms Lecture notes,
Presented by Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
CS 331, Principles of Programming Languages Introduction.
Computer Science and Software Engineering behind Blogging platforms and software Team ASU 101 for CS/CSE students.
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
High-Level Programming Languages: C++
G Programming Languages T he main themes of programming language design and use: –Model of computation –Expressiveness types and their operations.
Programming languages1 Programming paradigms Families of programming languages.
Chapter 1. Introduction.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
CS 363 Comparative Programming Languages
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
By Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion (Algol,
Introduction To System Analysis and Design
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Languages and Compilers
6. Program Translation CS100: The World of Computing John Dougherty Haverford College.
CS 331, Principles of Programming Languages Chapter 1.
Chapter 8 High-Level Programming Languages. 2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
int k = Integer.MAX_VALUE; k++; int k = Integer.MAX_VALUE; k++; What happens when the following code executes? byte b = someFile.readByte(); b = (byte)(b.
CPS120: Introduction to Computer Science Variables and Constants.
1 CSE Programming in C++. 2 Overview Sign roster list Syllabus and Course Policies Introduction to C++ About Lab 1 Fill Questionnaire.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
Language Paradigms CS655.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
Concepts of Programming Languages
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Concepts of Programming Languages
Why study programming languages?
PROGRAMMING LANGUAGES
课程名 编译原理 Compiling Techniques
Programming Language History and Evolution
Evolution of programming languages
Programming Languages
Programming Languages 2nd edition Tucker and Noonan
High Level Programming Languages
Principles of Programming Languages
Overview of Programming Paradigms
Some Programming Paradigms
Presentation transcript:

CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05

Introductions Course Overview Syllabus Programming Paradigms –Structured programming –Object-Oriented Programming –Functional Programming –Declarative Programming

Structured Programming (Imperative programming) Language closely tied to Von Neumann architecture. –Fortran, C, COBOL Break code into blocks or subroutines –Modular design –Explicit control of execution –Verb-oriented This piece of code takes an action

Object-Oriented Programming Provide more reuse and speed development –Simula, Smalltalk, C++, Objective C, Java Noun-oriented focus –How are system components represented? –What messages does an object understand? –How are objects related to each other? Key ideas: –Inheritance, polymorphism, information hiding

Functional Programming Programs can be recursively composed from smaller programs. –Language is extensible –Programs and data take the same form Lazy evaluation –Lisp, ML, Scheme Functions operate on data and return a result without side effects. Emphasis on the evaluation of expressions.

Declarative Programming Programs consist of a description of the relevant data or knowledge relations. –Prolog, SQL, Haskell Describe the result to be achieved, rather than how to achieve it. A built-in inference engine provides execution control. Programs focus on describing the relationship between objects in a domain. Programming as proving statements.

Different Tasks Require Different Approaches “If all you have is a hammer, then every problem looks like a nail.” Structured programming: focus on actions to take and flow control. –Operating systems, device drivers Object-oriented programming: focus on data structures –GUIs, simulations, toolkits Functional programming: focus on composition of small computational units. – Compilers, numerical analysis Declarative programming: focus on relations among data. –Databases, expert systems.