International Journal for Scientific Research & Development| Vol. 6, Issue 11, 2019 | ISSN (Online): 2321-0613
Total Page:16
File Type:pdf, Size:1020Kb
IJSRD - International Journal for Scientific Research & Development| Vol. 6, Issue 11, 2019 | ISSN (online): 2321-0613 Extensible & Executable Lexicon Meta Model for Non-English-Like Programming Languages Prof. Osée Muhindo MASIVI Associate Professor Department of Computer and Management Information System School of Business, Rusangu University, Zambia Abstract— Modern computer programming languages are This paper advocates that real user friendly supposed to be user friendly for every common man including languages should allow programmers whose native languages non-English speakers. Unfortunately, this goal has not been is not in English to code in their local languages. It proposes reached because more than 80% of programming languages an Extensible and Executable Metamodel called XMLPro for are built on English keywords and therefore, are only friendly non-English-like programming language. The main objective to English speakers. Hence, programming quality as well as behind this metamodel is to easily generate any local- productivity are compromised for non-English native language-like programming language lexicon. Furthermore, programmers. To address this problem, this paper proposes the metamodel permits Extensibility: new concepts may be an extensible Meta model for programming languages added that enable new functionality patterns in the language (XMLPro) using local language lexicons and syntaxes. It is or code to be expressed more succinctly, while unused an executable Meta model proposing a real environment for elements of the language can eventually be driven out. The setting up programming languages using any local languages. generated programming language focuses on very basic XML Pro allows its users to create a personalized lexicon and components of programming language such as input and design a syntax aligned to their local languages grammar. On output handling, operation on variables, logical conditions the long run, XML Pro would increase the productivity, and iterations. The Graphic User Interface (GUI) for desktop quality, and time-to-market in programming language and web application development is out of our development. However, some improvements are needed in implementation in this research. terms of complex grammar generation including object oriented features and windows user interface components. II. RELATED WORKS Key words: Meta Model, Non-English-Like, Programming Metamodels are not a recent development, but rather a new Language, Lexicon terminology and a different focus. In this research, a metamodel is understood as a model of a programming I. INTRODUCTION language which describes a programming language at a Programming language takes an important role in computer higher level of abstraction and allows the same model to be application development [1] as well as in programming used in generating different programming languages [7]. learning [2] [3]. Therefore, programming languages are Although extensive research has been carried out on evolving from heavy machine level programming languages programming languages metamodels, two major to user friendly programming languages. However, the so characteristics of a metamodel have not been fully addressed: called user friendly programming language are built on Firstly, previous metamodels have not entirely captured the English keywords and therefore, are only friendly to English essential features and properties of the new programming speakers. As of now, English language knowledge is language design and code generation in terms of concrete becoming a pre-requisite for computer programming [4] due syntax, abstract syntax and semantics. Secondly, previous to the overwhelming trend in programming languages to use metamodel architectures don’t allow metamodels to be the English language keywords and code libraries [5]. described by a single metamodel: the meta-metamodel [1] Consequently, when software development involves [8]. non-English developers, the team faces two language In fact, many models and metamodels have been barriers: communication language between members and designed for code generation for almost all programming code language between members and computers [6] [2]. languages [7] [9]. A number of them have translated English Then, programming quality as well as its productivity are keywords to local languages such in Baik [6], in Tamil [10], compromised because programmers not only focus on [11] [12], [13] in Russian [14], in Bengali [15], in Korean program algorithms, but they also spend time to understand [16] [17] in common and practical English [18], in spoken the English-based programming language keywords and English [19], Arabic version of SQL [20] and many other syntaxes. Yet, computing in general and programming in languages [5]. This step though helpful, can only solve half particular should not be the luxury of a privileged group of of the problem. Since every local language can be unique in people who know English. Therefore, there is a great need of terms of lexicon and syntax, a metamodel for local languages non-English-like programming language for non-English lexicon and syntax design is still needed. speaking programmers. Common man and pupils should be Designing solely one local programming language enabled to program a computer using their mother tongue and does not solve the problem addressed in this paper since other regional languages as well. Since many of these regional local language speakers will face the same challenges. Hence languages are well-structured and spoken by millions of the need of an Extensible Metamodel. The benefit of such a people, they can be used as programming language and as metamodel is its ability to describe a number of local channel of communication among developers. languages in a unified way so that they can be uniformly All rights reserved by www.ijsrd.com 858 Extensible & Executable Lexicon Meta Model for Non-English-Like Programming Languages (IJSRD/Vol. 6/Issue 10/2018/216) managed and manipulated. This solves the problem of numbers or strings, or values stored in variable language diversity by allowing mappings constructions identifiers. between local languages and existing languages. 4) XMLPro numbers: Numbers are Words recognized as Furthermore, the extensible metamodel will able to define numbers (integer or decimal). semantically rich language abstracts. Many different 5) XMLPro String: String is a Word recognized as string abstractions could be defined and combined to create new (sequence of characters). languages that are specifically tailored for a particular 6) XMLPro Operators: Operators are Words recognized as application domain [1]. operators symbols (mathematical, logic, comparison, etc.). Each operator symbol must have a key name and a III. METHODOLOGY correspondent program value. The target of this paper is a lexicon and syntax for an Extensible Metamodel suitable for Non-English Programming Languages (XMLPro). To come up with XMLPro, syntactic approach coupled to scenario based methodology [21] with textual analysis (noun-verb analysis) technique adapted from Abbott (1993), Chen(1983) and Graham (1995) have been used. An emphasis has been put on two key programming language features, abstract syntax and concrete syntax [1]. Since the task of creating a metamodel for a language is not a trivial, this paper focuses on the following basic steps enabling metamodel quality, test, simulation and experimentation among the five proposed by [1] : Abstract Syntax definition: describes the vocabulary of concepts provided by the language and how they relate Fig. 1: XMLPro Abstract Syntax to create models. 7) XMLPro Keywords: Keywords are Words used as fixed Well-Formedness Rules and Meta-Operations definition: parts of the language with a specific meaning (print, describes well-formedness rules used to validate the input, variable declaration, if test, iteration, etc.). model correctness. 8) XMLPro Delimiters (separators): Delimiters are special Concrete Syntax definition: describes the concrete Words used to mark the beginning or end of some syntax in terms of grammar rules and validated with constructs. informal examples with some considerations of 9) XMLPro Expressions: XMLPro expression is program extensibility architecture. phrase made of vocabulary Words to produce values. Mappings to other Languages construction: makes the 10) XMLPro Statements: XMLPro statement is an model executable, enabling users to evaluate and execute instruction, a smallest standalone element of program the model. submitted to the computer. 11) XMLPro Subprogram: XMLPro program is a structure IV. PROPOSED METAMODEL containing a set of XMLPro statements for a specific A. XMLPro Abstract Syntax task. This include procedures, functions and modules. In this section we describe the XMLPro abstract syntax B. XMLPro Well-formedness Rules model: the concepts in the all non-English-languages, their A number of constraints apply to local programming relationships to each other. The XMLPro is built on six major language concepts generated by XMLPro. XMLPro itself has programming language concepts as suggested by Albacea some meta-constraints applicable to those constraints. These (2003): character set, numbers, strings, identifiers, reserved constraints and rule are the rules which determine whether a words (operators, keywords and delimiters), expressions and model (local programming language) and the program written statement. Three groups of elements are structured into three in that language