Noweb; прост, разширяем инструмент за програмиране на букви; EWST Превод

Грамотното програмиране е изкуството да се подготвят програми за човешки читатели.

прост

noweb е проектиран да отговори на нуждите на грациозните програмисти, като същевременно остава максимално опростен. Основните му предимства са простотата, разширяемостта и независимостта на езика - особено видими в сравнение с други инструменти за програмиране в литературен формат. noweb използва 5 контролни последователности за WEB 27. Ръководството на Noweb е само 4 страници; допълнителна страница обяснява как да персонализирате изхода на LaTeX. noweb работи „извън кутията“ с всеки език за програмиране и поддържа TeX, латекс, HTML и troff бекенд глави. Задният край за поддържане на пълен хипертекст или индексиране отнема около 250 реда; по-прост може да се напише в 40 awk реда. Основната жертва за WEB е, че този код рядко е доста впечатляващ. Noweb се ​​разпространява от CTAN.

noweb се ​​използва от петнадесет години в много университети и индустриални обекти. Използван е за десетки хиляди редове код на езици като awk, C, C ++, Haskell, Icon, Module 3, Caml Objectives, PAL, Perl, Promela, R, Turing и Standard ML. Поддържам списък с хора и проекти, които използват noweb .

  • Андрю Л. Джонсън и Брад С. Джонсън. Literatefolosindnoweb програмиране. Linux Journal, 64-69, октомври 1997.
  • Норман Рамзи. Опростено програмиране на грамотност. IEEE Software, 11 (5): 97-105, септември 1994 г.

за да влезете в грамотно програмиране с noweb. Статията в списание Linux е по-основна; Статия за софтуера обяснява какво прави noweb опростен и разширяем (и защо те са важни).

Оригиналната статия в списанията на Linux е маркирана с грешка сериозно на печат - синтаксисът на парчета е>, а не както е показано в статията. Тази грешка е коригирана в уеб версията. Статията за софтуера е пълна с малки грешки; изпратете ми пощенска картичка и с удоволствие ще ви изпратя препечатка с коригираните грешки.

Какво ново?

През 2012 г. научих, че няма режим Emacs, който поддържа Noweb и дори работи с Emacs 23 или Emacs 24. Най-близкият е режимът на Дейв Лав, но той страда от някои сериозни проблеми, свързани с „индиректните буфери“. Изглежда самият Дейв е изчезнал от мрежата.

В противен случай нищо не е ново. използвам Noweb 3 инча всеки ден, но мисля, че причината за Noweb 3 дойде и си отиде и се съмнявам, че някога ще я взема от "алфа" етапа или ще го прехвърля на Lua версия 5.x, струва си.

Новодошлите трябва да знаят, че номерираните версии на 2.x са зрели и може да се предпочитат пред версия 3. Към 21 юли 2011 г. понастоящем приетата версия е версия 2.11b.

WWW ресурси

Подробности и примери са достъпни на WWW:

Грамотно програмиране и впечатление

Както първоначално е проектиран от Дон Кнут, програмирането на букви включва отпечатване на код: показването му с помощта на множество шрифтове, математически символи и стилизирани вдлъбнатини и прекъсвания на редове. Мисля, че това лечение е вдъхновено от „синтаксиса на публикуване“ на Algol 60. По три причини обаче рядко използвам релефна проба:

  • Повечето от моите програми се редактират поне толкова пъти, колкото са прочетени, и е забавно да превключвате между прости ASCII за редактиране и изискани шрифтове и символи за четене. Много по-добре е азбучният инструмент за програмиране да показва кода точно както е написан. (Вярвам в типографско разграничаване на имената на парчетата.)
  • Prettyprinting е задължително зависима от езика функция и нямам време да създавам хубави принтери за всеки от многото езици, които използвам.
  • Моят опит с етикетирането е, че има тенденция да отвлича вниманието на хората от действителната работа по програмиране и писане. Хората прекарват много време в бъркане с хубави принтери, опитвайки се да получат резултата точно.

Виждам място за писане - печатът може да бъде полезен за архивни програми, които се четат много по-често, отколкото се редактират, например, ако се появяват в публикувани книги или списания. noweb поддържа prettyprinting, като използва филтри "prettyprinting" и има няколко такива филтъра в директорията contrib на noweb, включително един, който написах, така че това би било по-добре да разсее всички слухове, че няма да използвам prettyprinter.

Влезте в контакт

Обичам да чувам от потребители на noweb; ако сте харесали noweb, защо не ми изпратите местна пощенска картичка за моята колекция? Моят адрес е: Норман Рамзи
Катедра по компютърни науки, Halligan Hall
161 Ave College
Университет Тафтс
Медфорд, Масачузетс 02155
Можете също да изпратите имейл на [email protected] .

Къде да вземем noweb

За потребители на Linux препоръчваме да получите пакета Debian. За други опитайте CTAN. Опитах се също да направя Red Hat RPM; Ще се радвам да чуя дали работи.

(Забележка за старото: noweb все още се отразява на CTAN, но тъй като започнахме да разпространяваме сега, в началото на 90-те години, нашите идеи за това как да променим нещата - както и нашите идеи за това какво е голямо - от краха на това услуга около 2003 г., вече не препоръчвам да получавате noweb от CTAN.) Предварително компилирани двоични файлове за Debian и NetBSD 1.3.x (g).

Благодарности

  • Благодаря на Престън Бригс за признаването на Aho-Corasick и за полезни дискусии.
  • Благодаря на Дейв Хансън за cpif.
  • Благодаря на Дейв Лав за магьосничеството на LaTeX.
  • Благодаря на Джоузеф Рейнолдс, че ме помоли да реша [[. ]]] .
  • Благодаря на Ахарон Робинс за работата с троф (най-накрая!).
  • Благодаря на Бил Трост за оригиналния оригинален HTML.
  • Благодаря на Лий Витенберг и Фил Милър за DOS двоичните файлове.
  • Благодаря на Лий Витенберг и Карл Грегъри за ядрото на Ръководството за една страница .
  • Благодаря на Garret Prestwood за първоначалния интерфейс на тръбите и буферите, използвани във версия 3.

Авторско право

Noweb е авторско право 1989-2011 от Норман Рамзи. всички права запазени.

Имате право да използвате и разпространявате noweb за всякакви цели, безплатно. Имате право да модифицирате noweb и да създавате производни произведения, при условие че запазите известието за авторските права, но резултатът не може да бъде наречен noweb без моето писмено съгласие. Можете да правите каквото искате с програми, създадени с noweb. Можете дори да продавате дори noweb, например като част от CD-ROM дистрибуция, при условие че това, което продавате, е вярно, пълно и непроменено noweb .

Без да е елитарен, нещото, което ще попречи на съзнателното програмиране да се превърне в основен метод, е, че изисква мисъл и дисциплина. Основният трафик се установява от хора, които искат бързи резултати, като използват почти същите методи, които използват всички останали, и информираното програмиране никога няма да има такъв тип обжалване. Това не се отклонява от полезността му като подход. -Патрик TJ McPhee