Abstract

While the use of natural language for software development has been proposed since the 1960s, it was limited by the inherent ambiguity of natural languages, which people resolve using reasoning in a text or conversation. Programming languages are formal general-purpose or domain-specific alternatives based on mathematical formalism and which are at a remove from natural language. Over the years, various authors have presented studies in which they attempted to use a subset of the English language for solving particular problems. Each author approached the problem by covering particular domains, rather than focusing on describing general elements that would help other authors develop general-purpose languages, instead focusing even more on domain-specific languages. The identification of common elements in these studies reveals characteristics that enable the design and implementation of general-purpose naturalistic languages, which requires the establishment of a programming model. This article presents a conceptual model which describes the elements required for designing general-purpose programming languages and which integrates abstraction, temporal elements and indirect references into its grammar. Moreover, as its grammar resembles natural language, thus reducing the gap between problem and solution domains, a naturalistic language prototype is presented, as are three test scenarios which demonstrate its characteristics.

Highlights

  • For a number of decades, programmers have sought the means by which to employ natural languages in software development [1]; the use of these languages is limited by the inability of computers to detect and resolve ambiguities, the resolution of which requires the human cognitive process

  • Natural Language Computer (NLC) is presented in [4] as a programming language focused on the management of arrays that appear on the screen by using a subset from the English language to resolve the expressiveness problems of the C language

  • Presented in [30,31], Natural Language Command Interpreter (NLCI) is a tool focused on generating executable code from an entry in English and is based on an ontology generated from an Application Programming Interface (API)

Read more

Summary

A Model for Naturalistic Programming with Implementation

Featured Application: A general-purpose naturalistic language can be used to develop software systems using a syntax closer to natural languages, but formal enough to avoid ambiguity. This is useful for tasks such as requirement transformation, maintenance and software evolution

Introduction
Background
Related Work
Conceptual Model
Circumstance
Sentence
Indirect Reference
Explicit Typing
Language
Abstractions
Adjective
Instance Creation
Noun Phrases in Sentences
Local Identifiers
Circumstances Applied to Instances
Circumstances Applied to Attributes
Naturalistic Control Structures
Naturalistic Iterator
Naturalistic Conditional
Compiler
Scala Generation
AspectJ Generation
Test Scenarios
Case 1
Case 2
Case 3
SN Evaluation
Programming Example
Questionnaire
Findings
Conclusions and Future Work
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call