Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

School of Science, Engineering and Information Technology CRICOS Provider No. 00103D Page 1 of 3 ITECH5403 - Assignment 1 - Language Design Essay Due Date: 5pm, Friday of Week 7 This assignment will...

1 answer below »
School of Science, Engineering and Information Technology
CRICOS Provider No. 00103D Page 1 of 3
ITECH5403 - Assignment 1 - Language Design Essay
Due Date: 5pm, Friday of Week 7
This assignment will test your knowledge of programming language design features, and is worth 20% of your
non-invigilated (type A) marks for this course.
Topic Overview
Since the development of Plankalkül back in the 1940s, a large number of programming languages have been
designed and implemented - each for its own specific problem domains and made with its own set of design
decisions and compromises. For example there are languages which:
ï‚· Are strongly typed and loosely typed,
ï‚· Provide support for object orientation / abstraction of data types,
ï‚· Use static or dynamic scoping rules,
ï‚· Provide memory management (i.e. ga
age collection) or allow the developer fine-grained control over
heap-allocation and recycling,
ï‚· Provide closures to allow functions to be passed around like variables,
ï‚· Allow easy access to a
ay slices and those which do not,
ï‚· Perform internal co
ectness checking of data and those which do not,
ï‚· Provide diverse and comprehensive suites of built-in functionality and those with a more limited set of
features,
ï‚· Use pre-processors and macros to selectively expand or substitute source code, etc.
Each of these decisions can have a profound effect on the usefulness of a programming language in terms of
factors such as its speed, robustness and general suitability to create programs of a certain type, such as for
operating systems, or in the areas of business, scientific computation, artificial intelligence or video games.
The topic of your essay is to design a language for the problem domain of Banking.
Banking encompasses a number of areas including aspects of business, finance, and customer relations. It is
worth thinking about the aspects of a banking system in terms of a number of features, including:
ï‚· Performance;
ï‚· Use and precision of data types and structures;
ï‚· Maintenance of code;
ï‚· Flexibility of design and implementation; and
ï‚· Robustness requirements in such a critical domain.
School of Science, Engineering and Information Technology
CRICOS Provider No. 00103D Page 2 of 3
Even though security aspects are worth considering, the features of the language are the primary concern in
this essay.
With this in mind your task is to theoretically design a language suitable for the use within the banking domain.
The actual implementation of the language and tool set is obviously outside the scope of this course, but you
must express and justify the design decisions behind your programming language in terms of:
ï‚· The features and functionality that will allow your language to be suitable and useful within the banking
domain (including what differentiates it from existing languages),
ï‚· The programming paradigms, such as procedural, object oriented, logic and functional programming.
You are free to design your language to be either interpreted, compiled or to work in a hy
id manner, but you
must thoroughly justify your decision.
All language design choices must be sound, rational decisions which are backed up by robust discussion of
the subject area. In addition, your document should include numerous references to back up any and all
specific claims that you make. All references should be made in the APA referencing style.
Submission and Marking Process
Your essay should be between 3,000 and 4,000 words inclusive and may contain diagrams or images as you
see fit. All diagrams, charts, images or other externally created materials incorporated into your essay must be
appropriately referenced.
You may supply your completed essay in either Word or Li
eOffice/OpenOffice format in which the document
can be edited – no proprietary Mac specific formats, please.
Assignments will be marked on the basis of fulfilment of the requirements and the quality of the work.
In addition to the marking criteria, marks may be deducted for failure to comply with the assignment
equirements, including (but not limited to):
ï‚· Incomplete language feature coverage,
 Incomplete submissions (e.g. missing subject areas – see the marking guide),
ï‚· Poor spelling and grammar, and
ï‚· Inco
ect adherence to the APA referencing style.
Submit your document to the Assignment 1 Upload location on Moodle before the deadline of Friday of week 7
at 5pm.
The mark distribution for this assignment is outlined in the provided marking sheet on the following page.
School of Science, Engineering and Information Technology
CRICOS Provider No. 00103D Page 3 of 3
ITECH5403 – Comparative Programming Languages
Assignment 1 – Language Design Essay
Student name: Student ID:
Requirement Weight Mark
- Introduction and explanation of language purpose.

10
- Choice and justification of interpretation/compilation method(s) to be used.

10
- Discussion of memory management and scoping features.

10
- Specification and rationale for major language features in terms of:
- Simplicity,
- Orthogonality,
- Data types,
- Syntax design,
- Support for abstraction,
- Expressivity,
- Type checking
- Exception handling, and
- Restricted aliasing.
45
- Discussion of the readability, writability and reliability of the language based
on the language characteristics as chosen.
-
15

