Some Programming Paradigms

Slides:



Advertisements
Similar presentations
Alford Academy Business Education and Computing1 Advanced Higher Computing Based on Heriot-Watt University Scholar Materials Comparison of OO with other.
Advertisements

An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Programming Languages and Paradigms
Adapted from Scott, Chapter 6:: Control Flow Programming Language Pragmatics Michael L. Scott.
Jigar Gaglani.  A Programming language is a notational system for describing computations in a machine and human readable form.
you admittance to the “show”.
Overview of Programming Paradigms
The Programming Discipline Professor Stephen K. Kwan 2010 Things you need to know (learn) for developing large computer programs.
Programming Languages Structure
Formal Aspects of Computer Science – Week 12 RECAP Lee McCluskey, room 2/07
The Programming Discipline Professor Stephen K. Kwan Things you need to know (learn) for developing large computer programs.
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
CS 331, Principles of Programming Languages Introduction.
Introduction To System Analysis and design
314450: PROGRAMMING PARADIGMS Teaching scheme: Examination Scheme: Lectures: 3 Hours/Week Theory: 100 Marks OBJECTIVE: To understand the basic building.
Computer Architecture Computational Models Ola Flygt V ä xj ö University
Programming languages1 Programming paradigms Families of programming languages.
Programming Paradigms
CS 363 Comparative Programming Languages
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
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,
Lecture on Programming Languages
Relation Type Theory Foundations & Applications. Overview Introduction Type Theory Object Type Theory – Critique of Object Type Theory – Patches for Object.
1 Introduction to Software Engineering Lecture 1.
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
CS 331, Principles of Programming Languages Chapter 1.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Language Paradigms CS655.
Programming Language History and Evolution
Programming Languages 2nd edition Tucker and Noonan
The language focusses on ease of use
Programming paradigms
Concepts of Programming Languages
Why study programming languages?
Programming Language Design Concepts
Ontology From Wikipedia, the free encyclopedia
Representation, Syntax, Paradigms, Types
Lecture 14: Iteration and Recursion (Section 6.5 – 6.6)
An Introduction to Programming
OBJECT ORIENTED PROGRAMMING overview
Knowledge Representation
Programming Language History and Evolution
Computer Programming.
Chap. 6 :: Control Flow Michael L. Scott.
Database management concepts
Programming Languages
Final Review In Text: Chapters 1-3, 5-10, 12,
Final Review In Text: Chapters 1-3, 5-10, 12,
Representation, Syntax, Paradigms, Types
Chap. 6 :: Control Flow Michael L. Scott.
Programming Languages 2nd edition Tucker and Noonan
High Level Programming Languages
Representation, Syntax, Paradigms, Types
Programming Paradigms and Languages
Chapter 6: Programming Languages
Operational Rules Model – step-by-step instructions and template
Overview of Programming Paradigms
Lecture 8 Programming Paradigm & Languages. Programming Languages The process of telling the computer what to do Also known as coding.
Representation, Syntax, Paradigms, Types
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
An Introduction to Programming
Representations & Reasoning Systems (RRS) (2.2)
Presentation transcript:

Some Programming Paradigms 5/14/2019

Imperative Programming E.g., FORTRAN, C,… Focus on the algorithms. Data in separate structures. Algorithm abstraction: Give name to a sequence of instructions (stepwise refinement). Structured programming (e.g., avoid “spaghetti programming” by not using the goto-statement). 5/14/2019

“Data Modelling” Focus on data an the static relationships Data abstractions: Give name to a group of data (e.g., named records) 5/14/2019

Object-oriented programming Data and behaviour is put together E.g., Smalltalk, C++, Java In a sense it combines the two presiding paradigms! 5/14/2019

The First Object-oriented Language: Simula Introduced in 1966 (or earlier). Created by Ole-Johan Dahl and Kristen Nygaard. A language for simulation but became a general purpose programming language. Allan Key: “Simula is a major improvement of most of its sucessors” 5/14/2019

From Wikipedia, the free encyclopedia: Programming paradigms Agent-oriented Automata-based Component-based Flow-based Pipelined Concatenative Concurrent computing Relativistic programming Data-driven Declarative (contrast: Imperative) Constraint Functional Dataflow Cell-oriented (spreadsheets) Reactive Logic Abductive logic Answer set Constraint logic Functional logic Inductive logic Uncertain inference Markov logic Probabilistic logic Event-driven Service-oriented Time-driven Expression-oriented Feature-oriented Function-level (contrast: Value-level) Generic Imperative (contrast: Declarative) Procedural Language-oriented Discipline-specific Domain-specific Grammar-oriented Dialecting Intentional Metaprogramming Automatic Reflective Attribute-oriented Template Policy-based Non-structured (contrast: Structured) Array (contrast: Scalar) Iterative Nondeterministic Parallel computing Process-oriented Programming in the large/small Semantic Structured (contrast: Non-structured) Modular (contrast: Monolithic) Object-oriented By separation of concerns: Aspect-oriented Role-oriented Subject-oriented Class-based Prototype-based Recursive Value-level (contrast: Function-level) From Wikipedia: SQL often referred to as Structured Query Language, is a database computer declarative language designed for managing data in relational database management systems (RDBMS), and originally based upon relational algebra and tuple relational calculus. Multi-paradigm (e.g., SQL, C++, Scheme,…). Functional programming is a subset of declarative programming. Programs written using this paradigm use functions, blocks of code intended to behave like mathematical functions. Functional languages discourage changes in the value of variables through assignment, making a great deal of use of recursion instead. The logic programming paradigm views computation as automated reasoning over a corpus of knowledge. Facts about the problem domain are expressed as logic formulae, and programs are executed by applying inference rules over them until an answer to the problem is found, or the collection of formulae is proved inconsistent. Constraint programming (e.g., Prolog III) is a programming paradigm wherein relations between variables are stated in the form of constraints. 5/14/2019

All types of modelling involves some “sort of objects” E.g., in functional programming you have function and function activations (the call of a function). It seems that understanding the world as composed of objects is unavoidable… 5/14/2019

The Object-oriented Approach Tries To Mimic The Way We Think. (From Wikipedia, the free encyclopedia) “Accidental complexity is complexity that arises in computer programs or their development process (computer programming) which is non-essential to the problem to be solved. While essential complexity is inherent and unavoidable, accidental complexity is caused by the approach chosen to solve the problem.” The oo-approach tries to minimise accidental complexity. 5/14/2019

Structure – Behaviour The Yin and Yang of Programming Some UML Structure: :married Jane:Person Jams:Person Jane:Person :owns Some behaviour :owns someWreck:Car someWreck:Car Underling functional Structure of expression (+ (+ 3 4) 5): + Graph Reduction Graph Reduction + 12 + 5 7 5 3 4 5/14/2019