Programming Paradigms - Advanced Software Paradigms | CSCI 210, Assignments of Computer Science

Material Type: Assignment; Professor: Bellaachia; Class: Advanced Software Paradigms; Subject: Computer Science; University: George Washington University; Term: Unknown 1989;

Typology: Assignments

Pre 2010

Uploaded on 08/19/2009

koofers-user-xry
koofers-user-xry 🇺🇸

10 documents

1 / 11

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Programming Paradigms
ª Programming languages
A Programming language is a notational
system for describing tasks/computations in
a machine and human readable form.
Most computer languages are designed to
facilitate certain operations and not others:
numerical computation, or text
manipulation, or I/O.
More broadly, a computer language
typically embodies a particular
programming paradigm.
ª Characteristics of a programming language:
Every language has syntax and semantics:
Syntax: The syntax of a program is the form of
its declarations, expressions, statements and
program units.
Semantic: The semantic of a program is
concerned with the meaning of its program.
Abdelghani Bellaachia, Advanced Software Paradigms Page: 1
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Programming Paradigms - Advanced Software Paradigms | CSCI 210 and more Assignments Computer Science in PDF only on Docsity!

Programming Paradigms

ª Programming languages

  • A Programming language is a notational system for describing tasks/computations in a machine and human readable form.
  • Most computer languages are designed to facilitate certain operations and not others: numerical computation, or text manipulation, or I/O.
  • More broadly, a computer language typically embodies a particular programming paradigm.

ª Characteristics of a programming language: Every language has syntax and semantics:

  • Syntax : The syntax of a program is the form of its declarations, expressions, statements and program units.
  • Semantic : The semantic of a program is concerned with the meaning of its program.

ª Which programming language?

  • Since a task can be solved in different ways (paradigms), the language used to describe the solution differs in abstractions, structures due to the way in which the problem is solved.
  • There is no theory that dictates the best paradigm to solve a particular problem.
  • Efforts by Sebesta in his Concepts of Programming Languages book: - He based his evaluation criteria on three factors and 9 characteristics. - The three criteria (R,W,R) are:

ƒ Readability ƒ Writability ƒ Reliability

ƒ Support for abstraction (,W,R) ƒ Expressivity (,W,R):

  • Programming languages with poor support for abstraction and weak primitives will have poor writability. ƒ Type checking (,,R) ƒ Exception handling (,,R) ƒ Restricted aliasing (,,R):
  • example: (C) int salary, *p_salary; salary = 98000; p_salary = &salary; salary and *p_salary are aliases.
  • Maintainability o Factoring : The ability to group related features into a single unit. Use subroutines to group related computations units so they can be re-used in different parts of the application. o Locality : The ability to implement information hiding so that changes to a grouping (either control or data) are transparent.
  • Cost o Programmer training o Software creation o Compilation o Execution o Compiler cost o Poor reliability o Maintenance
  • Others: portability and generality
  • Many people also find the imperative paradigm to be a more natural way of expressing themselves.

ª Functional programming paradigms

  • In this paradigm we express computations as the evaluation of mathematical functions.
  • Functional programming paradigms treat values as single entities. Unlike variables, values are never modified. Instead, values are transformed into new values.
  • Computations of functional languages are performed largely through applying functions to values, i.e., (+ 4 5).

ª The Object-Oriented Paradigm

  • OO programming paradigm is not just a few new features added to a programming language, but it a new way of thinking about the process of decomposing problems and developing programming solutions
  • Alan Kay characterized the fundamental of OOP as follows: - Everything is modeled as object - Computation is performed by message passing: objects communicate with one another via message passing. - Every object is an instance of a class where a class represents a grouping of similar objects. - Inheritance: defines the relationships between classes.
  • The Object Oriented paradigm focuses on the objects that a program is representing, and on allowing them to exhibit "behavior".
  • Unlike imperative paradigm, where data are passive and procedures are active, in the O-O paradigm data is combined with procedures to give objects , which are thereby rendered active.

ª Concurrent programming

  • Improve performance
  • Multiprogramming systems attempt to utilize resources that would otherwise be wasted, by running two or more jobs concurrently.
  • Multiaccess systems extend this principle, allowing many jobs to be run, each on behalf of a user at an interactive terminal.
  • Concurrency can be classified into:

o Apparent concurrency: single processor (interleaved execution of concurrent tasks) o Real concurrency: multiprocessor environment

  • Issues:

o How to synchronize the interactions among concurrently executing processes to maintain the internal data integrity. o Another problem is to schedule the racing processes for a limited set of shared resources.