- References and APA referencing style.
-
5
- Spelling and grammar.
-
5
Assignment mark total

/ 100
Contribution to unit mark (out of 20%)
%
Comments:
Answered Same Day Apr 29, 2021 ITECH5403

Solution

Avni answered on May 02 2021
154 Votes
Introduction
The banking sector is one place where customers expect 24*7 service or we can say that there is no concept of free timing applicable in this industry. For this reason, this sector requires software which is robust, safe and fast among other things. Languages that are best suitable for this job include Java, Scala and, C++, etc. With the advent of globalization and growth of internet all the industries are going online and, so is the banking industry. This is done so that banking services can be provided 24*7 to all the customers. Facilities like checking bank balances, transfe
ing money across the globe are all available on our fingertips.
Both private and government sector banks operate their own softwares. These softwares are written in various languages understood by a computer and which are known as programming languages. A program is just a set of instructions and, multiple programs on a single platform make a software. Thus we can say that programming languages form the backbone of a software. In the modern world, there are multiple programming languages available with merits and demerits of their own.
A programming language is used to give instructions to a computer to perform specific tasks that are required by the user. This term programming language is generally associated with high-level languages. There are a number of languages available in the market. C, C++, Java, C#, Ajax, .Net, etc. are some of the commonly used languages. Apart from these Python is also a very important language used by programmers across the globe. Other than that Small talk is a unique language because of its fully object-oriented nature.
Safety is one of the most major concerns nowadays because of the increase in the number of hackers who are responsible for attacks on computers and theft of valuable data. Because of this softwares are being developed in highly secure languages. This is especially relevant in the banking sector as there is sensitive information involved and banks cannot expect all the customers to be aware of malicious activities. In order to stop this from happening, banks are ordering new softwares which are highly secure and robust in nature.
Choice and justification of interpretation\compilation method (s)
Plankalkul is credited to be the first programming language developed by Konrad Zuse between the years 1942 and 1945. As discussed earlier there are many programming languages which have their own set of qualities which make them useful in different occasions. For example some languages;
1) Can be Strongly typed and loosely typed
2) Support object oriented framework
3) Provide features like memory management using ga
age collection
4) Allow functions to be passed around as variables
5) Allow easy access to a
ay slices
6) Allow internal co
ectness of and some others don’t
7) Have diverse built-in functionalities and some have limited features
Each of these features make every programming language unique and help to differentiate it from other languages on the basis of use. But being robust and fast is expected of all the languages. The features help the end user decide which language to use dependent on the need and application which ranges from Artificial intelligence to game development.
One of the most prominent language used in developing banking softwares is ‘Java’. Java comes under the category of partially object-oriented languages. In the banking sector with years of usage Java has a pretty strong base and a lot of legacy as well as modern softwares, have their UIs developed in Java. Other than Java, .Net and C++ are other 2 prominent languages used in banking sector.
Before designing a programming language, a developer must be aware of the following important elements
1) Familiarity levels with the technology
2) Familiarity levels with terminology
3) A clear vision and aim is there
4) The semantics of the language being created which include
· What are the data types that would be a part of the new language language?
· Whether the language being designed is static or dynamic in nature?
· Is the language a domain specific one or a general purpose?
· The memory management technique to be used – Ga
age collection or Manual data handling
· What procedure to adopt to handle concu
ency? (Multithreading model/ Deadlock model/ Complex models like Linda)
· Whether the language will support primitive functions or all the functions will come from the li
ary?
· Deciding on the main paradigm to be used for this language. Options include Functional, Object-oriented, Script, Template oriented or coming up with something entirely new
· If development is done for a domain specific language, then the developer needs to clearly define the interface with the existing li
aries and languages
5) If the development is done for a domain specific language then it should be capable of doing all the domain tasks efficiently
6) Evaluate different syntax ideas
7) Come up with grammar for syntax
8) Decide on whether the language will be compiled or interpreted
9) Parser information to be used to write code
10) Make use of executor or code generato
11) Write a test program to test the language
12) Write a standard li
ary
13) Decide on debugging procedure for the language
14) Publish the language with specifications
These are the 14 steps that a developer needs to keep in mind while developing a language. When it comes to the banking sector, it incorporates a lot of functions including financial transactions, customer relationship management, etc. Thus the programming language to be designed should be suitable for...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here