Language design essay
Executive summary
With the growth of Information Technology, all the business domains mainly come under the concept of a digital platform. The digital platform can be stated as the software or hardware of any website which mainly helps in enhancing the interaction of its users. It can make scalable processes easily. The massive business digitization logic has become the reality for various programming languages. Various programming languages mainly exists due to its features and different operational domain. The purpose of the current task is to identify the various features needed in the Banking sector. Also, the task proposed target language for the banking industry which help in eradicating the usage of various programming languages in the design of banking software. In the current essay, a technical description based on targeted programming language has been provided. Also, the task is followed by the designing of target language based on code maintenance, security aspects, performance, robustness and support of data structure.
Contents
2 Basic programming architecture 5
3.8 Aliasing in target programming language 16
4 Readability, Writability and reliability 17
1 Introduction
The banking sector is termed to be the backbone of the financial system. The commercial banks play a significant role in the enhancement of developed and under-developed economies. The banking services help enterprises in adopting the digital platform with the purpose to support all the customers in a better and efficient manner. The customers of the banking sector can avail all the digital transaction services due to the involvement of digital bank management system. The current system helps in eradicating the legacy of paper-based system process by the enhanced secure application. All the software-based applications were mainly designed using a programming language which mainly defines the logic of business processing to the computer field. The environment of the undertaken sector is considered to be heterogeneous in which competitors have different objectives and domain. The various competitors in the banking sector include Microfinance bank, International public bank and State-controlled bank. All the stated service providers help in providing various services which mainly include international banking facility, core facilities of banking and transaction support. It may become complex to select one language due to its heterogeneous domain. As per the previous studies, it has been indicated that banking field has grown efficiently in the digital platform using various language which mainly includes C, C#, Python, COBOL, and SAP (ERP tool) and various web technologies languages (HTML, JavaScript, and PHP). All the stated languages have numerous pons and cons. For instance, COBOL is mainly used to maintain mainframe systems and also help in the usage of banking logic, the majorly used language for machine-level designing include C++ and C# and Python is used for various scripting purpose and SAP is used for designing ERP system. Among all the languages that have discussed, Java is termed to be one of the most significant languages which are used in different sets of application designing. It is so because of the flexible nature of the target programming language. It has been indicated that Java plays a vital role in formulating various activities concerned with the banking industry. Due to this reason, the objective of the current task is to mainly focus on the various technical features of Java. The various frameworks of Java include jQuery, Backbone.js and Angular JS. The stated frameworks help in changing the complete framework for the development of the target application. In the domain of the design of banking software, language is not considered to be enough for every aspect. Due to this reason, it is essential to make usage of Java programming language. It would be considered as a great approach if we would design such a language for the banking industry. The current language would help in covering all the requirements of banking software. The technical description would help in providing various features for developing a language which will help in minimizing the involvement of various language in the banking industry. The report mainly covers data-types, code maintenance, robustness, design flexibility, and security features. The various aspects covered in the current task is to describe the architecture of Java along with its specification.
The orientation of the complete document includes- Section 2 of the task provides the architecture for target futuristic programming language for the banking industry. Section 3 provides the specifications for the target language. Section 4 provides all language features which mainly includes readability, reliability, and writability. At last, the task also provides the concluding remarks in the last part of the report.
2 Basic programming architecture
It is significant to ensure that target language should also work particularly in the banking sector. Also, the targeted language should have the feature of platform independency. It is so because they can work on the heterogeneous platform. Besides, it is also essential that the target language should have an uncomplicated coding structure to develop the language in an easy manner. The various features of the current language include memory management, efficient volume handling, exception handling and computation accuracy (Hiscott, 2019). The various existing languages such as Java, Matlab, and Python can meet all the demands (Goldman, 2004). Due to this reason, it is significant to involve a new language in designing banking software. The banking software would cover all the basic requirements of developing baking software.
Justification of stated requirements
- High volume support: The various activities of the banking industry mainly regularly work with large data amount. It is so because the targeted language should have the capability to handle large data amount.
- Efficient memory management: It will help in transferring the complete memory allocation and deletion burden from programmer to language.
- Inbuilt security features: The language must have some inbuilt security features so that it may help in supporting all the banking transactions in a secured manner.
- Computational accuracy: In the banking sector, the target language would be used. Thus, it is significant to have an increased level of computational accuracy.
Compiler and Interpreter
Compiler and Interpreter are considered to be core aspects of programming language. The objective of compiler and interpreter is to change high level to low-level language. The stated aspects have their strengths as well as weaknesses. For instance, the interpreter can generate the executable code for the programming language platform. The current approach would help in minimizing the weakness of first with the strength of others. In targeted language, usage of compiler for starting phase of high- level language processing will be used. The current stated processes would help in generating the intermediate code. Also, the processes will help in ensuring the aspect that it would remove all compile-time error from programming code.
Another phase mainly covers interpreter would come into the picture. It will help in interpreting the code generated by the compiler. Also, interpretation is considered to be a slow process and all such processes would be optimized by involving cache management processes. Current cache module would help in storing all the converted text into the cache. In case, source code arises then there are high chances that the runtime can make usage of targeted code in the cache. Thus, the current technique would help in enhancing performance during loop body execution.
2.1 JDK and JRE
The most significant components of the Java programming language include the Java development kit and the Java runtime environment. Java development kit help in providing Java compiler and various compilers which include RMI compiler and other libraries such as collection, swing, and AWT. The purpose of the java development kit is to compile source code of java programming language to bytecode. The bytecode is considered to be the executable code for the Java runtime environment. During the time of compilation, JAVAC help in parsing the complete code and generate bytecode that has been targeted. In case of some syntactical or symmetrical errors, the compiler helps in listing all the errors altogether. Also, Java compiler has the capability to compile the Java code along with various native languages such as C and C++. The current version of JDK is JDK SE 12 and it mainly comes with the Oracle copyright. Whereas, Java runtime environment helps in running the precompiled code of Java on the JRE computing platform. The various components of Java run time environment include Classloader, JRE, JIT, and bytecode verification module.
The summary of both processes of compilation and execution has been stated as below:
- Java programming language uses compiler as well as interpreter together.
- The generation of bytecode is mainly generated using the processes of compilation.
- The execution of bytecode is mainly done using the processes of interpretation.
- The execution of different optimization processes is done by Just in Time compiler (Humayun, 2015).
2.2 Memory management
It is considered to be an important aspect of programming language. The inefficient memory may result in causing various runtime errors while executing the program. The targeted programming language will be used to perform the management of memory internally. It is the responsibility of the user to allocate all the memory as per the requirements. The current aspect would help in minimizing the burden of any programmer. In the target programming language, there are two different types of memories which are available to store the current variable. The memory segments can be categorized into two parts which include stack as well as heap space. The purpose of stack space is to store all the variables for some specific functions. The various local variables include different primitive types such as int, double, or float variables. In this, the scope of a variable is within a block and also, the life type would be considered to be similar to the scope of the variable.
The object-oriented programming language such as C and C++ do not support the creation of an object in the stack. However, the current target language will also be not responsible to support such aspects. The targeted language would be highly beneficial for the development of banking software. Also, every object would be created with the help of object generation. The object that has been generated would occupy sufficient in heap memory. After the creation of the object, heap space would not be available to the programmer. However, dot ‘.’ The operator can be used to provide class methods and other privileged fields.
Example of Memory allocation
It has been indicated that the programmer does not have access to heap memory and due to this reason, it is not possible to remove or delete any object explicitly into Java programming language. Also, the targeted language would have a Garbage collector concept like Java. The objective of the garbage collector is to keep track of all the references that exist for different objects in heap. In case, the count is zero for the object then the object is eligible for garbage collection. For the next garbage collector execution, the object deletes from heap memory.
The memory management summary has been stated below:
- Heap and stack memory is available for data of users.
- The stack is for local variables which include primitive data types (Costanza, Herzeel & Verachtert, 2019).
- The scope of the local variable is within block when it is declared.
- Heap memory help in storing the object which is created with the help of a new operator.
- Anyone can access the heap memory and also, the visibility is mainly dependent on access specifier.
- In the targeted language, there is no detractor. It is the responsibility of the Garbage collector to delete all the unimportant objects.
3 Language specification
Most of the Object-Oriented programming features are followed by target programming language. Due to the support of object-oriented programming language, it is easier to model the scenario based on real-world in a target programming language. The real entities can be easily modeled using various features of an object-oriented programming language using classes and also model their relationship with the help of inheritance. Also, it is possible to create various contracts for special data types with the help of interfaces. However, without the stated features, it is highly complex to model such a complicated system. For instance, banking only makes usage of a procedural approach. The following aspects highlight the target programming language OOP features.
Encapsulation: The objective of encapsulation is to wrap all the data as well as methods in a single unit. In the target programming language, encapsulation is possible using class. Using the stated feature, various new types can be created for modeling real-world entities. To exemplify, In case, the user wanted to make a saving account model, we need a class which would help in encapsulating all its attributes which mainly includes the name of the owner, account number, available balance and various other methods such as deposit or class withdrawal.
Data abstraction: The purpose of data abstraction is to hide the complex internal implementation. Abstraction help in building the component in most efficient and increment way. In the target programming language, abstraction is mainly achieved with the help of access specifiers. The current aspect would help in using a class by only understanding the public as well as protected methods behavior.
Inheritance: Inheritance is considered to be the most efficient technique of reusing the code. In this, the behavior of one class is adopted by another class. Using this, the relationship between specialization and generalization can be modeled among types. Also, in the target programming language, inheritance can be made possible with the help of two keywords which includes extends and implements.
Polymorphism: Polymorphism help in providing a different context for the same variable name in different cases. The concept of polymorphism is mainly used when different data types work collaboratively. For instance, in case, there are two different accounts, saving as well as current account and have some of the common functionalities such as withdrawing the money. In this, implementation would be different because the over-draft would not be possible in saving account but possible in the current account. In the target programming language, polymorphism is possible with the help of two methods which includes overriding and overloading (Alagić & Royer, 2007).
Message passing: Message passing can be stated as the communication technique among types. In a target programming language, message passing could be possible using method invocation, throwing an exception, parameter passing and returning the value from a function.
4 Simplicity
Language must make usage of a simpler coding structure. The design of any language would be considered to be simple enough because of the usage of different functions of object-oriented programming language. The language must provide a library to design the interface with the help of various features of drag and drop. As per the scenario, the designing of the secure and efficient graphic user interface has become an integral part of the development. In this, various languages for GUI and back end design would be used as per the scenario. It also introduces the interface overheads in the complete system. In case, if the targeted language is also controlled front and back end then it will minimize the chance of overheads and help in making the design simpler.
4.1 Code orthogonality
Orthogonality help in describing the system ability to modify one particular segment without affecting any other process of the system. The feature of code orthogonality is also termed as modularity parameter. It has been stated that the target programming language is considered to be orthogonal as it helps in reducing coupling among different modules. The current aspect will be made possible using abstraction and encapsulation. In the design of any system, one class will be mainly used by another class with the help of public and protected methods. There is a possibility to alter the complete function implementation without affecting any of the signatures. In this scenario, it is not important to modify any class which makes usage of modified class. Due to the stated features, it is considered to be an easy aspect to provide a necessary update to the system of a target programming language without utilizing any downtime. Also, the orthogonality is highly visible when the class object is manipulated based on the contract stated by an interface.
The current feature is considered to be highly vital particularly for the banking sector. It is because of the up-gradation of various processes which mainly happen in the current domain. The code orthogonality will mainly help in adopting all the changes without modifying the complete system.
4.2 Data types
In a target programming language, the datatypes will be categorized into two parts which include primitive as well as non-primitive. The primitive data types will be considered to be basic data types as they are not at all dependent on any other data type. The various list of primitive data types along with their size that will be incorporated in the target language are stated as below:
On the other hand, class-based representation of data type is known as non-primitive data types. For instance, String is termed to be a major component of Java.lang package. Also, all the different non-primitive data types will be mainly obtained from object class placed in Java.lang package. Whenever the programmer defines the class then the name is considered to be a non-primitive data type. For instance, Bank account will be considered as a non-primitive data type and it is the responsibility to provide a class definition by the programmer. Also, it has been stated that each non-primitive data type will have specific fields as well as methods.
4.3 Syntax design
In a target programming language, it is necessary to adopt various syntaxes which will make usage of natural language style. It would help the new programmer in understanding the complete language in a quick manner. Also, the block line structure is mainly intended for the language. The starting and end of the block will be mainly marked with brackets ({}). Also, the target programming language will be considered to be a case-sensitive similar to C and C++. The switch case structure, conditional branching, and loop will be considered to be similar as C language. Also, it follows the class structure of the C++ programming language. The coding structure of the target programming language has been highlighted in below part:
Coding convention
- It is necessary that in a target programming language, the name begins with a small alphabet.
- Also, the various attributes and methods begin with a small alphabet.
- Also, multiword names are written camel case.
4.4 Abstraction support
The efficient usage of the object-oriented property enables target programming language to support abstraction. The abstraction property has already been discussed in the starting of this task.
4.5 Expressivity
Expressivity can be stated as the lucidness of the code for the compiler and the human mind. Increased expressivity for individuals would be intended from targeted language. It would help in ensuring that the programmer would adopt a new language. It is significant to incise the following steps to enhance expressivity.
- Usage of various English words such as keywords as well as library name.
- Adapting syntax from popular programming language.
- Usage of blocking structure for targeted language.
Type checking
Target programming language should be a strictly typed language. It should be necessary to specify Java variable type for declaration. After declaration, it will be the duty of compiler to check its safety. The complete process will help in assuring that the value content present in the variable can never be altered. In a target programming language, a generalized type will be used to hold the reference of a specific type. However, conversion for this will not possible at all. For instance, the object reference type can hold String but the reverse is impossible.
4.6 Exception handling
Most of the exception handling mechanism will mainly be supported by the target programming language. The current facility will help in shifting the complete exceptional condition responsibility of the programmer to the language facility. The target programming language programmers will do not make usage of exception handling to identify the unexpected condition. Also, in a target programming language, the various keywords linked with exception handling includes trying, finally, throw, throws and catch. The brief overview of all the stated keywords are highlighted as below:
Example:
4.7 Aliasing in a target programming language
In the banking industry, it is necessary to have such a language with efficient and secure features. It is significant to involve aliasing whenever there is a requirement of two different names in one entity.
In a target programming language, aliasing is implemented in a completely different manner. Practically, aliasing in the target programming language is not possible. In case of the primitive datatype, there is no reference so whenever any primitive data type will be assigned to another, it copies the first value from another.
Whenever the programmer passes the reference of any object, it simply means that the alias has been created. In technical terms, it is not the alias. In actual terms, it is the reference variable which stores the actual hash object in the memory (Conrad & French, 2004). They hold similar reference while assigning the reference to another. Thus, dot ‘.’ The operator is used to point towards the same object. During aliasing, the current language will not help in creating separate objects. However, to implement different objects along with aliasing, it is the responsibility of the programmer to define various methods.
5 Readability, Writability, and reliability
The objective of the current chapter is to mainly deal with all the three parameters which do not depend on the execution of program but plays an important role in sustainability. Efficient attribution enables the programming language to survive for a longer period.
Readability: The stated parameter is highly dependent on the experience of the reader on the same programming language. During the period of development, C and other derived languages were very popular. It has been indicated that the various features of target programming language are derived from C and C++. Thus, due to this reason, it is easy for a programmer to understand the syntax of the target programming language in an easy manner. As stated above, the switch case structure, conditional branching, and loop are considered to be similar to C and C++. Also, the names of all the stated blocks are considered to be self-explanatory. Thus, it is easy for various new users to understand the target programming language in an easy manner. Apart from the various naming conventions, a target programming language will also introduce Camel case eliminated the usage of ‘_’. Also, the usage of capital words at the beginning of the data type will help in providing a unique identity. However, there may various syntax which may confuse the user which mainly includes a declaration of an array using box operator ‘[]’, equality checking ‘= =’ and assignment usage ‘=’.
Thus, it can be concluded that the readability of the target programming language is considered to be highly moderate. The individuals knowing C and C++ could easily understand the target programming language. Also, it may be difficult for people who do not have any knowledge regarding the concepts of C and C++.
Writability: To learn a target programming language, it is significant to have adequate time and proper experience. In the target programming structure, every block can share analogous arrangement which thus, enable the programmer to get more familiar with the complete blocking structure. Also, there are various short-hand notations which enable to write all the instructions with the help of limited words. For instance, usage of += and *= to perform all the operations as well as assignments simultaneously, usage of multi assignment to assign the similar value on different variables (a=b=c) and defining different variables in the inline function (int a,b,c). Along with this, the target programming language also provides the facility to declare the variable anywhere in the body of the program. The easy way of writing programs will indicate that the writability of the target programming language is very high. However, it is essential to make usage of effective shorthand notation carefully to minimize the chance of complications. Also, it has been indicated that the poor readability minimizes the chance of code maintainability.
Reliability: Target programming language will be considered to be one of the most reliable programming languages. Due to the stated reason, various financial software is based on the target programming language. The current section provides various reasons for the reliability of the Java programming language. The list of various reasons are stated as below:
- Single point development: The development of the target programming language is mainly controlled by Oracle.
- Existence of class validator in the targeted runtime environment (JRE) architecture: It helps in validating the integrity of loaded class in JRE.
- Strong type checking: It is also considered to be one of the most significant reasons behind the reliability of various target programming language programs.
- Closed memory management: It has been indicated that the target programming language runtime environment has closed memory management. Due to this reason, the programmer does not have much control over memory management.
- Virtual execution: The code in the target programming language is mainly executed in the target language runtime environment. Thus, due to this reason, interference with the complete Host process is negligible.
6 Conclusion
Target programming language will help in providing a secure platform in the banking industry. The various features of the target programming language would help in enhancing reputation and market share. The current stated language will also be used in various fields, especially in the banking sector. The report pointed all the main features of target programming language along with the various reasons for success in the banking sector. The report also highlighted various loopholes in the target programming language. The report will provide help to any beginner to learn all the key concepts concerned with a target programming language and also, help them to make usage of these concepts to build any useful project.
7 References
Alagić, S., & Royer, M. (2007). Genericity in Java: persistent and database systems implications. The VLDB Journal, 17(4), 847-878. doi: 10.1007/s00778-006-0042-x
Conrad, M., & French, T. (2004). Exploring the synergies between the object-oriented paradigm and mathematics: a Java led approach. International Journal Of Mathematical Education In Science And Technology, 35(5), 733-742. doi: 10.1080/0020739042000232547
Costanza, P., Herzeel, C., & Verachtert, W. (2019). A comparison of three programming languages for a full-fledged next-generation sequencing tool. BMC Bioinformatics, 20(1). doi: 10.1186/s12859-019-2903-5
Goldman, K. (2004). An interactive environment for beginning Java programmers. Science Of Computer Programming, 53(1), 3-24. doi: 10.1016/j.scico.2004.02.002
Goldman, K. (2004). An interactive environment for beginning Java programmers. Science Of Computer Programming, 53(1), 3-24. doi: 10.1016/j.scico.2004.02.002
Hiscott, R. (2019). 10 Programming Languages You Should Learn Right Now. Retrieved 29 August 2019, from https://mashable.com/2014/01/21/learn-programming-languages/
Humayun, M. (2015). Automatic Construction of Java Programs from Functional Program Specifications. International Journal Of Advanced Computer Science And Applications, 6(4). doi: 10.14569/ijacsa.2015.060409