StepfenShawn / Cantonese

粤语編程語言.The Cantonese programming language.
https://cantonese-community.github.io/
MIT License
1.15k stars 46 forks source link

疑问 #31

Open Sherlockcxk opened 3 years ago

Sherlockcxk commented 3 years ago

本人看到您在如何运行中讲到,“Cantonese 语言运行喺 Python 虚拟机上,环境净系支持 Python3,因为噉先符合广东人先进嘅思想!”,但阅读源码后发现您说的所谓的虚拟机运行是先将cantonese转成py,然后执行py代码。但本人理解的虚拟机运行是用interpreting的方式运行.cantonese,而不是“transpiler”。所以说您这个“虚拟机运行”其实不算真正的虚拟机运行,但我相信您早就明白,因为之前本人问过类似的问题 这个问题出现的原因是您还没有完成虚拟机的开发,提前写到readme里的吗?还是本人理解有误? 谢谢!

Sherlockcxk commented 3 years ago

@StepfenShawn @cxk-bugsfly 是本人小号🤣😂

nobodxbodon commented 3 years ago

“运行于 python 虚拟机”应是指用了 exec 运行生成的 python 代码,无论转为 Python 代码或像木兰那样转为 Python 语法树都可以如此运行。

https://github.com/StepfenShawn/Cantonese/blob/05a3a0d9adf8d41e981f8898bd19c4893304cdce/src/cantonese.py#L1404

Sherlockcxk commented 3 years ago

@nobodxbodon 但这不就成转换器,transpiler了吗? 本质上和转换器可以说没有区别了。

nobodxbodon commented 3 years ago

不解为何纠结于此,比如 ts 官网上叫的是 TypeScript compiler,也不见人说它必须叫”transpiler“?

Sherlockcxk commented 3 years ago

本人无fa♂可说好吧

StepfenShawn commented 3 years ago

@Sherlockcxk "运行喺 Python 虚拟机上"可以说是借助Python自带的虚拟机来运行,因为Python本身就是基于栈式虚拟机的动态语言, 所以我们可以将自己的语言转换为Python代码用自身的虚拟机运行, 这就是"运行在Python虚拟机上"的意思。而我要做的是实现自己的虚拟机和一套指令,也就是不用Python自带的虚拟机执行。

Sherlockcxk commented 3 years ago

@StepfenShawn 谢谢您的解释!