Comparative Programming Language: COCONUT for Banking Applications

Verified

Added on  2022/09/16

|12
|3489
|38
Report
AI Summary
This report presents a comprehensive analysis of the COCONUT programming language, specifically designed for the banking domain. It begins with an introduction to the need for specialized programming languages in banking, highlighting the importance of efficiency, speed, and robustness. The report then delves into the architectural design of COCONUT, focusing on its use of a compiler for faster execution and optimization. Key features such as memory management with garbage collection, scoping mechanisms (both static and dynamic), data types, syntax design, and abstraction are discussed in detail. The report also examines the language's orthogonality, efficiency, type checking methods (static typing), exception handling capabilities, and its structured programming approach. The report concludes by emphasizing COCONUT's suitability for handling critical banking tasks and its potential to enhance the performance and security of banking applications.
Document Page
Running head: COMPARATIVE PROGRAMMING LANGUAGE
COMPARATIVE PROGRAMMING LANGUAGE
Name of the Student
Name of the University
Author Note
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
1COMPARATIVE PROGRAMMING LANGUAGE
Introduction
Banking encompasses a number of areas that includes aspects of business, finance and the
relation with the customer. Programming languages are created to do things in easier ways.
There are large number of programming languages that have been designed and implemented
for a particular problem domain. The programming languages are made with a set of
compromises, designs and decisions. There are different types of programming languages
such as object oriented, functional, procedural and logical programming languages. These
programming languages have different features such as management of memory, scoping,
features, abstraction, creation of interfaces and many more
The main aim of this report is to design a language for the dominion of banking. The
programming language should have features such as the efficiency, speed and robustness.
The main aim of this language is to do the tasks of banking efficiently without any
obstruction. The language for the dominion of banking should consist of the following
features that will; help the banking domain in performing their functions. The performance
of the language should be fast. The programming language for the domain of banking should
use precision data types and structures. The design and the implementation of the
programming language should be flexible. Last but not the least, the programming language
for the domain of banking should be robust as the domain is very critical. The security of the
programming language should also be good so that no one gets to know the source code of
the programs. The name of the programming language is COCONUT.
Interpretation and compilation methods
A compiler is a program that translates computer code that is scripted in one programming
language into another that high-level code into machine code. There are various types of
compilers. Compilation is the first step of executing a program. A high-level compiler is
Document Page
2COMPARATIVE PROGRAMMING LANGUAGE
needed for the compilation of the programs for the problem domain of banking, as the
programs are critical. The programming language, which can be called as COCONUT,
should have a compiler and not an interpreter. The reason for choosing compiler over an
interpreter, as compilers are faster than interpreter is. The code that will be written in
COCONUT will be critical. The operations of the compiler are lexical analysis, analysis of
semantics, parsing, optimization of code, and generation of code. The advantage of using a
compiler in COCONUT is that the time of execution of code is less as the program code is
translated into machine code. Another advantage of compiler is that the compiler can see the
entire code and perform a lot of optimizations that make the code run faster but an interpreter
sees the code line by line and the optimizations of the code are not as robust as the compilers.
A high-level compiler can be used for executing the codes in COCONUT. High-level
compilers such as source-to-source compilers or just-in-time compilers or a byte code
compiler can be used for executing the program codes in COCONUT.
Memory Management and Scoping features
The programming language COCONUT should manage the memory itself and it does not
need the intervention of the programmer to manage the memory. The garbage collector
should be present in the programming language that makes sure that the space that is unused
gets cleaned and the memory can be freed when it is not needed. In every programming
language, the memory is the most important resource. In COCONUT, the memory is also
very important. Therefore, it is important to manage the memory without any memory
leakage. The deallocation and allocation of memory is a complex task. The programming
language COCONUT should have a garbage collector for the allocation of memory. The
COCONUT programming language should have a stack memory and a heap memory. The
heap memory is allocated during the execution of the code. The heap is a mound of memory
that is available to the programmers for the allocation and deallocation of the memory. If the
Document Page
3COMPARATIVE PROGRAMMING LANGUAGE
programmers cannot handle this memory well, leakage of memory can occur. The stack
memory will also be there in the COCONUT programming language. The stack allocation
will occurs on the blocks of memory. This memory will be allocated during the function call.
In the stack allocation and deallocation, the programmers need not to worry about anything.
The programmer should also keep the memory leakage in mind. The leakage of memory is
type of leakage of resources when a program incorrectly manages allocation of memory. The
leakage of memory reduces the performance of a computer by reducing the quantity of
memory that is available. The COCONUT programming language will not have any leakage
of memory as it will created in that way to avoid leakage of memory. The programmers
writing the codes in the COCONUT programming language should also handle it.
The programming language COCONUT should have scoping features that will bind the
variables. Scope of a programming language means that an alliance of a name to an entity
such as variables. The scope of binding is also called visibility of an entity. The programming
language should have two kinds of scope- dynamic scope and static scope. Another name for
static scoping is lexical scoping. In this scoping, a variable refers to its environment that is at
the top level. Static scoping has a benefit. It helps to make a code that is modular in nature
and the programmer can understand the scope of the program by looking at the code. For
example, in most of the programming language, C, C++ and java, the variables are lexically
scoped.
Dynamic scoping means that each of the identifiers has bindings that are in the global stack
and the identifier is searched in the recent binding. Static scoping has more benefit than
dynamic scoping. The programming language COCONUT will have both dynamic scoping
and static scoping. For example, Perl is a programming language that has both dynamic
scoping and static scoping. The COCONUT programming language will have keywords that
are lexically scoped local variable and dynamic scoped local variables.
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
4COMPARATIVE PROGRAMMING LANGUAGE
Specification and Rationale
Simplicity
The COCONUT must be easy to use, read and learn and must be simple. The programming
language will give the programmer a clear understanding of the language that will be
effortless to grasp. The simplicity of COCONUT will affect the readability of the language.
For example, the languages that are easy to maintain are also easy to read. The development
of the compiler and interpreter for the COCONUT programming language will also be easy.
The power of the COCONUT will not be sacrificed for simplicity. If there are too many
features in the programming language, then it will be hard to read. Therefore, the features of
COCONUT will be less.
Orthogonality
In geometry, Orthogonal means right angles but the term has been used for general used that
means the property of being independent. A set of features is said to be orthogonal if the
features can be used in amalgamation with the other attributes freely. The COCONUT
programming language is orthogonal that means the features of the programming language
can be used with the other features freely. It is one of the most essential features of the
COCONUT language. The more orthogonal the language the lesser are the exceptions. The
COCONUT programming language should have the features of orthogonality like
consistency and parameters that are symmetrical. The lesser exceptions in COCONUT will
help the user to write, read and easily understand the language..
Data Types
Data types are also important in COCONUT language. Without data types it will be
impossible to do the operations. For example, a numeric value and a alphanumeric value
cannot be added without the data types. There should be separate data types for numeric
Document Page
5COMPARATIVE PROGRAMMING LANGUAGE
values and alphanumeric values. There will be two types of data types in COCONUT - the
primitive types and the composite types. The primitive types will be inbuilt in COCONUT.
The user for their simplicity will create the composite data types. The various types of
primitive type of data are Integer, long, short, string, char, float and Boolean. Each of the data
types has their allocated memory like the integer data type have 4 bytes. The composite data
types are arrays, unions and many more that are created by the programmers for their
simplicity.
Syntax Design
The syntax of COCONUT must be simple for the programmer to understand. The syntax are
needed for writing the program codes in COCONUT. The syntax should contain identifiers,
special words, keywords, and operators like the natural language. The syntax should be
simple and compact for the easy use of the programmers. The identifiers will not be too
restrictive. The special words are also known as the reserved words and they will be used for
special purposes in the program codes. COCONUT will have the advantage of using
comments in the program codes. The comments can be single line comment and multiple line
comment. The syntax will also consists of variables that are divided into two types- local
variables and global variables.
Abstraction
Abstraction is the property by which only the details that are essential are displayed to the
user. This adds to the security of the code where only the important details are shown while
the other details are ignored. The COCONUT programming language will support
abstraction. The abstraction degree will affect the writability of COCONUT. The COCONUT
is an object-oriented language, so it will have a high degree of abstraction. Writing programs
in COCONUT will be easy as this is an object-oriented language. Because of this feature,
COCONUT can reuse the program codes.
Document Page
6COMPARATIVE PROGRAMMING LANGUAGE
Efficiency
COCONUT will be an efficient programming language and the codes of the language can be
efficiently translated into machine code. The codes can be efficiently executed and it will
take little space in the memory. Efficiency is an essential feature of COCONUT. An efficient
language will affect the performance of the language. A good programming language that is
supported by a language translator that is good gives consideration to the time and space
efficiency.
Type Checking
Type checking means the testing for the errors of type during the execution or the
compilation. Type checking is to make sure that the program is safe from type errors. There
are two types of errors in the COCONUT programming language- static typing and dynamic
typing. A language is dynamic type if the type of the variable is known during the run time of
the program code. A language is statically typed if the type of variable is known during the
compile time of the program code. COCONUT will use static type checking for checking the
variables. This will help the COCONUT to lessen the type errors during the compile time of
the program code.
Exception Handling
Exception is a unusual situation that is come across during the execution of a program code.
COCONUT is an orthogonal language so; there will be lesser number of exceptions. The
programming language should have exception handling blocks that will handle these
unwanted situations during the compilation of a program code. For example, some of the
programming language such as java gives exception messages such as array exception out of
bounds or array index out of bounds exception. Java also has specific reserve words or
keywords for handling such exceptions. The reserve keywords for the handling of exceptions
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
7COMPARATIVE PROGRAMMING LANGUAGE
are throw, throws, try, catch and finally. COCONUT will also have such reserve words for
handling the exceptions that will occur during the execution of a program. COCONUT will
also give exception messages when exceptions will occur during the execution.
Structured
Structured means the language should have attributes to allow the users to create programs
that are established on the structured programming. COCONUT is structured, as it will allow
the programmers to write the source code in structured form. To write the code in structured
form, the programmers need to know data structures well. It also forces the programmer to
look at the program is way that is logical. This will help the programmers to create lesser
number of errors in the program code.
Readability Writability and Reliability
Readability means the ease with which the programs or the programming language can be
understood. This is essential for the maintenance of the software. The readability of a
language must be easy for the programmers to understand. The simplicity of this language
will affect the readability of the language. It is easy to write easy to read programs in the
COCONUT. The language is simple to read and it will be advantageous for the programmers
to code in this language.
Writability means how the programming language can be used to develop programs for the
dominion of banking. COCONUT has a good writability features. It will be very simple to
read hence, it will also be simple to write programs in COCONUT programming language.
The writability of COCONUT will consist of features like simplicity, orthogonality and
abstraction. The COCONUT must be platform independent and easy to write. The
programmers can create programs that are reliable using the features of reliability and
readability.
Document Page
8COMPARATIVE PROGRAMMING LANGUAGE
The reliability of a programming language is the property by which a programming language
COCONUT can perform operations that are specific in all conditions. The reliability of a
programming language is very important to write good programs in the domain of banking.
The COCONUT is a reliable programming language, as it will not crash when the user will
put data that are abnormal. The reliability of the programming language depends on the code
that is written in COCONUT and not on the language. The reliability of a language is
application-specific.
Conclusion
Banking is a sector where numbers of operations are done such as the aspects of business,
finance and the relations with the customers. These are all the complex tasks that require
huge amounts of calculations. The report focuses on the creation of a language known as
COCONUT for the problem domain of banking. The language will be able to handle all the
complex operations that are required for the banking sector. The report has a detailed
discussion about the features of the programming language that is required for the banking
sector. The compilation and the interpretation methods those are required for execution of the
codes in COCONUT. The report also focuses on the management of memory and the scoping
features of COCONUT. The management of memory consists of the garbage collection and
the leakage of memory. The scoping features have detailed discussion about the dynamic
scoping and the lexical scoping. The report also focuses on the features of the programming
language that are required for the domain of banking. The features are simplicity,
orthogonality, abstraction, compactness, efficiency, data types and the other features that are
required for the domain of banking. The reliability, writability and the writability of the
programming language is also important for COCONUT. Last but not the least, COCONUT
will help the banking sector in all its operations.
Document Page
9COMPARATIVE PROGRAMMING LANGUAGE
Bibliography
Baumgartner, G., Läufer, K., & Russo, V. F. (2019). On the interaction of object-oriented
design patterns and programming languages. arXiv preprint arXiv:1905.13674.
Gorla, D., & Nestmann, U. (2016). Full abstraction for expressiveness: History, myths and
facts. Mathematical Structures in Computer Science, 26(4), 639-654.
Harper, R. (2016). Practical foundations for programming languages. Cambridge University
Press.
Jackson, W. (2016). Objects and Object-Oriented Programming: OOP Primer. In JSON Quick
Syntax Reference(pp. 31-50). Apress, Berkeley, CA.
Jacobs, B. (2015, July). Provably live exception handling. In Proceedings of the 17th
Workshop on Formal Techniques for Java-like Programs (p. 7). ACM.
Jones, R., Hosking, A., & Moss, E. (2016). The garbage collection handbook: the art of
automatic memory management. Chapman and Hall/CRC.
Julián-Iranzo, P., & Rubio-Manzano, C. (2017). A sound and complete semantics for a
similarity-based logic programming language. Fuzzy Sets and Systems, 317, 1-26.
Kedia, P., Costa, M., Parkinson, M., Vaswani, K., Vytiniotis, D., & Blankstein, A. (2017,
June). Simple, fast, and safe manual memory management. In ACM SIGPLAN
Notices (Vol. 52, No. 6, pp. 233-247). ACM.
Kumar, A., Irsoy, O., Ondruska, P., Iyyer, M., Bradbury, J., Gulrajani, I., ... & Socher, R.
(2016, June). Ask me anything: Dynamic memory networks for natural language
processing. In International conference on machine learning (pp. 1378-1387).
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
10COMPARATIVE PROGRAMMING LANGUAGE
Le, X. B. D., Chu, D. H., Lo, D., Le Goues, C., & Visser, W. (2017, August). S3: syntax-and
semantic-guided repair synthesis via programming by examples. In Proceedings of
the 2017 11th Joint Meeting on Foundations of Software Engineering (pp. 593-604).
ACM.
Mandrioli, D., & Pradella, M. (2015). Programming Languages shouldn't be too
Natural. ACM SIGSOFT Software Engineering Notes, 40(1), 1-4.
Mogensen, T. Æ. (2017). Introduction to compiler design. Springer.
Nita, S. L., & Mihailescu, M. (2019). Static Typing. In Haskell Quick Syntax Reference (pp.
5-12). Apress, Berkeley, CA.
Palkowski, M., & Bielecki, W. (2017). TRACO: source-to-source parallelizing
compiler. Computing and Informatics, 35(6), 1277-1306.
Polito, G., Teruel, C., Ducasse, S., & Fabresse, L. (2017). Scoped Extension Methods in
Dynamically-Typed Languages. arXiv preprint arXiv:1708.01679.
Pradel, M., Schuh, P., & Sen, K. (2015, May). TypeDevil: Dynamic type inconsistency
analysis for JavaScript. In Proceedings of the 37th International Conference on
Software Engineering-Volume 1 (pp. 314-324). IEEE Press.
Ren, B. M., & Foster, J. S. (2016). Just-in-time static type checking for dynamic
languages. ACM SIGPLAN Notices, 51(6), 462-476.
Schweikert, C. (2016). Programming Languages with Plan Knowledge Representation for
Learning. In Proceedings on the International Conference on Artificial Intelligence
(ICAI) (p. 389). The Steering Committee of The World Congress in Computer
Science, Computer Engineering and Applied Computing (WorldComp).
Sebesta, R. W. (2016). Concepts of programming languages.
Document Page
11COMPARATIVE PROGRAMMING LANGUAGE
Sexty, D., & Wetterich, C. (2018). Static memory materials. arXiv preprint
arXiv:1802.08596.
Tierney, L. (2019). A byte code compiler for R. system, 6, 0-010.
Wei, R., Schwartz, L., & Adve, V. (2017). DLVM: A modern compiler infrastructure for
deep learning systems. arXiv preprint arXiv:1711.03016.
chevron_up_icon
1 out of 12
circle_padding
hide_on_mobile
zoom_out_icon
logo.png

Your All-in-One AI-Powered Toolkit for Academic Success.

Available 24*7 on WhatsApp / Email

[object Object]