Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于脚本语言的同质化、代码互译,以及运行时共享的一些想法 #75

Closed
4b5ent1 opened this issue Aug 9, 2018 · 7 comments
Assignees
Labels
APL +组合逻辑/tacit族 nV-非冯 非冯诺依曼架构/体系 想法 +思路/观点 设计 design
Milestone

Comments

@4b5ent1
Copy link
Member

4b5ent1 commented Aug 9, 2018

首先分个类,常见的脚本语言可以这么分:

  • 主后端:Python,Perl/Ruby,erlang<BEAM
  • 内嵌式:Lua>C,elixir>erlang
  • 主前端:JavaScript<Node.js,TypeScript<deno,ActionScript3<JVM,Dart

我觉上述语言,除了erlang/elixir外,都大同小异,甚至很多后端的python代码,都可以直接[机械]翻译成后端的typescript代码。现在的问题在于,PL不互通但可以互译,而相应的runtime却没办法统一调度。我觉得中文编程可以作为上层设计,用来统一调度这些PL的runtime。Haxe那种思路只是把代码从A翻译成B,然后用B去在B的runtime里执行,这种思路感觉还是太原始了,中间层生成了多余的代码,不利于协调。

个人认为合理的调度层次应该是这样:中文化的脚本 -发送给> [middleman代理] -由代理直接操作> runtime

@4b5ent1 4b5ent1 added 想法 +思路/观点 翻译/汉化 设计 design labels Aug 9, 2018
@4b5ent1
Copy link
Member Author

4b5ent1 commented Aug 9, 2018

关于非脚本语言也可以类比:

  • 编译型:C++、C、Rust、D、Go
  • 平台型:.Net/C# VB F#,JVM/java scala clojure kotlin

思路也是类似的,编译型貌似只能用haxe那种翻译的思路了,平台型可以转成bytecode。
另外haxe只做翻译可能也是因为考虑到actionscript-转换>c++的问题

@nobodxbodon
Copy link
Member

和Z语言思路有点类似? Z语言实现基本原理

@4b5ent1 4b5ent1 added this to the 2018戊戌 milestone Aug 9, 2018
@4b5ent1
Copy link
Member Author

4b5ent1 commented Aug 9, 2018

和Z语言思路有点类似?

@nobodxbodon 还是有点差别的,层级顺序是中文>现有[脚本语言/平台语言]>runtime>编译后的可执行码

@ghost
Copy link

ghost commented Aug 9, 2018

不同脚本语言也有各自的特性.而且语言也会更新
如果要把所有的脚本语言的运行时都调度到同一个运行时
而且要实现所有特性的话上工作量太大

@4b5ent1
Copy link
Member Author

4b5ent1 commented Aug 9, 2018

@MikaGuraNTK
关于更新的问题,我的想法是以python和node为主,其他少量兼容(比如JVM/.Net CLR)。
不做全覆盖,erlang对应做erlang的port,根据实际需要去推导会好点。
PS:可以类比tidb之于mysql的关系。

换句话说不需要保证方言的一致性,只需在统一文字的基础上,在对应的runtime实现相应的功能就可以。

为了统一,python的核心方言可以锁定版本到3.5.x(为了兼容pypy;3.5以后的作为DLC),node以TypeScript 3.0为准,erlang以OTP21为准,JVM以java8为准(9/10作为DLC),CLR锁定到.net core 2.x就行。

具体语法的话,取erlang、typescript和rust的并集,基本上也就包含了python/.Net/JVM。

@4b5ent1
Copy link
Member Author

4b5ent1 commented Aug 10, 2018

今天听说Julia 1.0发布了,感觉很多思路可以借鉴。https://julialang.org/

@4b5ent1
Copy link
Member Author

4b5ent1 commented Nov 30, 2018

archive. ref #111

@4b5ent1 4b5ent1 closed this as completed Nov 30, 2018
@4b5ent1 4b5ent1 self-assigned this Nov 30, 2018
@4b5ent1 4b5ent1 added nV-非冯 非冯诺依曼架构/体系 APL +组合逻辑/tacit族 labels Dec 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
APL +组合逻辑/tacit族 nV-非冯 非冯诺依曼架构/体系 想法 +思路/观点 设计 design
Projects
None yet
Development

No branches or pull requests

2 participants