scholarly journals Design and implementation of an African native language-based programming language

Author(s):  
Ezekiel Kolawole Olatunji ◽  
John. B. Oladosu ◽  
Odetunji A. Odejobi ◽  
Stephen O. Olabiyisi

<p>Most of the existing high level programming languages havehitherto borrowed their lexical items from human languages including European and Asian languages. However, there is paucity of research information on programming languages developed with the lexicons of an African indigenous language. This research explored the design and implementation of an African indigenous language-based programming language using Yoruba as case study. Yoruba is the first language of over 30 million people in the south-west of Nigeria, Africa; and is spoken by over one hundred million people world-wide. It is hoped, as established by research studies, that making computer programming possible in one’s mother tongue will enhance computer-based problem-solving processes by indigenous learners and teachers. The alphabets and reserved words of the programming language were respectively formed from the basic Yoruba alphabets and standard Yoruba words. The lexical items and syntactic structures of the programming language were designed with appropriate regular expressions and context-free grammars, using Backus-Naur Form (BNF) notations. A prototype implementation of the programming language was carried out as a source-to-source, 5-pass compiler. QBasic within QB64 IDE was the implementation language. The results from implementation showed functional correctness and effectiveness of the developed programming language. Thus lexical items of a programming language need not be borrowed exclusively from European and Asian languages, they can and should be borrowed from most African native languages. Furthermore, the developed native language programming language can be used to introduce computer programming to indigenous pupils of primary and junior secondary schools.</p>

2019 ◽  
Vol 4 (2) ◽  
pp. 1-5
Author(s):  
Ezekiel K. Olatunji ◽  
John B. Oladosu ◽  
Odetunji A. Odejobi ◽  
Stephen O. Olabiyisi

AbstractThe development of an African native language-based programming language, using Yoruba as a case study, is envisioned. Programming languages based on the lexicons of indigenous African languages are rare to come by unlike those based on Asian and / or European languages. Availability of programming languages based on lexicons of African indigenous language would facilitate comprehension of problem-solving processes using computer by indigenous learners and teachers as confirmed by research results. In order to further assess the relevance, usefulness and needfulness of such a programming language, a preliminary needs assessment survey was carried out. The needs assessment was carried out through design of a structured questionnaire which was administered to 130 stakeholders in computer profession and computer education; including some staffers and learners of some primary, secondary and tertiary educational institutions in Oyo and Osun states of Nigeria, Africa. The responses to the questionnaire were analyzed using descriptive statistics. The analysis of the responses to the questionnaire shows that 89% of the respondents to the questionnaire expressed excitement and willingness to program or learn programming in their mother tongue-based programming language, if such a programming language is developed. This result shows the high degree of relevance, usefulness and needfulness of a native language-based programming language as well as the worthwhileness of embarking on development of such a programming language.


2021 ◽  
Author(s):  
◽  
Frank Schmager

<p>GO is a new object-oriented programming language developed at Google by Rob Pike, Ken Thompson, and others. GO has the potential to become a major programming language. GO deserves an evaluation.  Design patterns document reoccurring problems and their solutions. The problems presented are programming language independent. Their solutions, however, are dependent on features programming languages provide. In this thesis we use design patterns to evaluate GO. We discuss GO features that help or hinder implementing design patterns, and present a pattern catalogue of all 23 Gang-of-Four design patterns with GO specific solutions. Furthermore, we present GoHotDraw, a GO port of the pattern dense drawing application framework JHotDraw. We discuss design and implementation differences between the two frameworks with regards to GO.</p>


2015 ◽  
Vol 6 (2) ◽  
pp. 6
Author(s):  
Cristian González García ◽  
Jordán Pascual Espada B. ◽  
Cristina Pelayo G-Bustelo ◽  
Juan Manuel Cueva Lovelle

