如果您想要强大且安全的软件,也许您会对两个基于 Ada 的项目感兴趣
* Ironsides (https://news.ycombinator.com/item?id=7553019) 一个“权威/递归 DNS 服务器对”,使用 SPARK 正式验证(一种用于正式检查 Ada 程序的工具,参见 http://www.spark-2014.org/)
* ADHCP (https://www.codelabs.ch/adhcp/),一个用 Ada 编写的 DHCP 实现
老实说,我从未使用过这些工具,也不知道它们是否还在积极维护,但通常 Ada 程序的平均错误比 C 程序少得多,并且通常语言默认插入的检查会很容易捕获错误(例如,你不能有一个“缓冲区溢出”悄无声息地破坏堆栈)。根据该网站,Ironsides 应该被正式证明没有缓冲区溢出、未初始化的变量和其他便利设施。
我只想简单地插一句,我是 LaTeX 的粉丝,我用它来写我的书(如果你好奇的话,是关于 DSP 的)。 LaTeX 刚开始可能有点陡峭,但如果你愿意投入一些时间,我认为你会发现它比其他 WYSIWYG 工具更方便,特别是如果你写了很多数学公式。
对于我的图形需求,我使用 inkscape,我认为这是一个很棒的工具(我的大部分图形都是非常适合矢量格式的方案、绘图...)。 如果你愿意学习一些键盘快捷键,你可以非常快地完成...(作为一个 emacs 用户会有帮助,因为你已经会有一部分大脑专门用来学习像 Ctl-Alt-Shift-S [以不同的格式保存 {你也可以使用菜单}] 之类的东西 :-)
发表的评论
如果您想要强大且安全的软件,也许您会对两个基于 Ada 的项目感兴趣
* Ironsides (https://news.ycombinator.com/item?id=7553019) 一个“权威/递归 DNS 服务器对”,使用 SPARK 正式验证(一种用于正式检查 Ada 程序的工具,参见 http://www.spark-2014.org/)
* ADHCP (https://www.codelabs.ch/adhcp/),一个用 Ada 编写的 DHCP 实现
老实说,我从未使用过这些工具,也不知道它们是否还在积极维护,但通常 Ada 程序的平均错误比 C 程序少得多,并且通常语言默认插入的检查会很容易捕获错误(例如,你不能有一个“缓冲区溢出”悄无声息地破坏堆栈)。根据该网站,Ironsides 应该被正式证明没有缓冲区溢出、未初始化的变量和其他便利设施。
我只想简单地插一句,我是 LaTeX 的粉丝,我用它来写我的书(如果你好奇的话,是关于 DSP 的)。 LaTeX 刚开始可能有点陡峭,但如果你愿意投入一些时间,我认为你会发现它比其他 WYSIWYG 工具更方便,特别是如果你写了很多数学公式。
对于我的图形需求,我使用 inkscape,我认为这是一个很棒的工具(我的大部分图形都是非常适合矢量格式的方案、绘图...)。 如果你愿意学习一些键盘快捷键,你可以非常快地完成...(作为一个 emacs 用户会有帮助,因为你已经会有一部分大脑专门用来学习像 Ctl-Alt-Shift-S [以不同的格式保存 {你也可以使用菜单}] 之类的东西 :-)