Noweb; jednoduchý, rozšíriteľný nástroj na programovanie písmen; EWSTranslate

Gramotné programovanie je umenie pripravovať programy pre ľudských čitateľov.

jednoduchý

noweb je navrhnutý tak, aby vyhovoval potrebám ladných programátorov, pričom zostáva čo najjednoduchší. Jeho hlavnými výhodami sú jednoduchosť, rozšíriteľnosť a nezávislosť jazyka - obzvlášť viditeľná v porovnaní s inými programovacími nástrojmi v literárnom formáte. noweb používa 5 ovládacích sekvencií pre WEB 27. Manuál Noweb má iba 4 stránky; ďalšia stránka vysvetľuje, ako prispôsobiť výstup LaTeXu. noweb pracuje "z krabice" s akýmkoľvek programovacím jazykom a podporuje koncové hlavy TeX, latex, HTML a troff. Zadný koniec na podporu úplného hypertextu alebo indexovania má približne 250 riadkov; jednoduchší je možné napísať do 40 riadkov awk. Primárnou obeťou pre WEB je to, že tento kód je zriedka dosť pôsobivý. Noweb je distribuovaný spoločnosťou CTAN.

noweb sa používa už pätnásť rokov na mnohých univerzitách a v priemyselných podnikoch. Používa sa na desiatky tisíc riadkov kódu v jazykoch ako awk, C, C ++, Haskell, Icon, Module 3, Caml Objectives, PAL, Perl, Promela, R, Turing a Standard ML. Vediem zoznam ľudí a projektov, ktoré používajú noweb .

  • Andrew L. Johnson a Brad C. Johnson. Programovanie literatefolosindnoweb. Linux Journal, 64-69, október 1997.
  • Norman Ramsey. Zjednodušené programovanie gramotnosti. IEEE Software, 11 (5): 97-105, september 1994.

vstúpiť do gramotného programovania s noweb. Článok v časopise Linux je základnejší; Článok o softvéri vysvetľuje, čo robí noweb jednoduchým a rozšíriteľným (a prečo sú dôležité).

Pôvodný článok v časopisoch Linux je označený a chyba vážne z tlač - syntax častí je> a nie taká, ako je uvedená v článku. Táto chyba je opravená vo webovej verzii. Článok o softvéri je plný menších chýb; pošlite mi pohľadnicu a rád vám pošlem dotlač s opravenými chybami.

Čo je nové?

V roku 2012 som sa dozvedel, že neexistuje režim Emacs, ktorý by podporoval Noweb a dokonca pracuje s programami Emacs 23 alebo Emacs 24. Najbližší je režim Dave Love, ktorý však trpí vážnymi problémami súvisiacimi s „nepriamymi vyrovnávacími pamäťami“. Zdá sa, že samotný Dave zmizol zo siete.

Inak nie je nič nové. používam Noweb 3 v každý deň, ale myslím si, že dôvod Noweb 3 prichádzal a odchádzal a pochybujem, že ho niekedy vezmem z „alfa“ fázy alebo prenesiem do Lua verzie 5.x, stojí to za to.

Nováčikovia by si mali uvedomiť, že verzie s číslom 2.x sú zrelé a môžu byť uprednostnené pred verziou 3. Od 21. júla 2011 je v súčasnosti akceptovanou verziou verzia 2.11b.

WWW zdroje

Podrobnosti a príklady sú k dispozícii na WWW:

Gramotné programovanie a dojem

Programovanie písmen, ako ich pôvodne navrhol Don Knuth, zahŕňa tlač kódu: jeho zobrazenie pomocou viacerých typov písma, matematických symbolov a štylizovaných odsadení a zalomení riadkov. Myslím si, že táto liečba bola inšpirovaná „publikačnou syntaxou“ Algolu 60. Z troch dôvodov však zriedka používam úľavovú vzorku:

  • Väčšina mojich programov je upravovaná minimálne toľkokrát, koľko sú prečítané, a je zábavné prepínať medzi jednoduchým formátom ASCII na úpravy a efektnými typmi písma a symbolmi na čítanie. Pre abecedný programovací nástroj je oveľa lepšie zobraziť kód presne tak, ako je napísaný. (Verím v typografické rozlíšenie názvov diel.)
  • Prettyprinting je nevyhnutne funkcia závislá od jazyka a nemám čas na vytváranie pekných tlačiarní pre každý z mnohých jazykov, ktoré používam.
  • Moje skúsenosti s označovaním sú také, že majú tendenciu odvádzať pozornosť ľudí od samotnej práce s programovaním a písaním. Ľudia trávia veľa času drotaním s peknými tlačiarňami a snažia sa dosiahnuť správny výsledok.

