Programming Paradigms


Published on

Published in: Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Programming Paradigms

  1. 1. Farshad Badiefarshadbadie@gmail.comUniversity of Debrecen, Computer Science Department1Programming Paradigms
  2. 2. 2
  3. 3. Introduction3Programming is a discipline and it could be enough rich and quitecomplicatedSolving a Programming Problem requires identifying the rightconcepts . Different sets of concepts are needed for different partsof the problemA Programming Paradigm is an approach to have a programmingbased on a Mathematical Theory or Coherent Set of PrinciplesA paradigm supports a set of concepts that makes it the best for acertain kind of problem.A language should ideally support many concepts in a well-factored way
  4. 4. 4Future Reusable Functions Whose Effects AreComputed AUTOMATICALLY
  5. 5. 5
  6. 6. 6
  7. 7. 7
  8. 8. Key Properties Within Taxonomy Observable Non-DeterminismWhether or not a paradigm can express observable Non-Determinism .Non-Determinism is when the execution of a program is notcompletely determined by its specification .The Non-Determinism is observable when if the user can seedifferent results from executions that start at the same internalconfiguration.The ConclusionObservable Non-Determinism should be supported only if itsexpressive power is needed8
  9. 9. Key Properties Within Taxonomy Named State How strongly paradigm supports state State is the ability to remember information, or moreprecisely, to store a sequence of values in timeAxes of expressiveness1.Depending on whether the state is unnamed or named.2.Deterministic or No-Deterministic3.Sequential or Concurrent9
  10. 10. 10With regard to Observable Non-Determinism and NamedState properties, both of them are cases where it isimportant to choose a paradigm that is expressive enough.Each of these two concepts is sometimes needed but shouldbe left out if not neededThe point is to pick a paradigm with just the RightConceptsAnd Taxonomy …
  11. 11. 11
  12. 12. 12
  13. 13. 13
  14. 14. 14The Main Axes = The Main Properties of System- Complexity : The number of Basic Interacting Components- Randomness: How Non-Deterministic The System’sBehavior isAggregates and Machines are two kinds of systemsA large mostly unknown area in the middle of thesecomponentsComputer Programming is pushing from two directions
  15. 15. 15We would like to understand the basic concepts that compose theunderlying paradigms and how these concepts are designed andcombined
  16. 16. 16
  17. 17.  This idea is to provide a framework in which we canwork in a variety of styles, freely intermixingconstructs from different paradigms. The design goal of such languages is to allow us touse the best tool for a job, admitting that no oneparadigm solves all problems in the easiest or mostefficient way.17
  18. 18. 18
  19. 19. 19• Constraint PG: Relations between variables are expressed as constraints• Dataflow PG: Recalculates formulas when data values change• Distributed PG: For Multiple Autonomous Communicated Computers• Generic PG: Uses written terms of To-Be-Specified-Later as parameters• Imperative PG: Explicit statements that change a program state• Object-oriented PG: Uses data structures consisting of data fields andmethods together with their interactions (objects) to design programs• Pipeline PG: A simple syntax change to add syntax to nest function callsto language originally designed with none• Rule-based PG: A network of rules of thumb that comprise aknowledge base and can be used for expert systems and problemdeduction & resolution• Visual PG: Manipulates program elements graphically rather thantextually
  20. 20. ConclusionsIt was a quick overview of the Programming Paradigms.Programming Languages should support several Paradigms,because different Problems require different Concepts to solvethem. Dual-Paradigm Language supports two paradigms Definitive Language has four paradigms in a layered structureEach Paradigm has Programming Language that support it wellwith their communities and championsMulti-Paradigm Languages like Oz, Alice, Curry or CIAO aregood samples for exploring how to use different paradigms inone program.20