Discuss in Details 10 Each of Programming Paradigm and Computing Technology
Discuss in Details 10 Each of Programming Paradigm and Computing Technology
2. Explain how each of the paradigm is useful in the application of the computing
technology to real life computing benefits.
3. Discuss any methodology or methodologies that are applicable in driving new grounds in
the identified computing technologies.
1. Imperative
o efficient;
o close to the machine;
o popular;
o familiar.
Disadvantages
o The semantics of a program can be complex to understand or prove,
because of referential transparency does not hold(due to side effects)
o Side effects also make debugging harder;
o Abstration is more limitted than with some paradigms;
o Order is crucial, which doesn't always suit itself to problems.
2. Function
o The Functional Programming paradigm views all subprograms as
functions in the mathematical sense-informally, they take in
arguments and return a single solution. The solution returned is based
entirely on the input, and the time at which a function is called has no
relevance. The computational model is therefore one of function
application and reduction.
o Languages
Functional languages are created based on the functional paradigm.
Such languages permit functional solutions to problems by permitting
a programmer to treat functions as first-class objects(they can be
treated as data, assumed to have the value of what they return;
therefore, they can be passed to other functions as arguments or
returned from functions).
o Advantages
The following are desirable properties of a functional language:
1. The high level of abstraction, especially when functions are
used, supresses many of the details of programming and thus
removes the possibility of commiting many classes of errors;
2. The lack of dependence on assignment operations, allowing
programs to be evaluated in many different orders. This
evaluation order independence makes function-oriented
languages good candidates for programming massively parallel
computers;
3. The absence of assignment operations makes the function-
oriented programs much more amenable to mathematical proof
and analysis than are imperative programs, because functional
programs possess referential transparency.
o Disadvantages
1. Perhaps less efficiencey
2. Problems involving many variables or a lot of sequential activity
are sometimes easier to handle imperatively or with object-
oriented programming.
3. Logic
o Advantages:
The advantages of logic oriented programming are bifold:
1. The system solves the problem, so the programming steps
themselves are kept to a minimum;
2. Proving the validity of a given program is simple.
4. Object-Oriented Programming(OO):
In this framework, all real-world entities are represented by Classes. Objects are
instances of classes so each object encapsulates a state and behavior. State implies
the fields, attributes of the object and behavior is what you do with the state of the
object and they are the methods. Objects interact with each other by passing
messages.
Features of OO:
This programming methodology is based on data and its movement. Program statements are
defined by data rather than hard-coding a series of steps.
To process the data and querying them, databases use tables. Data can then be easily accessed,
managed, modified, updated, controlled and organized.
A good database processing approach is crucial to any company or organization. This is because
the database stores all the pertinent details about the company such as employee records,
transaction records and salary details.
12. onstraint Programming (CP) has proven to be a very successful technique for reasoning
about assignment problems, as evidenced by the many applications described elsewhere
in this book. Much of its success is due to the simple and elegant underlying formulation:
describe the world in terms of decision variables that must be assigned values, place clear
and explicit restrictions on the values that may be assigned simultaneously, and then find
a set of assignments to all the variables that obeys those restrictions. Thus, CP makes two
assumptions about the problems it tackles:
13. 1.
14. There is no uncertainty in the problem definition: each problem has a crisp and complete
description.
15. 2.
16. Problems are not dynamic: they do not change between the initial description and
the final execution of the solution.
17. View chapterPurchase book
Constraint programming (CP) is a paradigm for solving combinatorial
problems that draws on a wide range of techniques from artificial
intelligence, computer science, and operations research.
In constraint programming, users declaratively state
the constraints on the feasible solutions for a set of decision variables.
18.Array: Programming with powerful array operators that usually make loops
unnecessary.
19. Array programming is a high-level programming paradigm which generalizes certain
operations so that they can be applied to arrays of values at once instead of individual
values one at a time.
20. The paradigm assumes that the elements of the array possess similar properties and are
processed in a similar way each time the operation is applied to the array. Therefore the
array processing can be implemented in the language itself, allowing the programmer to
manipulate an array as a whole.
21. The natural examples of generalized operations are vector and matrix operations: dot
and cross products, matrix multiplication and invertion, etc. Some languages don’t use
array programming as a paradigm but still provide additional libraries of generalized
operations for arrays manipulations or tools of implementing such operations.
22. Array programming is the opposite of scalar programming.
23. n computer science, array programming refers to solutions which allow the
application of operations to an entire set of values at once. Such solutions are
commonly used in scientific and engineering settings.
24. Modern programming languages that support array programming (also known
as vector or multidimensional languages) have been engineered specifically to
generalize operations on scalars to apply transparently to vectors, matrices, and
higher-dimensional arrays. These include APL, J, Fortran 90,
Mata, MATLAB, Analytica, TK Solver (as lists), Octave, R, Cilk Plus, Julia, Perl
Data Language (PDL), and the NumPy extension to Python. In these languages,
an operation that operates on entire arrays can be called a vectorized operation,
[1]
regardless of whether it is executed on a vector processor (which implements
vector instructions) or not. Array programming primitives concisely express broad
ideas about data manipulation. The level of concision can be dramatic in certain
cases: it is not uncommon to find array programming language one-liners that
require several pages of object-oriented code.