Literate programming: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti |
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
||
| (Una versione intermedia di un altro utente non mostrate) | |||
Riga 117:
Esistono varie altre implementazioni del concetto di programmazione letterata (alcune non hanno macro e quindi violano il principio dell'ordine della logica umana come punto prioritario):
* [[Axiom (software)|Axiom]], che si è evoluto da scratchpad, un sistema di calcolo algebrico per computer sviluppato da [[IBM]]. Ora è sviluppato da Tim Daly, uno degli sviluppatori di scratchpad, Axiom è totalmente scritto come literate program.
* noweb è indipendente dal linguaggio di programmazione del codice sorgente. È noto per la sua semplicità, data la necessità di utilizzare solo due convenzioni di markup del testo e due invocazioni di strumenti e consente la [[formattazione del testo]] in HTML anziché passare attraverso il sistema TeX.
* ''Literate'' è un "moderno sistema di literate programming". Come noweb, funziona con qualsiasi linguaggio di programmazione, ma produce HTML con evidenziazione della sintassi e cerca di conservare tutti i vantaggi di CWEB, incluso l'output formattato come CWEB. Altri notevoli vantaggi rispetto agli strumenti precedenti includono l'essere basato su Markdown e la generazione di codice "aggrovigliato" ben formattato.<ref>{{Cita web|autore=Zachary Yedidia|data=24 luglio 2019|titolo=A literate programming tool for any language|lingua=en|accesso=30 luglio 2019|sito=GitHub|url=https://github.com/zyedidia/Literate}}</ref>
Riga 125:
* Molly è uno strumento LP scritto in [[Perl]], che mira a modernizzare e ridimensionare il literate programming per mezzo di "HTML pieghevole (folding)" e "viste virtuali" sul codice. Utilizza il markup "noweb" per i file di origine literate.<ref>{{Cita web|data=13 febbraio 2019|titolo=A literate programming "weaver" which can run as CGI to produce folding HTML-formatted documentation and runs with "noweb" tools of Norman Ramsey: unixtechie/Literate-Molly|sito=GitHub|lingua=en|accesso=30 luglio 2019|url=https://github.com/unixtechie/Literate-Molly}}</ref>
* Codnar è uno strumento di literate programming inverso disponibile come [[RubyGems|Ruby Gem]]. Invece di estrarre il codice sorgente leggibile dal compilatore dalle fonti di documentazione, la documentazione literate viene estratta dai normali file di codice sorgente leggibili dalla macchina. Questo consente a questi file di codice sorgente di essere modificati e mantenuti come al solito. L'approccio è simile a quello utilizzato dai più diffusi strumenti di documentazione [[Application programming interface|API]], come [[Javadoc|JavaDoc]]. Tali strumenti, tuttavia, generano documentazione di riferimento API, mentre Codnar genera una narrazione lineare che descrive il codice, simile a quella creata dai classici strumenti LP. Codnar può coesistere con gli strumenti di documentazione API, consentendo sia un manuale di riferimento che una narrazione lineare generabili dallo stesso set di file di codice sorgente.<ref>{{Cita web|autore=Oren Ben-Kiki|data=21 giugno 2019|sito=GitHub|titolo=Code Narrator: an inverse literate programming tool. - orenbenkiki/codnar|lingua=en|accesso=30 luglio 2019|url=https://github.com/orenbenkiki/codnar}}</ref>
* L'editor di testo Leo è un outlining editor che supporta opzionalmente i markup noweb e CWEB L'autore di Leo mescola due approcci diversi: in primo luogo, Leo è un outlining editor, cosa che aiuta nella gestione di testi di grandi dimensioni; in secondo luogo, Leo incorpora alcune delle idee del literate programming, che nella sua forma pura (cioè il modo in cui viene utilizzato dallo strumento Web di Knuth o strumenti come "noweb") è possibile solo con un certo grado di inventiva e l'uso dell'editor in un modo non esattamente previsto dal suo autore (in nodi @root modificati). Tuttavia, questa e altre estensioni (nodi @file) rendono la programmazione della struttura e la gestione del testo efficaci e facilmente gestibili ed in qualche modo simili al literate programming.<ref>{{Cita web|url=http://leoeditor.com/|titolo=Leo's Home Page|autore=Edward K. Ream|lingua=en|data=2 settembre 2008|accesso=3 aprile 2015|dataarchivio=16 luglio 2023|urlarchivio=https://web.archive.org/web/20230716224054/http://leoeditor.com/|urlmorto=sì}}</ref>
* Il [[Haskell (linguaggio)|linguaggio di]] programmazione [[Haskell (linguaggio)|Haskell]] ha il supporto nativo per un semi-literate programming. Il compilatore/interprete supporta due estensioni di file: <code>.hs</code> e <code>.lhs</code> ; quest'ultimo sta per literate Haskell.
| |||