热点网|医学教育网|北京pk10开奖直播 pk10开奖直播 北京赛车pk10 pk10开奖直播 北京赛车pk10 PK10开奖直播 北京赛车pk10开奖直播 北京pk10 北京pk10

常见编程语言对REPL支持情况小结

REPL(Read-eval-print-loop)
服务器君一共花费了162.799 ms进行了4次数据库查询,努力地为您提供了这个页面>。
试试阅读模式>?希望听取您的建议

最近跟一个朋友聊起编程语言的一些特性,他有个言论让我略有所思:“不能REPL的都是渣”>。当然这个观点有点偏激<,但我们可以探究一下,我们常用的编程语言里面,哪些支持REPL,哪些不支持><,还有REPL的一些概况。

在一般的脚本语言中,有REPL是常态,因为REPL非常的方便。编程术语 REPL(Read-Eval-Print Loop) 中文的话有翻译成“交互式解释器”或“交互式编程环境”的。不过我觉得不用翻译,直接REPL就好了<,这样的术语<,翻译成中文后<>,读者更难理解。下面是对 REPL 的解释:

A Read-Eval-Print-Loop (REPL) is available both as a standalone program and easily includable in other programs. REPL provides a way to interactively run JavaScript and see the results. It can be used for debugging, testing, or just trying things out.

交互式解释器(REPL)既可以作为一个独立的程序运行,也可以很容易地包含在其他程序中作为整体程序的一部分使用<。REPL为运行JavaScript脚本与查看运行结果提供了一种交互方式,通常REPL交互方式可以用于调试、测试以及试验某种想法>。

下面列举一些常见编程语言对 REPL 的原生支持:

  • 原生就有REPL的语言
    • Common Lisp
    • Ruby
    • Python
    • Lua
  • 原生不带REPL的语言
    • JavaScript
    • PHP
    • JAVA
    • C#
    • C++
    • Haxe

原生就有REPL的语言

1. Common Lisp

一般的Common Lisp实现都有REPL,比如在Mac下用的Clozure CL>>,该实现甚至还有Mac App Store的版本.

2. Ruby

官方实现就带REPL<,只是命令是irb>,意思是Interactive Ruby Shell<,而不是ruby。exit()>,quit()命令都可以退出。同时>,也有个网页版tryruby(同时也是个ruby的在线教学)>><,有兴趣可以看看。

3. Python

官方实现带REPL,直接用python命令>,不带参数时即进入REPL环境,用exit()退出。

4. Lua

官方实现带REPL, 直接用lua命令即可<。

原生不带REPL的语言

1. JavaScript

类似JavaScript这种量级的脚本语言本来应该都是有REPL的,可是JavaScript是个一般在浏览器中运行的语言<,所以有些特殊了><。不过有一些实现<,比如Mozilla的Rhino,可以自行Google。

另外,我推荐使用最近流行的node.js来做REPL,虽然node.js一般都被认为是一个服务端的脚本环境<>>,但是本身就是个很不错的REPL环境<,还自带一些common javascript的库环境,同时支持npm,比Rhnio要更加强大一些<。在Mac下简单的使用node.js方法是用brew<>,虽然版本可能有些老<。

2. PHP

PHP作为服务端的一个常用脚本语言,本身设计就是作为一个apache的mod语言,所以本身也不带REPL>,虽然以它的语言类型来说应该是带的,不过Facebook为我们实现了一个PHP的REPL?phpsh<><<。有意思的是该实现竟然是通过Python来安装的…

3. JAVA

JAVA作为传统的静态类型语言<,本身是不带REPL环境的>,但是有BeanShell。

BeanShell下载后<>,将.jar文件放在JAVA可以找的到的库目录中,比如Mac下的~/Library/Java/Extension目录<,然后通过命令java bsh.Interpreter来运行,使用exit();命令退出。

一般在.bash_profile中用alias ijava='java bsh.Interpreter'简化为ijava命令<。

同时也有一些人推荐使用类似Closure,?Groovy,?Scala等jvm上带REPL的语言环境(一般兼容JAVA)来做REPL的,没有试用过,不评价<<。

4. C#

据说以后将会有官方实现的REPL,目前有一些第三方的实现,比如Mono就自带REPL。安装完Mono后<,执行csharp命令就可以进入C#的REPL了<<。

5. C++

cling,有Mac版本直接下载,不过运行的方式有些诡异,那就是在解压后的目录中运行./bin/root(在bin目录中运行反而不行),需要先安装XQuartz这个Mac下的X环境,用exit();退出>。

发现C++能有REPL真是惊喜,虽然本质上C++并不是一个适合REPL的语言。而cling这个REPL甚至都没法方便的定义一个函数<>>。

6. Haxe

ihx,可以直接通过haxelib install ihx安装,然后通过haxelib run ihx运行。也有一个网页运行版本http://www.jzjxzzjx.com/,在~/.bash_profile中添加alias ihx='haxelib run ihx',执行ihx即可进入Haxe的REPL>>。

