这是一个奇怪的问题。我正在写一本关于学习使用正式方法进行编程的书,并且我将把它针对具有一些编程经验的人。这个想法是教他们成为高质量的程序员。
基本符号将来自 Dijkstra 的Discipline of Programming,以及一些并发和通信扩展。
与 EWD 不同,我希望我的学生最终能够编写出实际的可执行程序。这意味着在某些时候将 EWD 符号转换为其他语言。当我第一次开始进行正式编程时,我的目标是 C,但你最终会编写很多管道,加上处理指针等的所有复杂性。Ruby 显然是一个可能的目标,Scheme 或 Lisp 也是如此。但也有各种功能语言;因为我对并发特别感兴趣,所以 Erlang 似乎是一种可能性。
所以,最后,这是我的问题:我应该教我的读者使用什么语言来定位他们正式开发的程序?