Hace unos meses Apple presentó un nuevo lenguaje de programación para sus plataformas: Swift. Con Swift, Apple pretende atraer a los programadores de los lenguajes de programación basados en la sintaxis de C++ y darles una mayor abstracción, que con Objective-C, para que sea más fácil programar para las plataformas de Apple. Por estas razones, se hace necesario contrastar lo pretendido por Apple y realizar un estudio del lenguaje de programación a fin de contrastar su objetivo. Para ello, se hicieron dos evaluaciones, una cualitativa y otra cuantitativa, con el propósito de verificar en qué medida Swift es un avance respecto a Objective-C.DThe Future of Apple: Swift Versus Objective-CABSTRACTFew months ago, Apple presented a new programming language: Swift. With Swift, Apple pretends to attract the programmers of the programming languages based on C++ syntax and gives them a higher abstraction than with Objective-C for being easier to programme to Apple’s platforms. For these reasons, it is necessary to contrast what is intended by Apple and do a study of the programming language to ascertain their goal. For this purpose, we did two evaluations, firstly a qualitative evaluation and after, a quantitative evaluation to verify in how much Swift is an advance with respect to Objective-C.Keywords: computer languages, computer programming, functional programming, object oriented programming, programming, software.


2017 ◽  
Vol 25 (03) ◽  
pp. 95 ◽  
Author(s):  
Eliana Pantaleão ◽  
Laurence Rodrigues Amaral ◽  
Gláucia Braga e Silva

This paper describes a methodology for teaching algorithms and programming languages teaching in high school with the aid of the Robocode plattform. The experience was developed since 2012 with the help of undergraduate students that had already concluded courses on computer programming and acted as tutors and co-advisors of the younger students. Robocode environment was used as a support tool, using a playful learning strategy, providing an early contact of the high-school students with Java programming language. The obtained results show the interest of high school students to learn computer programming. Furthermore, the Robocode plataform proved to be a playful tool to support the teaching of Java. Finally, with the realization of the Robocode Tournaments, it was possible to observe how the competitiveness influenced the motivation of students to learn and overcome challenges.


1974 ◽  
Vol 18 (1) ◽  
pp. 39-41
Author(s):  
H. Rudy Ramsey

Conventional computer programming languages have proven inadequate for use in the solution of complex resource allocation and scheduling problems. A new programming language, PLANS, is described. The emphasis in the design of PLANS is not on specialized scheduling commands, but on provision of appropriate basic data structures for scheduling problems. A method of language specification is described which provides rigorous functional definition while allowing an extremely clean interface between the language functional design process (in which human factors personnel might participate most actively) and the implementation process.


Author(s):  
Wilda Susanti, Et. al.

In this paper, we review the literature related to computer programming learning, where Algorithms and Programming are the topic domains of the Informatics and Computer science clusters. There are 4 competencies in learning outcomes, such as: 1) understand algorithmic concepts; 2) master algorithm concepts and principles; 3) master programming language concepts; and 4) master programming languages and algorithms. The main focus of this review is on beginner programming and topics related to student difficulties in learning programming. Various problems experienced by beginners were identified from the literature to some of the solutions offered by researchers.


2018 ◽  
Vol 3 (2) ◽  
Author(s):  
Ezekiel K Olatunji ◽  
John B Oladosu ◽  
Odetunji A Odejobi ◽  
Stephen O Olabiyisi

Programming languages based on the lexicons of indigenous African languages are rare to come by unlike those based on Asian and / or European languages. It is opined that an African native language-based programming language would enhance comprehension of computer-based problem solving processes by indigenous students and teachers. This study intends to attempt a design and implementation of an African native language-based programming language using Yoruba as case study. Yoruba is the first language of over 30 million people in the south-west of Nigeria, Africa; and is spoken by over one hundred million people world-wide. In preparation towards actual implementation of a prototype of the intended programming language, a mini token recognizer has been developed in QBasic. Keywords— Native language-based programming languages, Yoruba language, Digital divide, Information and communication technology, prototype implementation. 


2020 ◽  
Vol 2020 ◽  
pp. 1-15
Author(s):  
Feng Zhang ◽  
Guofan Li ◽  
Cong Liu ◽  
Qian Song

