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 »
What is the price for this assignment?


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 25, 2021ITECH5403

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

Kuldeep answered on Apr 29 2021
130 Votes
PokemonJ++
Programming Language
Student Name
University Name
Unit Name
Unit Code
Contents
Name of the language    3
Introduction of the language    3
Language purpose    3
Interpretation and compilation method, the scoping features as well as memory management    4
Specification as well as rationale for some major language aspects and features    7
The Simplicity    7
Orthogonality    7
Class interface as well as implementation    10
Creating Objects    10
Syntax design    11
Support to abstraction    11
Exception Handling    11
Expressivity    11
Type Checking    12
Restricted aliasin
g    13
Discussion    14
References    16
Name of the language
I will name my designed language PokemonJ++. This means we can bring these codes into your stamp. It is simple to use and learn.
Introduction of the language
As mobile language development, PokemonJ ++ will draw on the most commonly used JVA language and Objective-C language in the world. In my design, it can run not only on mobile phones, but also with the most of the electronic devices. It will also have JAVA capabilities and support the closed cell phone system for example IOS.
Simultaneously, it’s based on the JAVA, so it can also run separately on the small machines. Only if 40 k can accommodate a basic analyst, yet with basic threading as well as standard library supports, just add 175 k.
Language purpose
PokemonJ ++ was originally designed for banking utilize of the language, so it wants to be clearer and clearer than Java code, and because it helps to minimize the battery due to its additional optimization and fast operation, it will decrease power consumption.
I am making sure that it is a new function lies first in it.
These innovative features include:
1) Provide automatic management of the memory, programmers want to release and allocate memory in program, horrible memory allocation error will not bother you;
2) PokemonJ ++ is a dynamic language; the message passing mechanism is flexible or can add lots of functions at runtime.
3) Avoid confusion between assignment statements (for example a = 4) as well as logical operation statement (for example a = = 4);
4) Elimination of multiple inheritances of complex facilities.
5) Support users interface
6) AR application and Support VR development
Interpretation and compilation method, the scoping features as well as memory management
The mechanism is that I select JAVA syntax is powerful, easy, from the network to desktop, omnipotent, embedded reasons. Comparing these languages with C, C++, and Java is easy, removing Java pointers, very well understood, automatic garbage compilation mechanism is very good, as the startup performance of JDK1.5 has been greatly better, as well as there is such a call: create Java rather than the basic language of C. These Java’s are sufficient to illustrate benefits of simple to use or learn. Next, the power of Java, I mention above, the introduction of EJB 3.0 makes Java first choice for the large projects. Main role of the J2ME in a mobile game growth is completely useless.
More importantly, as the financial graduate, JAVA is the thing I have ever touched.
So here completely extend the JAVA memory mechanisms:
PokemonJ ++ divides memory into a two types: one is a stack memory and other is completely heap memory. Defined in a function of a few basic kinds of variables as well as object references variables is the function in the memory allocation and stack, or when defining variable in the code block, PokemonJ ++ will also allocate the memory space for variables in stack, when beyond the scope of the variable (Such as, in function call function B, in function distinct in a variable BB, A, scope of variable A is the only function after the function is work, B variable A is destroyed automatically. It’s recycled ), PokemonJ ++ will release automatically the memory space allocated for variable, which can be used by one immediately.
Heap memory is use to store arrays and objects, created by innovative memory allocated in the heap, moreover managed by the Java Virtual Machine Automatic Collector. Create an object or array in heap or special variables in stacks, so that value of these variables in stack is alike to the object or array in heap memory addresses. Reference variable are generic and are defined in stack allocation. The Reference variable in program is released after the running to the external scope. And the array is allocated in heap and the object itself, yet if your applications are using new array and the block of the object's code block, the array and the object itself will not be freed, the array and the object will point without the reference variable. It becomes a waste, not in use, but still occupies memory space and is subsequently collected by the garbage collector (release) in an indeterminate amount of time.
Since the mechanism is the similarly, I will give a JAVA as example to clarify it.
Each object is instantiated in the above application, and the object needs to open space in memory during the instantiation process, including stack memory. As it is design for a mobile phone software’s, then the nature never want to utilize all the JAVA functions, and compatible with the target --C, there is a need to give up several large or complex content, here I choose several can be borrowed and apply Directly in the Android section
1. Android application
Much Android application is created by the Java developers. In spite of the fact that Android uses distinctive JVMS additionally unique bundling strategies, code is written in Java. The Java diversion is upheld by extensive number of the cell phones, which makes loads of non-developers ready to get JAVA (J, 2010).
2....
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here