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

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

Kuldeep answered on Aug 29 2021
156 Votes
Running head: Language Design Essay
2
Language Design Essay
Language Design Essay
Student name:
University Name:
Unit Name
Unit Code
Table of Contents
My programming language- Stat-Pro programming language    3
Introduction and explanation of language purpose    3
Choice and justification of compilation method    4
Why my programming will use object oriented approach and how I will make it efficient    5
Scoping Features and Memory Management    5
Rationale and Specification for the major language features    6
Simplicity    6
Orthogonality    7
Data types    8
Syntax design    8
Support for abstraction    9
Expressivity    10
Type checking    11
Exception handling    12
Restrict
ed aliasing    12
Readability, reliability and writability of the programming language according to chosen characteristics    12
References    14
Stat-Pro programming language
I have chosen this specific name as the name of the design for my programming language. It will deal with numerous statistical calculations and therefore include the term 'stat'.
Introduction & explanation of the language purpose
My programming language involves scientific methods. It will be more involved in statistics and some mathematics. This number will also be included in the simulation that is included .The programming language that handles this should be able to do the following.
i. Be capable to model some real-world issues with the help of custom data types
ii. Be able to process huge amounts of the data. Either through a local and remote database
iii. Large has the ability to store large numbers
iv. Be able to support concurrence. This means that thousands of processors can work at the same time and process large amounts of data at the same time.
v. Must have the ability to analyze stat statistics and have the ability to better represent data with the help of graphs or charts.
Such a system would require properly defined algorithms that would take the above role. Also, computer systems that use this programming language will require faster and higher storage so that problems can be calculated as quickly as possible. Programming language will be developed in such way that it uses an object oriented programming method. This means that it will support object-oriented features such as polymorphism, abstraction, inheritance and message passing (Fürst, Hoang, Basin, Sato & Miyazaki, 2016). With message passing, the programming language will enable the object to interact with others so that information can be exchanged. With polymorphism, the operations performed by the programming language will be able to display different behaviours in different instances (Bacardit & Llorà, 2013). The behaviour will actually depend on data utilized in the operation. Since the programming language is object oriented, an object in inheritance will be able to access the properties of another object. This code will help to be reusable, meaning it will add additional features to an already existing program. When the code for developing a programming language is well written, it will be translated into machine language which means it will be able to perform mathematical and statistical calculations. According to me the programming language should support some artificial intelligence features so that it can be able to forecast for the future statistical trends. By doing that, the users will be in a position to perform better analysis and plan for the future in case it is not favourable (Camagni, Capello & Caragliu, 2015).
Choice & justification of the compilation method
The choice to use object oriented way, will help to reuse the code and support some object oriented features. Such a programming language will be robust and this is one of the requirements that we should check when designing our programming language. If we had used any other method rather than the object oriented one, we could have difficulties in implementing certain functions such as concurrency or even the speed of the computation. The language will design in such a manner that it will support many data types which are required in maths and statistics. This will enable it to perform calculations which involve various kinds of data types. They should also be defined in such a manner that they will be holding data types which are long as well as short so that in case calculations which require these numbers are being done, they will be computed with ease (Defour & Marechal, 2004). Having done all that programming language developed will be capable to support features which are required for the existence of such a programming language. I just decided to include good features of graphics which are used to support data representation in a more understandable manner. The feature should support graphics so that when the data is being represented, users can be able to interpret it in a better manner. Programmers should also be allowed to design their own graphs so that in case they want to represent certain data, they can do it effectively. The reason as to why the programming language should be able to support large amount of data is because in statistics, large amount of calculations will be done and will require to be stored and hence the large amount of memory needed. Also the interface should be friendly to the user and for me I support user graphical interfaces which help the user to determine which task to perform (Fürst, Hoang, Basin, Sato & Miyazaki, 2016).
Why my programming will use object oriented approach and how I will make it efficient
In my programming language, I will concentrate more on making sure that the compiler I am actually developing will actually convert instructions from high level instructions to lower level instructions in a faster way. It could have been better if the programming language will be done in the low level language so that the compiler will take the shortest time but since we want to make the programming language easy to be understood by the users, we will need to use a faster compiler which will offer faster translation to the lower level programming language (Donaldson & Gay, 2010). In the implementation I will also include a hybrid model such as legion which is coarse grained functional as well as fine grained imperative .In this model, the tasks are pure with contra variant arguments which get passed in and out of the by the value. This model of programming will allow for the implementation of tasks to be either imperative or even functional. This will make my programming language to be flexible in a manner that it can use object oriented way or even the functional as well as the imperative manner. This will provide a favourable environment...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here