ITECH5403 - School of Science: Designing a New Programming Language

Verified

Added on  2022/12/30

|20
|4910
|2
Essay
AI Summary
This essay presents the design of a new programming language, ZAP PRO, specifically tailored for the banking sector. The language aims to provide a systematic platform for employees to access data faster, improving client service and document retrieval. The essay details the implementation, using JIT compilation for efficiency and speed. It discusses memory management strategies, including dynamic allocation and the use of buddy blocks for efficient memory pool management. The design incorporates dynamic scoping to align variables, ensuring clarity and avoiding ambiguity. The essay further outlines feature specifications, emphasizing simplicity and orthogonality in the design. It covers data types, including primitive, composite, and user-defined types, and details the syntax design, ensuring both legal and illegal string handling. The overall design prioritizes ease of use, efficiency, and robust data handling within the banking environment.
Document Page
Running head: DESIGNING A NEW LANGUAGE
Designing a New Language
Name of the Student
Name of the University
Author Note
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
1DESIGNING A NEW LANGUAGE
Purpose of the language
The language that is to be designed is solely for the implementation purpose of it within
the banking sectors. Nowadays, there are various programming languages available within the
market having unique features to deal with specific problems. A good programming language
has a profound effect on the businesses they are used in. There are various factors on which a
programming language is judged to be good or bad. There are languages that are loosely and
strongly typed, provide abstraction and object orientation supports, use dynamic or static scoping
rules etc. These factors have severe impacts on the usefulness of the language that involve
robustness, speed and general suitability in terms of creating programs of any particular type
(Wexelblat, 2014). The requirement of each and every project is unique and demands a perfect
design in order to meet the potential requirements. While taking in account the banking sector,
there are several aspects that are needed to be kept in mind while designing a new programming
language. These aspects include customer relations, finance and other business aspects. Most of
the banks have their own programming languages or dialect of a particular programming
language. There are a range of programing languages that people have been using for a long time
within the banking sectors. These languages include COBOL, Pascal, and PHP etc. that have
their own unique characteristics and features in terms of compilation, syntax and interpretation
methods. The new language framework that has been proposed in this paper is named ZAP PRO
(Enhanced Banking Programming Language). The key purpose for creating this new language is
to provide a systematic platform that will help the employees in accessing the data in a faster
way thus serving the clients much faster, simultaneously accessing a particular document.
However, since the framework of this programming language is completely new employees need
Document Page
2DESIGNING A NEW LANGUAGE
to be trained properly in terms of using this language. Moreover, any sudden fault within the
framework of the language will result in delay of file accessing by the employees.
Justifying interpretation and compilation methods
Implementation helps in establishing a systematic approach for the purpose of executing various
computer programs. In general, there are 2 basic approaches that are comprised within the
implementation phase of any programming language, namely interpretation and compilation.
Interpretation is a process where the input is provided to the interpreter in the form of a
programming language. On the basis of the tasks defined in that language, the interpretation
process takes place (Dissegna, Logozzo & Ranzato, 2014). On the other hand, compilation is a
process where any input is taken by the compiler in the form of any language. The compiler then
translates the complete program into a different language that can be processed by any other
interpreter or compiler. However, the program is not directly executed by the compiler (Paige &
Wood, 2014). For the purpose of executing a particular program with the help of compilation, the
program has to be translated into an input form.
The compilation method used in the framework of ZAP PRO (Enhanced Banking
Programming Language) is JIT compilation where JIT stands for Just in Time. The concept of
Document Page
3DESIGNING A NEW LANGUAGE
JIT is comparatively newer than most of the other available methods. The compilation will take
place when a user calls any particular program for the purpose of running it. Since the
compilation process takes place during the run time of the program, ZAP PRO has a high startup
load on the system. JIT has various beneficial factors in terms of speed and efficiency of the
program (Ancona et al., 2016). Some of the program data like the variable values can be easily
accessed by this compiler. This ability of the JIT method provide optimizations for the ZAP
PRO.
Memory management
The concepts of memory management are quite similar to that of resource management
but is applied to the computer memory instead. The prime purpose of this new language in terms
of memory management is to dynamically allocate the available resources as well as the memory
portions to the programs on the basis of their requests (Xu et al., 2016). The memory can be
reused later as well. Dynamic allocation of memory involves fulfilling a particular allocation
request by locating the appropriate memory that is unused. This allocation of memory takes
place from a huge amount of available free memory which is often referred to as the ‘heap’. At a
time, fixed portion of the heap memory can be allocated for meeting the allocation requests thus
leaving the rest portion for future allocations. However, there are several issues that often
complicate the implementation of this allocation. One such issue is external fragmentation that
arises from the availability of small gaps in between the memory blocks that have been allocated.
The presence of these gaps restricts the validation of allocation requests.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
4DESIGNING A NEW LANGUAGE
Inflation in
terms of individual
size can often take
place due to the
metadata of the
allocator.
ZAP PRO has several beneficial factors in terms of memory management due to the
incorporation of dynamic allocation within its framework (Chatterjee, Ba & Oki, 2017).
Dynamic allocation has an immense positive impact on the performance as a whole.
Furthermore, ZAP PRO uses buddy blocks method which helps the memory allocation to take
place in multiple memory pools unlike the other languages. Each available memory pool
represents specific memory blocks. Since, the allocation location is not known before hand,
concepts of pointer referencing are used.
Scoping features
The key purpose of scoping is to align the variables in different parts of the same
program in order to avoid ambiguity and be able to differ them from one another (Wang, 2017).
In general scoping can be classified into two basic categories, namely lexical scoping or static
scoping and dynamic scoping. The new language that has been framed for banking sector uses
the dynamic scoping method. Unlike most of the traditional programming languages, that use
static scoping features, ZAP PRO firmly uses the methods of dynamic scoping in order to refer
Document Page
5DESIGNING A NEW LANGUAGE
to a global identifier associated with the current environment. During the compilation process in
the ZAP PRO, the primary task of the compiler is to search the present block successively
associated with calling all the other functions. A pseudo code has been presented as an instance
for the ease of understanding. This code prints 20 with the help of dynamic scoping.
int a = 10;
// It has been called by h()
int f()
{
backto x;
}
// h() has its own variable
// named as a and calls f()
int h()
{
int a = 20;
backto f();
}
main()
{
cast(h()); }
The output of the following code after implementing the dynamic scoping features of ZAP PRO
is 20.
Feature Specifications
Simplicity
In the field of information technology, simplicity is one of the most basic qualities of any
programming language that is often sought by almost all the technologists as well the users. In
terms of programming, an elegant and profound solution is the prime reason for establishing
simplicity as it often demands efficiency and simplicity (Rajeswaran, 2017). Moreover, while
Document Page
6DESIGNING A NEW LANGUAGE
creating the user interface of ZAP PRO, one of the prime aspects that was taken into
consideration was simplicity. Since, ZAP PRO is a new language, a complicated interface will
make it harder for the employees to work with it in real time. Therefore, a smooth interface of
the ZAP PRO language and ease in terms of readability will allow the employees working within
a banking sector to efficiently use this application for file accessing, tallying sheets etc.
Orthogonality
Orthogonality is frequently used within the assembly instruction sets. In the field of
computer programming, orthogonality refers to all the operation changes that occur without
affecting others. Within the ZAP PRO framework orthogonality aspect has been incorporated
firmly. As a result of this incorporation, limited types of combination of a construct set can easily
be performed in order to establish a thorough and firm control along with establishing the data
structures of the language (Dougherty, 2015). It is potentially associated with the simplicity of
the programming language. With an increase in the orthogonality of a particular program, the
exceptions associated subsequently decreases. Consistency and symmetry are two of the key
parameters of orthogonality. A thorough examination of the ZAP PRO language in terms of
orthogonality can be performed. Some of the exceptions that are faced in accordance with this
perspective are as follows:
Structures (excluding arrays) might get returned back to the function.
An array that is comprised within a particular structure can be returned
The structure member can have any available data type (excluding the same kind
of structure and void).
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
7DESIGNING A NEW LANGUAGE
The element of an array can have any kind of data type (excluding void). Pass by
value approach is followed (except in the case of an array).
Although the concept of orthogonality was primarily applied in the field of programming
languages, it has eventually been recognized as an immensely useful feature in the recent times
for the purpose of designing APIs and user interfaces as well.
Data types
In the field of computer programming data type helps in defining the associated attributes
of any particular data thus clarifying the data processing ways to the interpreter as well as the
compiler on the basis of user requirements (Schwarz & Spector, 2014). The new language ZAP
PRO supports almost all the data types that are used by most of the programming languages in
the recent times. These data types include integer, Boolean and real. Expression values, such as a
function or a variable is often constrained by a data type. A proper definition regarding the set on
information that is needed to be performed on a particular data is given by the data type
(Sivaramakrishnan, Kaki & Jagannathan, 2015). There are several other operations as well, that
include understanding the data and the value storing types. ZAP PRO comprises of primitive,
composite along with abstract and utility data types.
In addition to the traditional approach to data types, ZAP PRO also allows the users to
define their own data types by combining several elements of other data types, subsequently
establishing a clear definition in terms of the new data type’s valid operations. For instance, a
data type with the name of ‘complex number’ can be easily created by a programmer within the
ZAP PRO framework (Sebesta, 2016). This newly formed data type will include the exclusive
Document Page
8DESIGNING A NEW LANGUAGE
features of both real as well as imaginary parts. A particular constraint that has been put upon the
data interpretation within a type system can also be represented by a data type.
Syntax design
Syntax of any programming language can be defined as a set of rules comprising of a clear
definition of symbol combinations. These set of rules are generally considered to be aptly
formatted and structured fragment or document within the language. Both the programming
languages as well as the markup languages are applied in this concern. Programming language is
where the document comprises of the source code and markup languages comprise of the data
representation of the document.
Document Page
9DESIGNING A NEW LANGUAGE
Defining the surface form of a particular programming knowledge is done with the help of
syntax. Language that comprises of text are completely based on character sequences. On the
other hand, programming languages having a visual approach rely on the spatial connections and
layout within the symbols (that may have a graphical or textual format). A document that is
invalid in terms of its syntax is stated to have a syntax error within it. While designing the
syntactical framework for ZAP PRO, both illegal as well as legal string examples were
experimented in order to achieve the most suitable baseline. After that a set of general rules were
formulated on the basis of the results achieved from these examples.
Support for abstraction
In the field of programming, abstraction can be defined as a process of separating the
spatial, temporal or physical attributes or details while studying about systems or objects for the
purpose of focusing attention on more important details. It has immense similarity with the
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
10DESIGNING A NEW LANGUAGE
generalization process. As ZAP PRO is an object oriented programming language, the concepts
of abstraction is thoroughly incorporated within its framework. For making a declarative
statement the keyword ‘zapstract’ is used. After the declaration of the statement has been made,
it is solely the responsibility of the programmer to make a class implementation for the purpose
of instantiation.
Expressive power of ZAP PRO
Expressive power, which is commonly referred to as the expressivity of a programming
language defines the capability of that language to provide a systematic solution to a particular
problem. ZAP PRO has an immense expressivity as it deals with a problem in the following
ways:
Taking the closest approach towards formulating the original problem.
A natural, clear, concise and intuitive way.
On the basis of other solved problems that fall under the basic problem.
Type checking
The type existence cannot be processed without the verification process regarding the
logical aspects of those types. The purpose of it is to run the program successfully. In simple
words, the type checking aspect of ZAP PRO can be defined as the process of thoroughly
verifying and incorporating the type constraints. The occurrence may take place either during
the run time (dynamically) or compilation time (statically). Type checking is completely
about properly checking the program and ensuring that it is type-safe.
Exception Handling
Document Page
11DESIGNING A NEW LANGUAGE
Exceptional handling is one of the prime features of ZAP PRO. A routine of exception
handling is followed in order to ensure that the code is able to properly deal with the
occurring exceptions. For the purpose of establishing sufficient exception handling routines
in a robust form, it is immensely necessary to frame a wide spectrum code comprising of
unexpected and invalid codes. This can be created via software, mutation testing as well as
fault injection. ZAP PRO deals with the exceptions in a dynamic fashion.
Restricted Aliasing
While using ZAP PRO, the same memory location can be easily accessed using different
names. For an instance, if a function is working with two pointers B and C, which have the
exact same value then the name B[0] can be used as an alias for C[0].
Discussion of readability, writability and reliability of the language
This unit of this essay shall be focusing the readability, writability and reliability of a new
language which is being designed in this assignment.
Readability
Readability is very much significant in both the natural languages as well as in the programming
languages which are generally deployed in the banking management systems. Choices of the
loop structure of the new programming language shall be directly having its impact on the
business procedures of banking industry (Ashcraft et al., 2019). The choice of names and diverse
categories of problems associated with the banking domain in terms of the macroeconomic risks,
regulation of the governing banking regulations, political interference and criminality are the
critical components of this new programming language which shall be very much essential to
chevron_up_icon
1 out of 20
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]