加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby和Python如何实现他们的交互式控制台?

发布时间:2020-12-16 19:18:31 所属栏目:百科 来源:网络整理
导读:在为我的编程语言实现解释器时,我首先想到了一个简单的控制台窗口,它允许用户输入一些代码,然后作为 shell独立程序执行. 但是存在严重的问题:如果用户输入的每一行代码都作为独立程序处理,它必须通过标记器和解析器,然后由解释器执行 – 那么函数呢? Pytho
在为我的编程语言实现解释器时,我首先想到了一个简单的控制台窗口,它允许用户输入一些代码,然后作为 shell独立程序执行.

但是存在严重的问题:如果用户输入的每一行代码都作为独立程序处理,它必须通过标记器和解析器,然后由解释器执行 – 那么函数呢?

> Python / Ruby交互式控制台(IDLE,irb)如何“共享”代码?如何处理代码?

例:

>> def x:
>>  print("Blah")
>> 
>> x()

函数存储在哪里,以便可以在任何时候再次调用它?

交互式控制台如何将所有输入的内容视为一个程序,而不是一遍又一遍地执行所有操作?

解决方法

对于Python,在所有括号,括号等匹配之前,表达式不完整.这很容易检测到.在输入完全空行之前,函数/类定义不完整.然后编译器编译输入的表达式或定义,并运行它.

与正常的函数,类,模块等非常相似,REPL有自己的局部范围.这个范围用于输入REPL的变量和定义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读