Literate programming

Il Literate programming è un paradigma di programmazione introdotto da Donald Knuth in cui un programma per computer viene fornito come una spiegazione della sua logica in un linguaggio naturale, come l'inglese, intervallata da frammenti di macro e codice sorgente tradizionale, da cui può essere generato codice sorgente compilabile.[1]

Il paradigma del literate programming, come concepito da Knuth, rappresenta un allontanamento dalla scrittura di programmi per computer nel modo e nell'ordine imposti dal computer, e consente invece ai programmatori di sviluppare programmi nell'ordine richiesto dalla logica e dal flusso dei loro pensieri.[2] I literate programs sono scritti come un'esposizione ininterrotta della logica in un linguaggio umano ordinario, proprio come il testo di un saggio, in cui sono incluse le macro per nascondere le astrazioni e il codice sorgente tradizionale.

Gli strumenti per il literate programming (LP) vengono utilizzati per ottenere due rappresentazioni da un file sorgente literate: uno adatto per ulteriori compilazioni o esecuzioni da un computer, il codice "aggrovigliato" o "tangled" e un altro per la visualizzazione come documentazione formattata, che si dice sia "intessuta" o "woven".[3] Mentre la prima generazione di strumenti di literate programming era specifica per un certo linguaggio di programmazione, i successivi sono indipendenti ed esistono al di sopra di questi.

  1. ^ Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore TCJ_LP
  2. ^ Knuth

    «I had the feeling that top-down and bottom-up were opposing methodologies: one more suitable for program exposition and the other more suitable for program creation. But after gaining experience with WEB, I have come to realize that there is no need to choose once and for all between top-down and bottom-up, because a program is best thought of as a web instead of a tree. A hierarchical structure is present, but the most important thing about a program is its structural relationships. A complex piece of software consists of simple parts and simple relations between those parts; the programmer's task is to state those parts and those relationships, in whatever order is best for human comprehension not in some rigidly determined order like top-down or bottom-up»

  3. ^ Se si ricorda ch la prima versione dello strumento era chiamata WEB, l'interessante riferimento letterario nascosto da Knuth in questi nomi diventa ovvio:

    «Oh, what a tangled web we weave when first we practise to deceive»

    La citazione reale apparve come un'epigrafe all'interno di un articolo pubblicato nel maggio del 1986 da Jon Bentley e Donald Knuth in una colonna di Programming Pearls, presente in Communications of the ACM, vol. 29, n. 5, p.365.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne