是否有一种编程语言可以完全在交互模式下编写,而无需编写需要解释或编译的文件。可能类似于Ruby的IRB,但是该系统旨在让您从命令行编写整个程序。
是否有一种编程语言可以完全在交互模式下编写,而无需编写需要解释或编译的文件。可能类似于Ruby的IRB,但是该系统旨在让您从命令行编写整个程序。
Smalltalk可以完全交互式地进行编程,但我不会称小型对话框为“命令行”。大多数Lisp环境也是如此。如果我没记错的话,打印机中的Postscript也是这样。
你是说你想在不看到超出命令窗口滚动缓冲区的代码的情况下编写程序吗?
总有一种语言叫做lisp,它是Smalltalk的原始替代品,并拥有这个特性。
如前所述,Python有一些不错的交互式shell。对于初学者,我建议使用bpython而不是ipython,因为bpython支持自动补全和帮助对话框,以帮助您了解函数接受哪些参数或它的作用(如果有文档字符串)。
这实际上是一个关于代码实现而不是语言的问题,但是:
Smalltalk(尝试使用Squeak版本)将所有工作保留在“交互式工作区”中,但它是图形化的,不适用于命令行。
APL最初在IBM 360和370系统上部署,完全通过修改后的IBM Selectric打字机上的命令行进行交互!您的APL函数保存在不像普通文件的“工作区”中。
许多语言实现都配备了纯命令行交互解释器,例如New Jersey标准ML ,但是因为它们不提供任何类型的持久化命名空间(即退出程序后,所有工作都将丢失),所以我认为它们不应该算在内。
有趣的是,Smalltalk和APL的主要推动者(Kay和Iverson)都赢得了图灵奖。(Iverson在被哈佛大学拒绝聘任后获得了图灵奖。)
TCL可以完全交互式地编程,您可以定义新的tcl过程(或重新定义现有的过程),而无需保存到文件。
当然,如果您正在开发整个应用程序,某个时候您确实需要保存到文件,否则您将失去所有内容。使用TCL的内省能力,将当前解释器状态中的一些或所有内容转储到tcl文件中相对容易(我以前写过一个过程,使这更容易,但我大多数情况下仍会首先在文件中开发,并在应用程序中拥有一个功能来重新加载源文件)。
我不确定你是否需要这个,但是这个系统的交互性非常令人印象深刻:http://rigsomelight.com/2014/05/01/interactive-programming-flappy-bird-clojurescript.html
大多数Lisp的变体都很容易将您的交互式工作产品保存为程序文件,因为代码只是数据。
Charles Simonyi的意图编程概念也可能已经有所进展,但这并不像你可以去购买。值得探索Intentional Workbench项目。