1 / 12

Chapter 8

Chapter 8. Alternative Programming Paradigms. Paradigm. A paradigm is a model or mental framework for representing or thinking about something. Programming in a procedural language consists of: Planning the algorithm

meaghand
Download Presentation

Chapter 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8 Alternative Programming Paradigms

  2. Paradigm • A paradigm is a model or mental framework for representing or thinking about something. • Programming in a procedural language consists of: • Planning the algorithm • Capturing the “unambiguous and effectively computable operations” as program instructions • Alternative paradigms for programming languages include viewing a program’s actions as: • A combination of various transform upon items (functional programming) • A series of logical deductions from known facts (logic programming) • Multiple copies of the same subtask or multiple subtasks of the same problem being performed simultaneously by different processors (parallel programming)

  3. Functional Programming • LISP (LISt Processing) • FP (Functional Programming) • A functional programming language views every task in terms of functions. • Here ‘function’ means something like a mathematical function – a recipe for taking an argument and doing something with them to compute a single value. • Example: the function f(x)=2x transform the argument 3 into 6.

  4. Primitive Functions • Certain functions, called primitive functions or just primitives, are defined as part of the language. • Other functions can be defined and named by the programmer. • Example: (using Scheme, a functional programming language derived from LISP)(define (double x) (* 2 x)) (define (square x) (* x x))(define (polynomial x) (double (square x)) • Also called applicative languages.

  5. LISP • LISP processes lists of things. • The argument to functions are often lists. • nil: empty list • (list 3 4 5) • (car (list 3 4 5)) returns 3 • (cdr (list 3 4 5)) returns (4 5)

  6. Adding Non-negative Integers • (define (adder input-list) (cond ((null? input-list) 0) (else (+ (car input-list) (adder (cdr input-list)))))) • (adder (list (3 4 5))) returns 12 • adder is a Recursive function • A functional language allows for clarity of thought; data values are transformed by flowing through a string of mathematical functions. • Adds another layer of abstraction to the programmer.

  7. Logic Programming • Various facts are asserted to be true, and on the basis of these facts, a logic program can infer or deduce other facts. • When a query (a question) is posed to the program, it begins with the storehouse of facts and attempt to apply logic deductions, in as efficient a manner as possible, to answer the query. • Sometimes called declarative languages because their programs, instead of issuing commands to do something, make declarations or assertions that various facts are true. • Used to write expert systems.

  8. Prolog • PROgramming in LOGic • Originally intended as a tool for natural language processing • Prolog programs consist of facts and rules. • A fact expresses a property about a single object or a relationship among several objects. • Examples: president(lincoln,civil_war)before(fdr, kennedy)

  9. Examples • A query:?-before(lincoln,fdr) will return Yes. • ?-president(loncoln,civil_war),before(lincoln,fdr) • ?-president(lincoln,X)X is a variable in Prolog (variables must begin with upper-case letters) • Derive new facts: • precedes(X,Y) if before(X,Y) • precedes(X,Y) if before(X,Z) and precedes(Z,Y)

  10. Prolog Rules • A prolog rule is a declaration of an “if A then B” form • Example:precedes(X,Y) :- before(X,Y)precedes(X,Y) :- before(X,Z), precedes(Z,Y) • Figure 8.12: A Prolog Program • earlier(X,Y) :- president(R,X),president(S,Y),precedes(R,S)

  11. The Logic Programming Paradigm Facts Rules Knowledge base Inference Engine Query Response

  12. Parallel Programming • “Grand Challenge” computing problems • SIMD: single instruction, multiple data stream • MIMD: multiple instruction, multiple data stream

More Related