Introduction 

What will be covered ?


Imperative Paradigm vs Declarative Paradigm

Most languages belong to one of these distinct paradigms
  • Execution via evaluation (substitution and reduction of expression)
  • Based on formal computational model of lambda calculus
  • Key operation: function application
  • Examples:
  • eager evaluation: Lisp, ML, Scheme
  • lazy evaluation: Miranda, Haskel
  • Example of function style vs imperative style in Java
  • Execution based on deduction
  • based on predicate calculus using a proof method called resolution
  • Robinson , A Machine-Oriented Logic Based on the Resolution Principle , Journal of the ACM, 12(1):23-41, January 1965.
  • attempts to find values that satisfy certain specific relationships, using a goal directed search through a list of logical rules.
  • Horn clauses and relations
  • Key operation: unification
  • Example: Prolog