Noweb-一个简单的、可扩展的识字编程工具
识字编程是为人类读者。
诺韦布旨在满足有文化的程序员的需求,同时尽可能保持简单。它的主要优点是特别是简单性、可扩展性和语言独立性与其他文字编程工具相比,这一点显而易见。诺韦布使用5控制序列到WEB的27。这个诺韦布手册只有4页;一个附加页面解释了如何定制LaTeX输出。诺韦布可与任何编程语言“开箱即用”,并支持TeX、latex、HTML和troff后端。后端支持完全超文本或索引大约需要250行;一个简单的可以是用40行awk书写。相对于WEB的主要牺牲是那代码很少打印得漂亮。Noweb来自CTAN公司.
诺韦布在许多大学和工业场地。它已经被用于数万行这样的代码awk、C、C++、Haskell、Icon、Modula-3、Objective Caml、PAL、perl、Promela等语言,R、 图灵和标准ML。我保持一个人员和项目列表使用诺韦布.
文章
引入识字编程诺韦布.文章来自Linux杂志更基本;中的文章软件解释是什么诺韦布简单且可扩展(以及为什么这些很重要)。原件Linux杂志文章被严重损坏打印错误-块语法是<<名称>>
和不 <<名字>
如中所示文章。此错误已在Web版本中更正。这个软件这篇文章小错误百出;派我来一明信片我很乐意给你寄一份重印本已更正错误。
此网站是识字编程网络环以下为:
有什么新功能?
2012年,我了解到不再有任何Emacs模式支持Noweb,并可与Emacs 23或Emacs 24一起使用。最接近的是Dave Love的模式,但它受到了一些严重的影响与“间接缓冲区”相关的问题戴夫本人似乎已经从网络上消失了。2018年,我终于完成了我的表演,发布了2.12版。作为该版本的一部分,我将nowebgithub.
我正在使用无网3每天,但我认为Noweb3的理论基础已经来了又去,我怀疑我会把它从“alpha”阶段拿出来将其移植到路易斯安那州版本5.x,它这是理所当然的。
新手应该知道2.x版本已经成熟,可能优先于版本3。截至2018年6月28日,当前支持的版本为2.12版。
网络资源
详情和示例可通过WWW获得:
- 无网常见问题.
- 用户文档采用Unix格式男人页码,这是在线的。
- 这个使用Noweb的一页指南乳胶如果你不喜欢阅读文档,或者如果你记不住你读过的东西。
- 示例程序以HTML呈现,包括创建的超文本链接自动从诺韦布来源。大多数已经自动转换了文档块来自乳胶。
- 很多善良的人都派来了明信片,其中自1998年4月以来一直可以在线查看。
- 什么之中的一个诺韦布最大的优点是你可以从使用普通系统,然后逐步添加扩展和根据需要进行自定义,甚至无需重新编译。这个Noweb黑客指南解释了如何诺韦布为您添加新的特征。(安HTML版本指南的可用,但因为它是从乳胶自动转换的来源,它不是权威的。)概述了可扩展性策略在这里.
- 诺韦布的自定义扩展包括解析并操作nuweb文件,以及将LaTeX转换为HTML格式。这个nuweb程序格式化为nowebtools展示了这两者。
- 另一页讨论诺韦布的索引能力。一些特质的出现是因为诺韦布是独立于语言。
- 这个Lyx文档处理器,其中提供所见即所得接口,但与LaTeX兼容自1999年3月起支持Noweb。
- 自2.8a版以来,该发行版已包括Thorsten Ohl的noweb模式用于Emacs。乔·凯尔西(Joe Kelsey)为emacs写了一个很有前途的类mmm-mode,但它还没有完全开箱即用。
- 费利克斯·盖特纳建造椒盐脆饼,一个漂亮的打印机生成器诺韦布.
- 费利克斯的学生Sven Kloppenburg诺尔, 它重写错误消息,使语言实现没有#线路可以很好地使用noweb。
- 丹施密特已建立dpp和fu,这有助于使noweb-output看起来像CWEB,也很漂亮概述模式用于GNU emacs。
- 有些ftp站点对于诺韦布是上市的在下面.
- 这是我的近期计划和愿望清单对于对的改进诺韦布.您还可以查看Noweb 3计划,或者你可以看看Noweb 3上的旧白皮书.
- Rob Partington在支持方面做了一些工作相互参照普通TeX.
- 无网的自由主义者版权已给出在下面.
识字编程和精美印刷
正如Don Knuth最初设想的那样,识字编程包括精美印刷代码:使用多种字体显示,数学符号和样式化缩进和断线。我相信这种处理方法是受阿尔戈60。然而,有三个原因,我本人很少使用漂亮的印刷术:
- 我的大多数程序的编辑频率至少与阅读频率一样,必须在纯ASCII之间切换编辑和花式字体和符号以供阅读。文字编程工具最好显示代码几乎与编写的完全一样。(我确实相信区块名称在排版上的区别。)
- 漂亮打印必然是一个依赖于语言的功能,我没有时间为众多打印机中的每一个创建漂亮的打印机我使用的语言。
- 我对漂亮印刷的经验是,它往往会分散注意力真正从事编程和写作工作的人。人们花费大量时间修补漂亮的打印机,试图输出恰到好处。
我确实看到了一个漂亮打印的地方-漂亮打印可能会有帮助对于读取频率远高于实际读取频率的存档程序编辑,例如,如果它们出现在已出版的书籍或期刊中。诺韦布通过使用支持漂亮打印``prettyprinting filters,''中有几个这样的过滤器诺韦布的控制目录,包括一个所以最好平息所有关于我永远不会使用漂亮的打印机。我喜欢听到诺韦布用户;如果你喜欢诺韦布,为什么不呢给我寄张当地的明信片我的收藏? 我的地址是:诺曼·拉姆齐
哈利根大厅计算机科学系
学院大道161号
塔夫茨大学
马萨诸塞州梅德福市,邮编02155
美国您也可以发送电子邮件至nr@cs.tufts.edu(电子邮箱).规范源已打开github.应使用问题跟踪器报告错误。对于Linux用户,我建议您Debian包.对于其他人,尝试CTAN公司.我还试着做了一个红帽RPM; 我会很感激的听听它是否有效。
(老用户注意:noweb仍在CTAN上镜像,但自从我在20世纪90年代初开始发布noweb以来,我们的想法如何获得事物的观念发生了变化,我们对什么是大的看法也发生了变化。在过去糟糕的日子里,CTAN动态构建压缩的tar文件来保存磁盘空间。自2003年左右这项服务崩溃以来,我没有更长时间建议从CTAN获取noweb。)预编译的二进制文件对于Debian公司和NetBSD 1.3.x(g)可用。
吉姆·佩蒂格鲁有书面的安装Windows 7的说明(在明珠上)。
致谢
- 感谢Preston Briggs的Aho-Corasick识别器,以及有益的讨论。
- 多亏了戴夫·汉森用于cpif。
- 感谢Dave Love为LaTeX提供的魔法。
- 感谢约瑟夫·雷诺兹督促我修复
[[...]]
. - 感谢阿哈伦·罗宾斯(Aharon Robbins)让troff发挥了作用(终于!)。
- 感谢Bill Trost提供了原始HTML后端。
- 感谢Lee Wittenberg和Phil Miller提供DOS二进制文件。
- 感谢Lee Wittenberg和Carl Gregory为一页指南.
- 感谢Garret Prestwood提供初始管道和缓冲区版本3中使用的接口。
- 感谢Alexandra Seremina阿佐夫特对于本页罗马尼亚语翻译.
版权
无网版权所有1989–2018诺曼·拉姆齐。保留所有权利。您可以使用和分发诺韦布为了任何目的,免费。你可以修改诺韦布并创建派生作品,前提是您保留版权声明,但不得调用结果诺韦布没有我的书面同意。你可以这么做使用创建的程序可以执行任何操作诺韦布.你甚至可以卖掉诺韦布例如,作为CD-ROM分发,前提是您销售的是真实的,完整且未修改诺韦布.
不想成为精英,这会妨碍识字编程成为主流方法需要思想和纪律。主流是由那些希望快速获得结果,同时使用与每个人大致相同的方法其他人似乎也在使用,而有文化的编程永远不会有这样的上诉。这并没有剥夺它作为一种方法的有用性。-Patrick TJ McPhee