School of Engineering, Information Technology and Physical Sciences CRICOS Provider No. 00103D Page 1 of 4 ITECH5403 - Assignment 1 - Language Design Essay Due Date: 11:55pm, Friday of Week 7 This...

1 answer below »
atleast 3000 words



School of Engineering, Information Technology and Physical Sciences CRICOS Provider No. 00103D Page 1 of 4 ITECH5403 - Assignment 1 - Language Design Essay Due Date: 11:55pm, Friday of Week 7 This assignment will test your knowledge of programming language design features, and is worth 20% of your 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/or try/catch exception handling 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 programming language for the problem domain of: Scientific Computations • Scientific computations are used to simulate real-world activities using mathematical models. • This is mainly achieved through the analysis of mathematical models implemented on computers. • Virtually any objects with known characteristics can be modelled and simulated. School of Engineering, Information Technology and Physical Sciences CRICOS Provider No. 00103D Page 2 of 4 • Simulations use enormous calculations and often require supercomputer speed. • As personal computers became more powerful, laboratory experiments can be converted into computer models that can be interactively examined by researchers without the risk and cost of the actual experiments. • It’s worth thinking about the aspects of a programming language designed for scientific applications in terms of a number of features, including: • Performance; • Data types and structures; • Maintenance / Reliability of code; and • Security requirements. With this in mind your task is to theoretically design a language suitable for the use within the scientific calculations 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 problem 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 legitimate, 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. IMPORTANT! Your essay should NOT be about the C/C++ or FORTRAN programming languages – or any programming language that currently exists. Your essay must be on the programming language THAT YOU DESIGN in terms of the features the language should have and the choices you make about what functionality, data types, compilation/interpretation, exception handling etc. that you decide should be included in the language to make it suitable for the specific problem domain. School of Engineering, Information Technology and Physical Sciences CRICOS Provider No. 00103D Page 3 of 4 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 must supply your completed essay in Microsoft Word DOCX format ONLY. 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 on Friday of week 7. When you upload your assignment, it will be checked by the “Turn-it-In” plagiarism detection service – this means that the content of your document will be compared to millions of other documents to see if any text in those documents matches the text in your document. Turn-it-In can detect these matches even if you have made re-phrasing changes to some aspects of the text. If you cite documents correctly, then this is a good thing – you are reading, learning and providing correct accreditation to the original authors of the work that you cite. If you DO NOT cite instances of where you have taken the work of others, then this is plagiarism and will be dealt with under the university’s plagiarism policy. The university takes plagiarism very seriously – you can read more about what is and is not considered plagiarism here: http://federation.edu.au/current-students/learning-and-study/online-help-with/plagiarism And the university’s official plagiarism policy can be found here: http://policy.federation.edu.au/university/student_plagiarism/ch01.php The mark distribution for this assignment is outlined in the provided marking sheet on the following page. Please use these marking criteria as the headings in your document, (with the exception of “References and APA referencing style” and “Spelling and grammar”) so you know that you need to cover each and every aspect that is being marked. http://federation.edu.au/current-students/learning-and-study/online-help-with/plagiarism http://policy.federation.edu.au/university/student_plagiarism/ch01.php School of Engineering, Information Technology and Physical Sciences CRICOS Provider No. 00103D Page 4 of 4 ITECH5403 – Comparative Programming Languages Assignment 1 – Language Design Essay Student Name: Student ID: Requirement Weight Mark Providing your programming language with a suitable name. 1 Introduction and explanation of language purpose. 10 Choice and justification of interpretation/compilation method(s) to be used. 9 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 [5 marks per item] 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: Due Date: 11:55pm, Friday of Week 7 Topic Overview Submission and Marking Process
Answered Same DaySep 05, 2021ITECH5403

Answer To: School of Engineering, Information Technology and Physical Sciences CRICOS Provider No. 00103D Page...

