ITECH5403 – Assignment 1

School of Science, Engineering and Information Technology
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
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/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:
Mobile Applications
Mobile application development is a specific subset of standard application development which must be able
to handle a wide variety of different tasks. So a programming language suitable for this must be able to do
things like:
– Have comprehensive support for user interfaces (i.e. GUIs),
– Be able to work in an efficient, event-driven manner,
School of Science, Engineering and Information Technology
CRICOS Provider No. 00103D Page 2 of 4
– Be able to model real-world problems using custom data types (i.e. support abstraction),
– Provide the ability to send and receive data to/from servers or other devices,
– Allow for the use of rich multimedia capabilities to enable sound/video playback and allow video games
to be created (even if just via libraries),
– Be very efficient to minimise battery usage on these mobile devices,
– Etc.
It’s worth thinking about the aspects of a mobile device oriented programming language 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 mobile
applications 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 Java programming language, or the C++ programming language – 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 Science, Engineering and Information Technology
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.
School of Science, Engineering and Information Technology
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:

Leave a Reply

Your email address will not be published.