gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:55:03 24 4
gpt4 key购买 nike

在为我的编程语言实现解释器时,我首先想到了一个简单的控制台窗口,它允许用户输入一些代码,然后作为一个独立的程序作为 shell 执行。

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

  • Python/Ruby 交互式控制台(IDLE、irb)如何“共享”代码?如何处理输入的代码?

例子:

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

函数存储在哪里以便可以随时再次调用?

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

最佳答案

对于 Python,表达式只有在所有圆括号、方括号等都匹配后才算完整。这很容易检测到。在输入一个完全空白的行之前,函数/类定义是不完整的。编译器然后编译输入的表达式或定义,并运行它。

与普通函数、类、模块等非常相似,REPL 有自己的本地作用域。正是这个范围用于输入到 REPL 中的变量和定义。

关于python - Ruby 和 Python 如何实现它们的交互式控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com