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 »
How much price


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. garbage 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 array slices and those which do not,  Perform internal correctness 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 hybrid 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 LibreOffice/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 requirements, 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  Incorrect 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 DayApr 29, 2021ITECH5403

Answer To: School of Science, Engineering and Information Technology CRICOS Provider No. 00103D Page 1 of 3...

Avni answered on May 02 2021
152 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 c
hecking bank balances, transferring 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 garbage collection
4) Allow functions to be passed around as variables
5) Allow easy access to array slices
6) Allow internal correctness 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 – Garbage collection or Manual data handling
· What procedure to adopt to handle concurrency? (Multithreading model/ Deadlock model/ Complex models like Linda)
· Whether the language will support primitive functions or all the functions will come from the library?
· 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 libraries 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 generator
11) Write a test program to test the language
12) Write a standard library
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