Hartirath answered on Sep 11 2021
134 Votes
Running Head: ITECH5403 Language Design Essay
ITECH5403
Student Name:
Unit Name:
University Name:
Date
Contents
Introduction    2
Explanation of language purpose    3
Compiler    3
Interpreter    3
Memory Management    4
Scope    5
Features of Kscript    6
Simplicity    6
Orthogonality    7
Data types    7
Syntax design    9
Support for abstraction    10
Expressivity    12
Exception handling    13
Restricted aliasing    16
Readability    16
References    20
Introduction
In this report, I will design a new language. The language will be particularly designed for field of business management. In business management, we must maintain records of consumer, commodities and other productsmn. Business management requ
ires the shortest response time and high availability (Bernardy et al., 2010). I will get the attributes from the other languages (such as java, php or C#). Kscript or imperative languages will help develop good software to resolve problems in business management field. The programmer should understand what data will be entered into software, how to process that information, as well as what results will be produced.
All software should use three concepts to succeed:
Input: Data from external sources and input software. Input come from keyboard input, records in the database and mouse click on the image.
Processing: Manage information according to the logic of the software. Processing is the processing of the input received by the software (edureka, 2019). This can also be something from adding some number together to mapping Earth’s climate.
Output: information software produces after processing the input. The output can emerge on computer screen, in printout and in a record in database. Algorithms are steps required to resolve an issue using a flowchart. After the algorithm is created, the programmer will check it. Logical errors are errors in the way algorithms solve problems. The programmer checks its algorithm by entering test data and manually or using a calculator.
The report also discussed the memory management of language moreover how it works. In addition, it discusses compilers and interpreters, which process language will be used or why. The language will be simple, reliable, writable and readable (Manzoor, 2012). Therefore, we will concentrate on different characters of programming language, which help us make the language more readable, writable, and more reliable, for example simplicity, syntax design, data types, exception handling orthogonality expression, Restricted aliases, type checking , exception handling, and language support abstract (Manzoor, 2012).
Name of Language 
Kscript.
Type of Language 
Imperative Language 
Explanation of language purpose
Programming languages are use to write instructions to control functions of machine parts. Humans only need to write a numbers like "1010001110" to issue instructions to the machine. This is difficult to do because sometimes we have to write big programs to manage the machine (Nanz & Furia, 2015). To resolve this issue, we will use programming languages. In fact, programming dialects are only a set of terms and grammatical specifications used to instruct personal computers to perform certain tasks.
Language will be hybrid language
Compiler
This is a phenomenon that clarifies methodology written in given programming language and then converts them into a machine code or jargon that can be maintained by the processor of any given personal computer.
Interpreter
If the compiler runs one programming language unconvincingly, the compatibility between the other does not change. Like a compiler, a pure interpreter has no understanding of the code ("kScript 2.5 User Manual", 2016). The easy-to-understand source code is usually obtained by interpreters, which execute statements one by one on the host computer. Normally, simple people will not enhance the code in any way. Like compilers, flawless interpreters are not prepared to check dialect structures.
Initial, Kscript compiled into bytecode by the Kscript compiler, or then the Kscript interpreter track the bytecode on the computer. A hybrid compiler is a type of compiler that decrypts the understandable source code into the middle part of the road bytecode for later use. Therefore, these dialects have both compiler and mediator elements ("Interpreter Vs Compiler : Differences Between Interpreter and Compiler", 2020). These types of compilers are often called just-in-time compilers (JIT). Therefore, the business management resolution can run on some platform such as Windows, Mac or Linux, because the source code of Kscript is first converted into bytecode, moreover then interpreted by the interpreter for a particular platform.
Fig: Interpreter
Memory Management 
Memory management manages the management of PC physical memory or random evaluation memory (RAM). Usually, each PC is pre-installed with principle memory for processing running applications and management. No matter how great the memory limit is, it cannot always make all ready/running projects or processes necessary (Ohshima et al., 2013). Subsequently, memory management will allocate important memory space for each process, move memory between hard commuting and memory, and reduce demand and the general association of items/forms. Memory management is usually performed and supervised by the mainframe work framework. Automatic garbage collection will be done by Kscript. The function provided by Ksript is like delete, which can be garbage collected for free.
   Objectname.delete();
Objectname.free();
The heap will be used to store data at runtime
Scope
In Kscript, the following three kinds of variables shown below
1 Global scope
2 Local scopes
Local scope:
1.1 This kind of Variables will be automatically get memory upon getting entry into block or will be wipe out upon exiting from block
1.2 This scope will be default.
1.3 These variables are declared inside key function.
   Void  main()
{
int localVar;
int localVar2=2;
}
Global scope:
2.1 This type of variable will automatically acquire memory when entering the class, or will be destroyed when exiting the class.
2.2 These variables are declared outside the main function.
 int globalVar=5;
Void  main()
{
int localVar;
int localVar2=2;
}
Features of Kscript
Simplicity
Simple programming languages are generally the key to helping them become popular among programmer ("kScript 2.5 User Manual", 2016). Simplicity can also help programmers, because programmers can not only write code, but also help other programmers write code refactoring. Kscript is a simple language. It uses simple English words in the program (Ohshima et al., 2013).
Syntax of class
Class Classname {  
Code
}
Syntax of function 
Functionname(parameters)
{
Code
}
 Orthogonality
Orthogonality is an overview framework that encourages realizability and minimizes complex plans. Orthogonal...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here