CS508 Assignment 1 Solution Fall 2018

Question 1: [10 marks]
By now you have studied that there are, literally, hundreds of programming languages that are used to solve
computing problems, ranging from scientific, business, to artificial intelligence domains. These languages satisfy
one or more programming paradigms or programming categories. Two of the most important categories are
Imperative programming languages and Functional programming languages.
Describe briefly, the distinguishing features of Imperative and Functional programming language. Give at least
two examples of both categories.
NOTE: Do not write unnecessarily long answer. Give to the point answer preferably in bulleted points.



Distinguishing features of Imperative and Functional programming language:

  • The functional programming paradigm was explicitly created to support a pure functional approach to problem solving. Functional programming is a form of declarative programming.
  • A functional approach involves composing the problem as a set of functions to be executed. The primary reason to implement functional transformation as pure functions is that pure functions are composable: that is self-contained and stateless.
  • These characteristics bring the benefits like readability and maintainability. We can define carefully the input to each function, and what each function returns. Haskell/gofer like languages is purely functional.
  • In contrast, an imperative language uses a sequence of statements to determine how to reach a certain goal.
  • With an imperative approach, a developer writes code that describes in exacting detail the steps that the computer must take to accomplish the goal.
  • Functional languages are good when we have a fixed set of things and as our code evolves, we primarily add new operations on existing things. This can be accomplished by adding new functions which compute with existing data types and the existing functions left alone. This is sometimes referred to as algorithmic programming most mainstream languages including object-oriented programming (OOP) Languages such as c#, C++, and java were designed to primarily support imperative programming.

Question 2: [5 marks]
Java is one of the most popular programming languages in the market. According to TIOBE index, Java is at the
top of the list (as of November 2018) in popularity among programming community:
You have to evaluate Java language on Reliability parameter. What two features/constructs in your opinion are
available in Java which makes its code reliable for wide adaption in the industry?
NOTE: Write precise and brief answer, preferably in bulleted form.


Java features:

  • There are many features that make java a more powerful programming language than many others like simplicity, Reliability, Security and portability.
  • One of the significant features that made java extremely popular and useful for internet was its platform independence. The language was suitable for creating both small components and complex standalone applications.
  • In java programming there is series of checks to ensure that the programs are completely reliable. Sensing probable problems and detecting run time errors ensure that all the programming issues are resolved beforehand.