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 »
i have one assignment i need good marks


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 DayAug 26, 2021ITECH5403

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

Ankit answered on Aug 29 2021
155 Votes
Student Name
Student Id
Comparative Programming Languages
Design a language for the problem domain of Banking
Table of Contents
Introduction and language purpose    3
Introduction:    3
Language purpose:    3
Choice and justification of interpretation or compilation method    4
Choice    4
Justification    5
Memory management and scoping features    5
Major features of the language    7
Simplicity:    7
Orthogonality:    7
Data Types:    7
Syntax design:    8
Support for abstraction:    9
Type Checking:    9
Exception handling:    9
Different features of Java for Banking domain    10
Security    10
Robust    11
Performance    11
Object oriented    11
Platform independent    11
Maintenance of code    12
Flexibility of design and implementation
    12
Why Java is most suitable for banking domain as compared to C++?    12
The programming paradigms of Java language    15
Readability, writability and reliability in java    16
Readability    17
Writability    17
Reliability    17
References    19
Introduction and language purpose
Introduction:
The biggest consumer of IT services is banking and financial domains. The software of banking domain deal with secure and private financial data. This is essential that activities done by banking software execute successfully without any bugs. The different functions are performed by banking software such withdraw funds, transfer funds, deposit funds, balance inquiry, transaction history etc.
Everyone knows about the fact that the computer language developed for banking domain in 1940 to 1960 are very outdated now. Currently Java, C++, C# etc. are most popular languages for problem domain of banking. The java is most suitable for banking domain because it is platform independent language. Java is used for wide variety of applications such as web based, enterprise, window and mobile apps. Java support users on different platforms and also support them on different payment systems.
Language purpose:
Java is the most popular language for banking domain due to various features such as security, efficiency, portability etc. This language is very good for handling large amount of banking data as it can design on heavily loaded programs. The JIT compiler is an important component in java which improve the performance of programs by compiling bytecode into native machine code at run time. There is automatic memory management in java and automatic garbage collector which works in backend to destroy all unused objects. As a java developer there is need to take worry about clean up memory objects as it is supported by default. The lifetime and availability of a variable is called scope. The scope depends upon where a variable is declared. Such as scenario when variable is declared inside the method then it is only accessible and used within method.
Java is a programming language which is based on the concept of OOPS. Java is portable language as it is supported by different type of operating system. It has strong built-in security features such as applying runtime constraints, strong security manager etc. This language is designed by Canadian James Arthur Gosling in 1995. Canadian James Arthur Gosling worked for company Sun microsystems. There are various multi-national banks such as Goldman Sachs, Barclays etc. who use Java for developing their software of all likely banking services from personal and mobile banking to finance or investments. (Fintechnews 2018)
In this document we will focus on Java interpretation/compilation method, memory management and scoping features in java. The various features of Java language which is suitable and helpful in banking field is to be discussed and how it is differentiate from other languages. Then we will discuss the programming paradigms of this language and readability, writability, reliability in java.
Choice and justification of interpretation or compilation method
Choice
For the process of execution, I have selected both the forms for my language. They have their own importance for both Interpretation and compilation. The interpretation/compilation in java is done through Just-in-time-compiler (JIT). The Just-in-time-compiler is a part of java runtime platform which improves the speed of java application at run time. The code or program in java is made of classes that consist of platform neutral byte code which is interpreted by Java virtual machine (JVM) on different platforms. The Java virtual machine (JVM) is computing device which helps system to execute java applications. The main function of JVM is to loads the program, verifies the program, runs the program, management of memory and then gives runtime platform.
Justification
Java programming language is very reliable and efficient due to use of compilation/interpretation methods. The JIT compiler is an important component in java which improve the performance of programs by compiling bytecode into native machine code at run time as shown in figure. (Aboullaite 2017)
Memory management and scoping features
There is automatic memory management in java and automatic garbage collector which works in backend to destroy all unused objects. As a java developer there is need to take worry about clean up memory objects as it is supported by default. The memory management is the technique of allocating new objects and destroying unused objects. (Marian 2018)
The memory structure of JVM consists of three parts i.e. Heap memory, Non- Heap memory and others as shown in figure:
The data field at execute time from which the memory for whole instances of java class and arrays allocated is Heap memory. The heap is built during JVM works up and would shrink or expand in size whenever application executes. The size of heap memory is fixed or variable based on garbage collection technique. 64 MB is the maximum size of heap memory by default. (Betsol 2017)
Non-Heap memory is another type of JVM memory which builds up at the JVM start up and saves per class structures. 64 MB is also the maximum size of heap memory by default.
Other Memory is used by JVM to store code itself, loaded profile agent code, data internal structures etc. (Betsol 2017)
The lifetime and availability of a variable is called scope. The scope depends upon where a variable is declared. Such as scenario when variable is declared inside the method then it is only accessible and used within method. When variable is declared at top of class then it is used by all class methods. In java, a block is to be nested within one or many other blocks.
The main benefit of innovative idea of block is that it helps in minimizing a section’s scope. In any case, the names reuse inside nested blocks is not legal as according to the developers of Java, they believed that it would be bugs vulnerable if allowed. In a case such as inside a subprogram, if the integer sum is to be declared then a compound statement does not permit to define an integer with same name.
Major features of the language
Simplicity:
Java has simple syntax which is easy to learn and understand. Some of the syntax in Java is similar to C++ programming language. But complexity of syntax and features...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here