CSC/ECE 517 Fall 2011/ch1 1e dm

From Expertiza_Wiki
Revision as of 04:35, 31 August 2011 by Dmshah2 (talk | contribs)
Jump to navigation Jump to search

CSC/ECE 517 Fall 2011/ch1 1e dm


Introduction

This wiki article describes the block structured and object oriented languages. It also highlights their advantages and limitations along with providing the comparison between them.


Block Structured Languages

Block structured languages are a class of high-level languages in which a program is made up of blocks. A block is a section of code which can be grouped together. Blocks consist of one or more declarations and statements. A block structured programming language uses and permits the creation of blocks and may also include nested blocks as components. The major function of using blocks is to enable the groups of statements within the block to be treated as if they were a single statement.

Block structured programming is related to structured programming, which is a technique for organizing and coding computer programs in which a hierarchy of modules is used, each having a single entry and a single exit point, and in which control is passed downward through the structure without unconditional branches to higher levels of the structure. A structured program is decomposed into a hierarchy of processes. A process in this context is a body of code, typically a function or subroutine, that takes some input and manipulates it to produce an output. A process may be composed of other, more specialized processes, i.e., it may be a function that calls other functions. Structured Programming uses three types of control flow: sequential, test, and iteration.

Examples of block structured programming languages are ALGOL, FORTAN, Pascal, C, Python, Lisp.

The four fundamentals of object oriented programming languages are Polymorphism, Inheritance, Encapsulation and Abstraction.

Characteristics

  • Takes on the top-to-bottom approach.
  • Based around data structures and subroutines.
  • Uses single entry and exit block.
  • The names of variables and other objects such as procedures which are declared in outer blocks are visible inside other inner blocks, unless they are shadowed by an object of the same name.
  • Splits the tasks into modular forms.

Advantages

  • Splitting of tasks into blocks/modules makes the program simpler and easier to read with less lines and codes.
  • In a solution space where there are widely varying spatial and temporal scales one can
  • Put more grid where the solution is more interesting.
  • Leave the solution coarse where the solution is not interesting.
  • Can save an order of magnitude in memory.
  • Can save an order of magnitude in run time.
  • Numerical accuracy improves with more grid where gradients are strongest.
  • Being block-structured allows Fortran to be used for array operations.
  • Overhead involved involved in coarse-fine interactions can be amortized over larger array calculations.
  • Numerical accuracy is improved if the coarse-fine interface is kept to a codimension smaller than the solution.

Limitations

  • Communication patterns between levels can be complex.
  • Algorithm complexity can be substantial.
  • No data abstraction or information hiding supported.


Object Oriented Languages

Object oriented programming is an approach to programming in which each data item with the operations used on it is designated as an object; the routines used to operate on the data item are called methods; and objects are grouped in a hierarchy of classes, with each class inheriting characteristics from the class above it.

Programming techniques may include features such as data abstraction, encapsulation, messaging, modularity, polymorphism, and inheritance.

Examples of object oriented programming languages are C++, Java, Smalltalk, Ruby.

Concepts

Objects/Class: This is the basic unit of object oriented programming. That is both data and function that operate on data are bundled as a unit called as object.

Classes: The concept of class is similar to the concept of structure in C. In other words classes are the data types on which objects are created. So while a class is created no memory is allocated only when an object is created memory gets allocated.

Inheritance: As the name suggests Inheritance is the process of forming a new class from an existing class that is from the existing class called as base class, new class is formed called as derived class. This is a very important concept of object oriented programming since this feature helps to reduce the code size.

Data Abstraction: By this feature of object oriented programming it is possible to represent the needed information in program without presenting the details. Also by the feature of data abstraction it is possible to create user defined data types and thus increase the power of programming language.

Data Encapsulation: Data Encapsulation is the process of combining data and functions into a single unit called class. By this method one cannot access the data directly. Data is accessible only through the functions present inside the class. Thus Data Encapsulation gave rise to the important concept of data hiding.

Polymorphism: The ability to use an operator or function in different ways in other words giving different meaning or functions to the operators or functions is called polymorphism. Poly refers many. That is a single function or an operator functioning in many ways different upon the usage is called polymorphism.

Overloading: The concept of overloading is also a branch of polymorphism. When the exiting operator or function is made to operate on new data type it is said to be overloaded.

Reusability: That is object oriented programming has the feature of allowing an existing class which is written and debugged to be used by other programmers and there by provides a great time saving and also code efficiency to the language. Also it is possible to a have the existing class and adds new features to the existing class as pet the programmer’s choice.

Thus the object oriented programming features helps the program ad there by users of the application to achieve increased performance, it saves time of developing the application, give optimized code for the application, helps in gaining secured applications and there by helps in easier maintenance.

Advantages

  • Simplicity: software objects model real world objects, so the complexity is reduced and the program structure is very clear.
  • Modularity: each object forms a separate entity whose internal workings are decoupled from other parts of the system. Hence helps to reduce large problems to smaller, more manageable problems.
  • Modifiability: it is easy to make minor changes in the data representation or the procedures in an OO program. Changes inside a class do not affect any other part of a program, since the only public interface that the external world has to a class is through the use of methods. *Extensibility: adding new features or responding to changing operating environments can be solved by introducing a few new objects and modifying some existing ones.
  • Maintainability: objects can be maintained separately, making locating and fixing problems easier.
  • Re-usability: objects can be reused in different programs.

Limitations

  • Over generalization
  • Artificial class relations
  • Unnecessary complications

Compare and Contrast

Block Structure in Object Oriented Programming

Conclusion

See Also

References

  1. Advantages of block structured languages
  2. Advantages of object oriented languages
  3. Advantages of object oriented languages
  4. [1]

External Links

  1. Video for Structured Programming