Source code similarity detection has various applications in code plagiarism detection and software intellectual property protection. In computer programming teaching, students may convert the source code written in one programming language into another language for their code assignment submission. Existing similarity measures of source code written in the same language are not applicable for the cross-language code similarity detection because of syntactic differences among different programming languages. Meanwhile, existing cross-language source similarity detection approaches are susceptible to complex code obfuscation techniques, such as replacing equivalent control structure and adding redundant statements. To solve this problem, we propose a cross-language code similarity detection (CLCSD) approach based on code flowcharts. In general, two source code fragments written in different programming languages are transformed into standardized code flowcharts (SCFC), and their similarity is obtained by measuring their corresponding SCFC. More specifically, we first introduce the standardized code flowchart (SCFC) model to be the uniform flowcharts representation of source code written in different languages. SCFC is language-independent, and therefore, it can be used as the intermediate structure for source code similarity detection. Meanwhile, transformation techniques are given to transform source code written in a specific programming language into an SCFC. Second, we propose the SCFC-SPGK algorithm based on the shortest path graph kernel to measure the similarity between two SCFCs. Thus, the similarity between two pieces of source code in different programming languages is given by the similarity between SCFCs. Experimental results show that compared with existing approaches, CLCSD has higher accuracy in cross-language source code similarity detection. Furthermore, CLCSD cannot only handle common source code obfuscation techniques used by students in computer programming teaching but also obtain nearly 90% accuracy in dealing with some complex obfuscation techniques.


2021 ◽  
Author(s):  
◽  
Frank Schmager

<p>GO is a new object-oriented programming language developed at Google by Rob Pike, Ken Thompson, and others. GO has the potential to become a major programming language. GO deserves an evaluation.  Design patterns document reoccurring problems and their solutions. The problems presented are programming language independent. Their solutions, however, are dependent on features programming languages provide. In this thesis we use design patterns to evaluate GO. We discuss GO features that help or hinder implementing design patterns, and present a pattern catalogue of all 23 Gang-of-Four design patterns with GO specific solutions. Furthermore, we present GoHotDraw, a GO port of the pattern dense drawing application framework JHotDraw. We discuss design and implementation differences between the two frameworks with regards to GO.</p>


2021 ◽  
Vol 16 (1) ◽  
pp. 21
Author(s):  
Simon Fowler ◽  
Simon Harding ◽  
Joanna Sharman ◽  
James Cheney

Curated databases have become important sources of information across several scientific disciplines, and as the result of manual work of experts, often become important reference works. Features such as provenance tracking, archiving, and data citation are widely regarded as important features for the curated databases, but implementing such features is challenging, and small database projects often lack the resources to do so. A scientific database application is not just the relational database itself, but also an ecosystem of web applications to display the data, and applications which allow data curation. Supporting advanced curation features requires changing all of these components, and there is currently no way to provide such capabilities in a reusable way. Cross-tier programming languages allow developers to write a web application in a single, uniform language. Consequently, database queries and updates can be written in the same language as the rest of the program, and it should be possible to provide curation features via program transformations. As a step towards this goal, it is important to establish that realistic curated databases can be implemented in a cross-tier programming language. In this article, we describe such a case study: reimplementing the web frontend of a realworld scientific database, the IUPHAR/BPS Guide to PHARMACOLOGY (GtoPdb), in the Links cross-tier programming language. We show how programming language features such as language-integrated query simplify the development process, and rule out common errors. Through an automated functional correctness evaluation, we show that the Links implementation correctly implements the functionality of the official version. Through a comparative performance evaluation, we show that the Links implementation performs fewer database queries, while the time neededto handle the queries is comparable to the official Java version. Furthermore, while there is some overhead to using Links because of its comparative immaturity compared to Java, the Links version is usable as a proof-of-concept case study of cross-tier programming for curated databases.


Sign in / Sign up

Export Citation Format

Share Document