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 »
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


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 27, 2020ITECH5403

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

Vidhi answered on Sep 02 2020
155 Votes
ITECH5403 Comparative Programming Languages
Assignment 1 – Language Design Essay
Student name: Student ID:
Introduction and Explanation of language purpose:
Java is the language best chosen for the banking purposes as it is true object oriented language and it can provide the best features with oop’s concepts ,it is not the 100 % object oriented language but it is true object oriented language and provided the best features and coding language over c and c++ and according to the specifications and competency I prefer the language java so to begin with I will first introduce the object oriented language and then I will discuss about java
O
bject Oriented languages : Object oriented languages are basically defines the concept of classes and objects and it deals with following properties if any language follows the following properties then it is known to be the object oriented language
I. Classes->if in any program everything is defined inside the class then it said to be following the feature of object oriented language as class is defined as the container for the data members(variables)and member functions(functions )and the keyword for defining class is ‘class’
II. Objects->Object is defined as the instance of the class as when class is defined no memory is allocated to the data members and member functions but when particular class is instantiated then the memory is allocated to the members of the class,In java we can define the object for any particular class as :’class name object name =new class name () ;’
III. Inheritance->Inheritance is the concept defined for the object oriented language which says that if any particular class is derived for the parent class and can access all the features of the parent class then there is inheritance exist between those two classes.
IV. Encapsulation->The wrapping up of data into a single unit is known as the Encapsulation ,and in Object oriented language we wrap up all data inside the class then it is known as the concept of Encapsulation
V)Abstraction ->showing only essential features without including the background details is known as the Data Abstraction. To give an example of abstraction we will create one superclass called Employee and two subclasses –  Contractor and FullTimeEmployee. Both subclasses have common properties to share, like the name of the employee and the the amount of money the person will be paid per hour. There is one major difference between contractors and full-time employees – the tyme they work for the company. Full-time employees work constantly 8 hours per day and the working time of contractors may vary.
Polymorphism -> polymorphism defines as to exist in different forms. In simple words, polymorphism is the ability of a function or message to be displayed in many forms or more than one form.
1. Real life consideration of polymorphism, suppose there is a person at same time can have different characteristic. Like a man at a same time is a father, a husband, an employee. So same person can exist in many forms in same time this is called polymorphism.
II. Data Hiding ->Using Object oriented language we can hide the data using the access specifiers like if we do not want our class data members to be accessed by other classes member functions then we can use private Access Specifiers and if we want our data members to be accessed by all other classes then we can use the public Access specifiers, and there another specifier available is protected which says that there will be accessibility of the data members within the derived class. So according to our requirement we can us the access specifier and can hide our data whenever required.
III. Message Passing-> In object oriented language we can also pass the message form one class to another using the objects and can make two or more classes communicate with each other.
OOP’s concepts can be shown graphically as:
JAVA:
JAVA is a true object-oriented programming (OOP) language, java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. Unlike conventional languages which are generally designed either to be compiled to native (machine) code, or to be interpreted from source code at runtime, Java is intended to be compiled to a bytecode, which is then run (generally using JIT compilation) by a Java Virtual Machine.
The language itself borrows much syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java is only distantly related to JavaScript, though they have similar names and share a C-like syntax.
It follows the concept of Object oriented language and also basic features of c and c++ language hence it is easy to implement and easy to understand also hence I have chosen this language for banking purposes as whenever I want to use the concept of classes I can use that and whenever I want to use the simple syntax of functions then I can choose that also hence it will be very easy for me to implement the code using java
Java was started as a project called "Oak" by James Gosling in June 1991. Gosling's goals were to implement a virtual machine and a language that had a familiar C-like notation but with greater uniformity and simplicity than C/C++. The first public implementation was Java 1.0 in 1995. It made the promise of "Write Once, Run Anywhere", with free runtimes on popular platforms. It was fairly secure and its security was configurable, allowing for network and file access to be limited. The major web browsers soon incorporated it into their standard configurations in a secure "applet" configuration. popular quickly. New versions for large and small platforms (J2EE and J2ME) soon were designed with the advent of "Java 2". Sun has not announced any plans for a "Java 3".
JAVA also follows the concept of modularity as we can make functions also and we can also make the classes also hence modularity is achieved in this as it will be very helpful in designing the code and understanding it.
Java program development requires a Java software development kit ( SDK ) that typically includes a compiler, interpreter, documentation generator and other tools used to produce a complete application. 
Development time may be accelerated through the use of integrated development environments ( IDE ) - such as JBuilder, Netbeans, Eclipse or JCreator. IDEs facilitate the development of GUIs, which include buttons, text boxes, panels, frames, scrollbars and other objects via drag-and-drop and point-and-click actions.
Java applets run in a Web browser with Java Virtual Machine (JVM), which translates Java byte...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here