Search code examples
literate-programming

Natural Language Programming vs. Literate Programming


I can't see a difference between natural language programming and literate programming. If anyone explains, I would be grateful.


Solution

  • Natural language programming is a system for expressing instructions to a computer in a form approximating a language humans write or speak. NLP syntax structure usually resembles human-language sentence structure, in a form that might sound stilted to a native speaker, but which tends to read almost like the real language. Many NLP implementations are focused on querying data stores rather than writing programs, but actual programming implementations also exist.

    Literate programming is a system for simultaneously writing programs and writing about programs. Unlike NLP, the code portions of a literate program are written in traditional programming languages. The classic examples, for which the name was coined, are Donald Knuth's writings on the TeX typesetting system. Published as his Computers and Typesetting series, the printed books are the result of processing his TeX literate program with a tool that extracts and formats only the descriptive portions. Similarly, the compilable source code is the result of processing the same literate program with a tool that extracts and reorganizes the code portions.