This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
Natural language programming is an ontology-assisted way of programming in terms of natural language sentences, e.g. English. A structured document with content, sections and subsections for explanations of sentences forms a natural language computer program. Some methods for program synthesis are based on natural-language programming.
One application is to use natural language programming to represent the knowledge of an autonomous robot; the robots tasks can then 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 called transparent robots as their reasoning is transparent to users.
Examples of natural language programming languages include: Inform 7, a natural programming language for making interactive fiction; Shakespeare, an esoteric natural programming language in the style of the plays of William Shakespeare; and Wolfram Alpha, a computational knowledge engine, using natural-language input.[citation needed]
The smallest statement in a natural language program is a sentence. Each sentence is stated in terms of concepts from the underlying ontology, attributes in that ontology, and named objects in capital letters. In a natural language program, every sentence unambiguously compiles into a procedure call in the underlying high-level programming language such as MATLAB, Octave, SciLab, Python, etc.
Symbolic languages such as Wolfram Language are capable of interpreted processing of queries by sentences. This can allow interactive requests such as that implemented in Wolfram Alpha. However, this is not natural language programming.
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 a sliding 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 precise formal 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 a natural language format can be read by a software personal 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 a reader agent available for English interpretation of HTML-based natural language programming documents that a person can run on their personal computer.
An ontology class is a natural-language program that is not a concept in the sense as humans use concepts. Concepts in a naturalmlanguage program 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 natural language programming sentences, with associated ontology defined, can also be used as a pseudo 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 large language models to turn natural language into formal code. For example Spatial Pixel created 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 called Codex.

Vibe coding is the software development practice assisted by artificial intelligence (AI) where the software developer describes a project or task in natural languages to a large language model (LLM), which generates source code automatically. Vibe coding may involve accepting AI-generated code without thorough review of the output, instead relying on results and follow-up prompts to guide changes.
The term was coined in February 2025 by computer scientist Andrej Karpathy, a co-founder of OpenAI and former AI leader at Tesla. In March 2025, Merriam-Webster listed the term as a "slang & trending" expression. It was also named the Collins English Dictionary Word of the Year for 2025.
Advocates of vibe coding say it allows amateur programmers to produce software without the extensive training and skills required for software engineering. Critics say there is a lack of accountability, maintainability, and an increased risk of introducing security vulnerabilities in the resulting software.
The technique, enabled by large language models (LLMs) from companies like OpenAI and Anthropic, has attracted attention for potentially lowering the barrier to entry for software creation. But questions remain about whether the approach can reliably produce code suitable for real-world applications, even as tools like Cursor Composer, GitHub Copilot, and Replit Agent make the process increasingly accessible to non-programmers.
Karpathy's "vibe coding" is a recognition of how sophisticated AI systems have evolved. In describing on X (formerly Twitter), he added that LLMs, like the Cursor Composer with Sonnet, are advancing to a degree that nearly eliminates the use of traditional coding mechanisms. Describing his own experience, Karpathy explained how he converses with AI tools almost in a passive manner—merely talking to them and having the AI handle the rest. This method eliminates manually typing code as well as keeping track of all the minute information in the program.
Vibe coding (also written as vibecoding) (Vibecode/Vibecoder) is a recently-coined term for the practice of writing code, making web pages, or creating apps, by just telling an AI program what you want, and letting it create the product for you. In vibe coding the coder does not need to understand how or why the code works, and often will have to accept that a certain number of bugs and glitches will be present. The verb form of the word is vibe code.