Vidím miesto na písanie - tlač môže byť užitočná pre archívne programy, ktoré sa čítajú oveľa častejšie ako sa upravujú, napríklad ak sa objavia vo vydaných knihách alebo časopisoch. noweb podporuje prettyprinting pomocou filtrov „prettyprinting“ a v adresári contrib noweb je niekoľko takýchto filtrov, vrátane jedného, ​​ktorý som napísal, takže by bolo lepšie rozptýliť všetky fámy, že nebudem používať prettyprinter.

Ozvite sa

Rád by som počul používateľov noweb; ak sa vám teraz páčilo, prečo mi neposlať miestnu pohľadnicu do mojej zbierky? Moja adresa je: Norman Ramsey
Katedra počítačov, Halligan Hall
161 Ave College
Tufts University
Medford, MA 02155
Môžete tiež poslať e-mail na adresu [email protected] .

Kde získať noweb

Pre používateľov systému Linux odporúčame, aby ste dostali balík Debian. Pre ostatných vyskúšajte CTAN. Tiež som sa pokúsil urobiť Red Hat RPM; Ocenil by som, keď som počul, či to funguje.

(Poznámka pre staré: noweb sa stále zrkadlí na CTAN, ale odkedy sme začali distribuovať teraz, začiatkom 90. rokov, naše nápady, ako veci zmeniť, ako aj naše myšlienky o tom, čo je veľké, od pádu tohto okolo roku 2003 už neodporúčam dostávať noweb od CTAN.) K dispozícii sú predkompilované binárne súbory pre Debian a NetBSD 1.3.x (g).

uznanie

  • Ďakujem Prestonovi Briggsovi za uznanie Aho-Corasickovi a za užitočné diskusie.
  • Ďakujem Dave Hanson za súbor cpif.
  • Ďakujem Daveovi Loveovi za čarodejníctvo LaTeXu.
  • Ďakujem Josephovi Reynoldsovi za to, že ma požiadal o riešenie [[. ]] .
  • Ďakujem Aharon Robbins za prácu s troff (konečne!).
  • Ďakujem Billovi Trostovi za pôvodný pôvodný kód HTML.
  • Ďakujem Lee Wittenbergovi a Philovi Millerovi za binárne súbory systému DOS.
  • Ďakujem Lee Wittenbergovi a Carlovi Gregorymu za jadro Jednostránkového sprievodcu .
  • Ďakujem Garretovi Prestwoodovi za počiatočné rozhranie rúrok a nárazníkov použitých vo verzii 3.

Autorské práva

Autorské práva spoločnosti Noweb 1989 - 2011 Normana Ramseyho. všetky práva vyhradené.

Máte právo používať a distribuovať noweb na akýkoľvek účel, bezplatne. Máte právo na úpravu noweb a vytváranie odvodených diel za predpokladu, že si zachováte upozornenie o autorských právach, ale výsledok nemožno nazvať noweb bez môjho písomného súhlasu. S programami vytvorenými pomocou noweb môžete robiť, čo chcete. Môžete dokonca predať aj noweb, napríklad ako súčasť distribúcie CD-ROM, za predpokladu, že to, čo predávate, je pravdivé, úplné a nezmenené noweb .

Bez vedomia elitára zabráni tomu, aby sa vedomé programovanie stalo základnou metódou, je to, že vyžaduje premýšľanie a disciplínu. Hlavnú premávku nastavujú ľudia, ktorí chcú dosiahnuť rýchle výsledky pri použití takmer rovnakých metód, aké používajú všetci ostatní, a informované programovanie nikdy nebude mať tento typ odvolania. To sa neodchyľuje od jeho užitočnosti ako prístupu. -Patrick TJ McPhee