Noweb – enostavno in razširljivo orodje za pisno programiranje

Literarno programiranje je umetnost pripravljanja programov za človeške bralce.

noweb je zasnovan tako, da ustreza potrebam pismenih programerjev, čim bolj preprosto. Njegove primarne prednosti so preprostost, razširljivost in neodvisnost jezika – še posebej opazna v primerjavi z drugimi orodji za pismeno programiranje. zdajeb uporablja 5 kontrolnih zaporedij v WEB-ovih 27. Priročnik noweb je le 4 strani; dodatna stran razlaga, kako prilagoditi svoj LaTeX izhod. zdajeb dela “izven škatle” s katerimkoli programskim jezikom in podpira TeX, lateks, HTML in hrbtne konce. Zadnja stran za podporo popolnemu hipertekstu ali indeksiranju traja približno 250 vrstic; enostavnejši je lahko napisan v 40 vrsticah awk. Primarna žrtev glede na WEB je, da je koda redko natisnjena. Nowebova glavna porazdelitev je tukaj.

noweb se uporablja na petnajstih letih na številnih univerzah in na industrijskih lokacijah. Uporabljeno je za deset tisoč vrstic kode v takih jezikih, kot so awk, C, C ++, Haskell, Icon, Modula-3, Objective Caml, PAL, Perl, Promela, R, Turing in Standard ML. Ohranjam seznam ljudi in projektov, ki uporabljajo zdaj.

Članki

uvesti pismeno programiranje z noweb. Članek iz Journal Journal je bolj osnoven; članek v programski opremi pojasnjuje, kaj zdaj omogoča enostavno in razširljivo (in zakaj je to pomembno).

Izvirni članek v članku v članku v članku o Linuxu je zmoten zaradi resne napake pri tiskanju – sintakso s pika je << ime >> in ne << ime>, kot je prikazano v članku. Ta napaka je popravljena v spletni različici. Članek programske opreme je prepletena z manjšimi napakami; mi pošlji razglednico in z veseljem vam bom poslal ponatis z popravljenimi napakami.

Ta spletna stran je član Literarni programski spletni obroč:

Kaj je novega?

V letu 2012 sem se naučil, da ni več Emacsovega načina, ki podpira Noweb, in res deluje z Emacsom 23 ali Emacsom 24. Najbližji način je način Dave Love, vendar ima nekaj resnih težav, povezanih z “indirektnimi blažilci”. Zdi se, da je sam Dave izginil iz mreže.

V nasprotnem primeru ni nič novega. Jaz uporabljam Noweb 3 vsak dan, vendar mislim, da je razlog za Noweb 3 prišel in odšel, in dvomim, da bom kdaj vzel iz “alpha” faze ali ga priklenil na različico Lua 5.x, ki jo bogato zasluži.
Novinci morajo vedeti, da so različice 2.x zrele in da so lahko prednostne različice 3. Od 21. julija 2011 je trenutno podprta različica različica 2.11b.

WWW virov

Podrobnosti in primeri so na voljo prek WWW:

  • Noweb Pogosto zastavljena vprašanja.
  • Uporabniška dokumentacija ima obliko Unixa man strani, ki so na spletu.
  • Eno-stran Vodnik za uporabo Noweba z LaTeXom je kraj, ki ga želite odpreti, če vam ni všeč branje dokumentacije ali če imate težave pri spominjanju tega, kar ste prebrali.
  • Primeri programov, prikazani v HTML-ju, vključno s povezavami hiperpovezave, ki so jih samodejno ustvarili iz vira zdaj. Večina je imela svoje dokumentacijske dele avtomatično pretvoriti iz lateksa.
  • Mnogi prijazni ljudje so poslali razglednice, ki so bile vidne na spletu od aprila 1998.
  • Ena od največjih prednosti tega sistema je, da lahko začnete z uporabo vanilijevega sistema, nato po potrebi postopoma dodate razširitve in prilagoditve, ne da bi jih celo prevedli. Vodnik Noweb Hackerja razlaga, kako zdajeb deluje dovolj podrobno, da dodate nove funkcije. (Na voljo je različica HTML vodnika, vendar zaradi tega, ker se samodejno pretvori iz vira iz lateksa, ni verodostojna.) Tukaj je skicirana strategija razširljivosti.
  • razširitve po meri zdaj vključujejo zmožnost razčlenjevanja in manipuliranja datotek nuweb ter zmožnost pretvorbe LaTeX v HTML. Ta program nuweb, formatiran z orodji noweb, se odpre oboje.
  • Na ločeni strani se razpravlja o sposobnosti indeksiranja danes. Pojavi se več idiosinkrazij, ker je zdaj neodvisno od jezika.
  • Procesor dokumentov Lyx, ki ponuja vmesnik WYSIWYG, vendar je združljiv z LaTeXom, je od marca 1999 podprl Noweb.
  • Od različice 2.8a je distribucija vključevala Thorsten Ohlov noweb-mode . Joe Kelsey je napisal obetaven razred za emacs mmm-mode, vendar še vedno ne deluje dobro iz škatle.
  • Felix Gaertner je zgradil Pretzel, lepotni generator, ki deluje z zdajeb.
  • Sven Kloppenburg, študent Felix’s, je zgradil Noerr, ki preoblikuje sporočila o napakah, tako da lahko jezikovne implementacije brez #line delujejo lepo z zdajeb.
  • Dan Schmidt je zgradil dpp in fu, ki pomagajo narediti zdajeb izhod izgledati kot CWEB, kot tudi nacrtovni nacin za GNU Emacs.
    Nekateri ftp strani za noweb so navedeni spodaj.
  • Nekateri ftp strani za noweb so navedeni spodaj.
  • Tukaj so moji kratkoročni načrti in seznam želja za izboljšave zdaj. Prav tako si lahko ogledate načrte za Noweb 3, ali si lahko ogledate starejšo belo knjigo v sistemu Noweb 3.
  • Rob Partington je naredil nekaj dela na podpiranju navzkrižnih referenc v navadnem TeXu.
  • Noweb je liberalec avtorske pravice je podan spodaj.

