Does an application exist that can automatically write and test a software component based on a formal functional specification?

The twentieth century saw the initial birth of electronic computers. The early programming languages that were in primary use by 1975 were COBOL, FORTRAN, LISP, and C and UNIX were emerging for real time communications and control.

Shortly after this period two conceptual steps were proposed toward executable requirements, which, combined with natural language dialog, would permit the realization of computers that would execute high level instructions in a user's native tongue.

  • Glenford J. Myers' Advances in computer architecture, Wiley; 1st edition, 1978, puts forth the proposition that computers had been designed from the bottom up, creating serious obstacles in use. He redefined the common term at the time, semantic gap, to mean the gap between the needs of those that program computers and the facilities of the computer architecture. This thinking led to object oriented design and supporting languages such as C++, Java, EMMASCript, and Python. (Myers worked for IBM but was recruited by a small startup company called Intel to help them design their first 32-bit architecture, the 80386.)
  • Gene Fisher, Professor Emeritus, California Poly San Luis Obispo, proposed in 1988 what he called a, "Tool for constructing executable block diagrams based," conceptually more advanced than graphical simulators like Simulink and more advanced than IDEs like Eclipse, Idea, and Jupyter interfaces.. JModelica is probably one of the closest development applications to Fisher's vision. The term that has become popular in the literature for this concept is executable diagram.

Are there any applications in beta or in common use in some segment of the software industry where a formal requirement can be entered as input to a program writing application and tested source code is produced at the output?

Is anyone working on an application that takes this one step further to a computer that gathers requirements through natural dialog?

  • $\begingroup$ Please be more specific and provide examples, as this may make your program easier to answer. Your post is a little too short and broad as it is. $\endgroup$ – Super S Jul 31 '18 at 21:52
  • $\begingroup$ Check out Lisp Macros $\endgroup$ – G__ Aug 1 '18 at 3:01
  • $\begingroup$ Welcome to AI.SE! A fairly substantial edit has been made to your question - feel free to look over the changes and make your own revisions if the current state doesn't represent what you're asking. Narrowing down the scope from the original version is also a good idea. $\endgroup$ – Ben N Aug 2 '18 at 15:29

Yes. See "New A.I. application can write its own code"

Some excerpts:

Computer scientists have created a deep-learning, software-coding application that can help human programmers navigate the growing multitude of often-undocumented application programming interfaces, or APIs.

Designing applications that can program computers is a long-sought grail of the branch of computer science called artificial intelligence (AI). The new application, called Bayou, came out of an initiative aimed at extracting knowledge from online source code repositories like GitHub. Users can try it out at askbayou.com.

The researchers wrote a paper: Neural Sketch Learning for Conditional Program Generation


Yes, we do have Neural Program Synthesis.

Using Neural Networks to generate piece of code.

Please have a look at: Microsoft Research Project on the same


The other answers cover modern work on this, but it's not even a new topic!

Koza's work in 1992 led to whole sub-fields doing this. The techniques are widely used, robust, and well understood. They're just very computationally expensive. Enough so that most of the time you're better off just hiring a programmer to do it.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.