This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
Natural language programming (NLP) is anontology-assisted way ofprogramming in terms ofnatural language sentences, e.g.English.[1] A structured document with Content, sections and subsections for explanations of sentences forms a NLP document, which is actually acomputer program. Natural language programming is not to be mixed up with natural language interfacing or voice control where a program is first written and then communicated with through natural language using an interface added on. In NLP the functionality of a program is organised only for the definition of the meaning of sentences. For instance, NLP can be used to represent all the knowledge of an autonomous robot. Having done so, its tasks can be scripted by its users so that the robot can execute them autonomously while keeping to prescribed rules of behaviour as determined by the robot's user. Such robots are calledtransparent robots[2] as their reasoning is transparent to users and this develops trust in robots. Natural language use andnatural language user interfaces includeInform 7, a natural programming language for making interactive fiction,Shakespeare, anesoteric natural programming language in the style of the plays ofWilliam Shakespeare, andWolfram Alpha, a computational knowledge engine, using natural-language input.[citation needed] Some methods forprogram synthesis are based on natural-language programming.[3]
The smallest unit of statement in NLP is a sentence. Each sentence is stated in terms of concepts from the underlying ontology, attributes in that ontology and named objects incapital letters. In an NLP text every sentence unambiguouslycompiles into aprocedure call in the underlyinghigh-level programming language such asMATLAB,Octave,SciLab,Python, etc.
Symbolic languages such asWolfram Language are capable ofinterpreted processing of queries by sentences. This can allow interactive requests such as that implemented inWolfram Alpha.[4][5] The difference between these and NLP is that the latter builds up a single program or a library of routines that are programmed through natural language sentences using an ontology that defines the available data structures in a high level programming language.
An example text from an English language natural language program is as follows:
If U_ is 'smc01-control', then do the following. Define surface weights Alpha as "[0.5, 0.5]". Initialise matrix Phi as a 'unit matrix'. Define J as the 'inertia matrix' of Spc01. Compute matrix J2 as the inverse of J. Compute position velocity error Ve and angular velocity error Oe from dynamical state X, guidance reference Xnow. Define the joint sliding surface G2 from the position velocity error Ve and angular velocity error Oe using the surface weights Alpha. Compute the smoothed sign function SG2 from the joint sliding surface G2 with sign threshold 0.01. Compute special dynamical force F from dynamical state X and surface weights Alpha. Compute control torque T and control force U from matrix J2, surface weights Alpha, special dynamical force F, smoothed sign function SG2. Finish conditional actions.
that defines a feedback control scheme using asliding mode control method.
Natural-language programming is a top-down method of writing software. Its stages are as follows:
A natural-language program is a preciseformal description of some procedure that its author created. It is human readable and it can also be read by a suitable software agent. For example, a web page in an NLP format can be read by a softwarepersonal assistant agent to a person and she or he can ask the agent to execute some sentences, i.e. carry out some task or answer a question. There is areader agent available for English interpretation of HTML based NLP documents that a person can run on herpersonal computer .
An ontology class is a natural-language program that is not aconcept in the sense as humans use concepts. Concepts in an NLP are examples (samples) of generic human concepts. Each sentence in a natural-language program is either (1) stating a relationship in a world model or (2) carries out an action in the environment or (3) carries out a computational procedure or (4) invokes an answering mechanism in response to a question.
A set of NLP sentences, with associated ontology defined, can also be used as apseudo code that does not provide the details in any underlying high level programming language. In such an application the sentences used become high level abstractions (conceptualisations) of computing procedures that are computer language and machine independent.
Researchers have started to experiment with natural language programming environments that use plain language prompts and then use AI (specifically large language models) to turn natural language into formal code. For example Spatial Pixelcreated a natural language programming environment to turn natural language into P5.js code through OpenAI's API. In 2021 OpenAI developed a natural language programming environment for their programming large language model calledCodex.