其他

repl.it

这个不知道怎么归类,?repl.it本身支持多种语言, 运行在网页上. 虽然感觉有些版本比较老(比如Ruby还是1.8.x的版本), 但是作为网页服务, 并且支持那么多语言, 省事的时候可以尝试一用. 支持的语言如下:

  • 经典的语言(Classic)
    • QBasic: Structured programming for beginners.
    • Forth: An interactive stack-oriented language.
  • 实用的语言(Practical)
    • Ruby (beta): A natural dynamic object-oriented language.
    • Python: A dynamic language emphasizing readability.
    • Lua: A lightweight multi-paradigm scripting language.
    • Scheme: An elegant dynamic dialect of Lisp.
  • 诡异的语言(Esoteric)
    • Emoticon: Programming with an extra dose of smile.
    • Brainfuck: A pure Turing machine controller.
    • LOLCODE: The basic language of lolcats.
    • Unlambda: Functional purity given form.
    • Bloop: Nothing but bounded loops.
  • 网页语言(Web)
    • JavaScript: The de facto language of the Web.
    • Javascript.next: The JavaScript of tomorrow.
    • Move: The easy way to program the web.
    • Kaffeine: Extended JavaScript for pros.
    • CoffeeScript: Unfancy JavaScript.
    • Roy: Small functional language that compiles to JavaScript.

codepad

codepad这个算不上REPL,但是允许你不安装任何编译器就可以在网页上运行很多语言,所以有时候也算很方便。特别是你想简单的给出一些代码片段><,让别人可以迅速的得出结果时>。codepad会自动的生成一个地址>,你直接分享这个地址即可>,比如这个Python的片段. 任何人点击submit都能很快的看到结果. 这种分享代码片段的方式比snipplrgithub gist这种单纯贴代码的方式要更为先进一些.
支持的语言如下:

  • C
  • C++
  • D
  • Haskell
  • Lua
  • OCaml
  • PHP
  • Perl
  • Plain Text
  • Python
  • Ruby
  • Scheme
  • Tcl

WIKI的列表

WIKI的列表也挺详细的:http://www.jzjxzzjx.com/wiki/Read%E2%80%93eval%E2%80%93print_loop

本文地址:http://www.jzjxzzjx.com/librarys/veda/detail/2462>,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.jzjxzzjx.com/librarys/veda/detail/2462

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏。

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3<、4、5、6米吧。给个具体的数量>,那就100本书吧>。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么<,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年>!

《Python学习手册(第4版)》 鲁特兹(Mark Lutz) (作者), 李军 (译者), 刘红伟 (译者), 等 (译者)

《Python学习手册(第4版)》学习Python的主要内建对象类型:数字>>、列表和字典>。使用Python语句创建和处理对象<,并且学习Python的通用语法模型。使用函数构造和重用代码,函数是Python的基本过程工具。学习Python??椋悍庾坝锞?>、函数以及其他工具>,以便构建较大的组件。学习Python的面向对象编程工具>,用于组织程序代码。学习异常处理模型,以及用于编写较大程序的开发工具。了解高级Python工具,如装饰器、描述器、元类和Unicode处理等。

更多计算机宝库...

  • 港媒称台战机“日晒雨淋” 台军将领出面否认 2018-05-22
  • 怎样和陈意涵袁姗姗一样拥有完美裸妆肤感? 2018-05-22
  • 《东北树木彩色图志》首次载入我国新发现植物“青姬木” 2018-05-22
  • 网约车司机无证上岗拟纳入失信黑名单无证司机失信 2018-05-20
  • 300余名澳门中学生参加国旗手训练营(组图) 2018-05-20
  • 法前总统萨科齐遭拘 或因利比亚前要人递新证据 2018-05-20
  • 美媒称中国新人婚纱摄影很疯狂:有的仿如电影拍摄现场 2018-05-19
  • 立陶宛举行“汉语桥”中文比赛 2018-05-19
  • 上海嘉禾2017秋季艺术品拍卖会 2018-05-18
  • 海归回国就业创业遇到困难怎么办他帮海归找工作就业创业留学生海归 2018-05-18
  • 扛不住了?台当局拟放宽许可条件鼓励陆客赴台 2018-05-17
  • 美名校毕业典礼竞邀女性演讲者 希拉里将前往耶鲁希拉里耶鲁演讲者 2018-05-16
  • 空姐遇害案告破!DNA鉴定打捞尸体确系嫌犯刘某华 2018-05-16
  • 44年前创举!美军运输机曾空射洲际导弹 2018-05-16
  • 中部新一线城市扩容 产业定位“只看高端” 2018-05-15
  • ASP300源码下载 | 微信红包群 | 设计 | 冠珠陶瓷 | 科技 | 北京赛车pk10微信源码 | 挖段子网 | 厦门旅游景点 | 旅游中国新闻网 | 钛媒体 | 健康网hsdcba | 每天资讯 | 广西农业技术信息 | 农业种植技术 |