-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
关于脚本语言的同质化、代码互译,以及运行时共享的一些想法
ref: program-in-chinese/overview#75
语法设计
注:这里的语法是过渡阶段的专用语法,又称过渡PL(GDPL)。
主要参照: Mathematica,K,TypeScript,erlang,Rust
- Symbolic[main: Mathematica/WolframAlpha 80% - APL/J/K/Kdb+/Q 20%
- C-like: Julia+Python3.5 40% - Haxe/TypeScript 60%
- Symbolic/Logic/FP: prolog/erlang/Elixir 70% - Rust 30%
- Java-style: .Net Core/C# 35% - JVM/Kotlin 35% - Else25%:Perl6/正则 15%,Forth 10%
平台规范:
- python:语法兼容3.4.4,库兼容3.5(兼容pypy),3.5以上为DLC
- Node:TypeScript3.0 % XP: Drop Windows XP (and Vista) support in 6.0 nodejs/node#3804
- erlang:语法兼容OTP17.5,平台以OTP21为准
- .Net Core:语法以2.x为准,3.x再说
- *Rust:1.2x即可 % XP: std: Add support for Windows XP rust-lang/rust#26601
备注:只有Python和erlang需要考虑支持Windows XP[NT5.2],Node/Rust/.Net不需要考虑兼容。
调度机制
注:这里的运行时不是S6RT最终运行时,也是过渡阶段的衍生物。
简称平面运行时(PRT=pale/plain runtimte)
Core:[Python Erlang .Net Core ]+Relay:[Rust Node JVM] - call-> s6rt
<-> Base[ J{Kdb+/q}, Rust, TypeScript/Node, erlang/BEAM, .Net Core, JVM/Kotlin ]
+Ext[Perl Lua Julia PHP C++/Qt Forth]