Pisno programiranje in lepo tiskanje

Kot je prvotno zasnoval Don Knuth, pismeno programiranje vključuje lepo kodno kodo: prikazovanje z uporabo več pisav, matematičnih simbolov in s stiliziranim urezom in prelomom linij. Verjamem, da je bilo to zdravljenje navdihnjeno s “sintakso publikacije” Algol 60. Toda zaradi treh razlogov sam redko uporabljam lepo tiskanje:

  • Večina mojih programov je urejena vsaj toliko časa, kolikor jih bereta, in morda ne potrebuje preklapljanja med navadnim ASCII za urejanje in prefinjene pisave in simbole za branje. Za orodje za pismeno programiranje je veliko bolje prikazati kodo skoraj natanko tako, kot je napisana. (Verjamem v tipografsko razlikovanje za imena piškotkov.)
  • Prettyprinting je nujno jezikovno odvisna funkcija in nimam časa za ustvarjanje lepih tiskalnikov za vsakega od številnih jezikov, ki jih uporabljam.
  • Moje izkušnje z lepo tiskanjem je, da skuša ljudi odvrniti od resničnega dela programiranja in pisanja. Ljudje preživijo veliko časa, ko se trudijo, da bi dobili izhod pravilno.

Vidim, mesto za lepo tiskanje – lepo tiskanje je lahko koristno za arhivske programe, ki jih berete veliko pogosteje kot so urejeni, npr. Če se pojavijo v objavljenih knjigah ali revijah. zdajeb podpira lepo tiskanje s pomočjo »filtrov zaprte tiskanja« in obstaja več takih filtrov v zdajebovem imeniku prispevkov, vključno s tistim, ki sem ga napisal, zato je bilo bolje, da vse govorice, da nikoli ne bom uporabil lepega tiskalnika.

Stopiti v stik

Uživam pri zaslišanju uporabnikov zdaj; če ste uživali danes, zakaj mi ne pošljete lokalne razglednice za mojo zbirko? Moj naslov je:
Norman Ramsey
Oddelek za računalništvo, Halligan Hall
161 College Ave
Univerza Tufts
Medford, MA 02155
ZDA
Elektronsko pošto lahko pošljete tudi na naslov nr@cs.tufts.edu.

Kje dobiti zdajeb

Za uporabnike Linuxa priporočam, da dobite paket Debian. Za druge je na voljo datoteka gzipped tar. Prav tako sem poskušal narediti Red Hat RPM; Želel bi slišati, če deluje.

(Opomba starejšim časopisom: zdajeb se še vedno zrcali na CTAN, vendar odkar sem prvič začel distribuirati noweb v začetku devetdesetih let, so se naše zamisli o tem, kako priti do stvari spremeniti, kot tudi naše ideje o velikem. V slabih starih časih, CTAN je zgradil zipane datoteke tar na letenju, da bi prihranil prostor na disku. Po razpadu te storitve okoli leta 2003 ni več priporočljivo pridobiti noweb od CTAN.) Predprevajane binarne datoteke za Debian in NetBSD 1.3.x (g) so na voljo.

Jim Pettigrew je napisal navodila za namestitev sistema Windows 7 (na vrhu mingw).

Priznanja

  • Zahvaljujoč Prestonu Briggsu za prepoznavnika Aho-Corasick in za koristne razprave.
  • Zahvaljujoč  Dave Hanson za cpif.
  • Zahvaljujoč Dave Love za LaTeX wizardry.
  • Zahvaljujoč Josephu Reynoldsu, ker si me potikal, da popravim [[…]].
  • Zahvaljujoč Aharon Robbinsu za delo na trofu (končno!).
  • Zahvaljujoč Billu Trostu za izvirni HTML zadnji konec.
  • Zahvaljujoč Lee Wittenberg in Phil Miller za DOS binarne datoteke.
  • Zahvaljujoč Lee Wittenberg in Carl Gregory za jedro vodnika One-Page Guide.
  • Zahvaljujoč Garretu Prestwoodu za začetne cevovode in vmesnike za vmesnike, uporabljene v različici 3

Avtorske pravice

Noweb je avtorsko pravo 1989-2011 Normana Ramseyja. Vse pravice pridržane.

Lahko uporabite in distribuirate zdajeb za kakršenkoli namen, brezplačno. Trenutno lahko spremenite zdajeb in ustvarite izpeljana dela, pod pogojem, da pridržite obvestilo o avtorskih pravicah, vendar se rezultat ne more poklicati zdaj brez moje pisne privolitve. V programih, ustvarjenih z zdajebom, lahko storite vse, kar vam je všeč. Lahko celo prodajate zdajeb sam, na primer, kot del distribucije CD-ROM-a, pod pogojem, da je tisto, kar prodajate, resnično, popolno in nemodificirano zdajeb.


Brez želje biti elitist, bo stvar, ki bo preprečila, da bo pismeno programiranje postalo glavna metoda, da zahteva razmišljanje in disciplino. Glavno smer so ugotovili ljudje, ki želijo hitre rezultate, pri čemer uporabljajo približno enake metode, za katere se zdi, da vsi drugi uporabljajo, pismeno programiranje pa nikoli ne bo imelo take privlačnosti. To ne odvzema njegove uporabnosti kot pristopa. -Patrick TJ McPhee

 

Vir: https://www.cs.tufts.edu/~nr/noweb/