Assignment No. 01
Semester: Fall 2018
CS508: Modern Programming Languages
Total Marks: 15
Due Date:
22nd November, 2018
Instructions:
Please read the following instructions carefully before submitting assignment. It should be clear that your
assignment will not get any credit if:
The assignment is submitted after due date.
The submitted assignment does not open or file is corrupt.
Assignment is copied (partial or full) from any source (websites, forums, students, etc.)
Note: You have to upload only .doc or .docx file. Assignment in any other format (extension) will not be
accepted and will be awarded with zero marks.
Objective:
The objective of this assignment is to provide hands on experience of:
Concepts of Imperative and Functional programming languages
Evaluating Java language in Reliability parameter
For any query about the assignment, contact at CS508@vu.edu.pk
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.
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: https://tiobe.com/tiobeindex/
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.
Semester: Fall 2018
CS508: Modern Programming Languages
Total Marks: 15
Due Date:
22nd November, 2018
Instructions:
Please read the following instructions carefully before submitting assignment. It should be clear that your
assignment will not get any credit if:
The assignment is submitted after due date.
The submitted assignment does not open or file is corrupt.
Assignment is copied (partial or full) from any source (websites, forums, students, etc.)
Note: You have to upload only .doc or .docx file. Assignment in any other format (extension) will not be
accepted and will be awarded with zero marks.
Objective:
The objective of this assignment is to provide hands on experience of:
Concepts of Imperative and Functional programming languages
Evaluating Java language in Reliability parameter
For any query about the assignment, contact at CS508@vu.edu.pk
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.
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: https://tiobe.com/tiobeindex/
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.
Solution :
Ans1:
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.
Ans2
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 runtime errors ensure that all the
programming issues are resolved beforehand.
OR'
The functional programming paradigm was explicitly created to support a pure functional approach to problem solving. Functional programming is a form of declarative programming. In contrast, most mainstream languages, including object-oriented programming (OOP) languages such as C#, Visual Basic, C++, and Java, were designed to primarily support imperative (procedural) programming.
With an imperative approach, a developer writes code that describes in exacting detail the steps that the computer must take to accomplish the goal. This is sometimes referred to as algorithmic programming. In contrast, a functional approach involves composing the problem as a set of functions to be executed. You define carefully the input to each function, and what each function returns. The following table describes some of the general differences between these two approaches.
Comments
Post a Comment