secti6n / S6RT

runtime the ulitmate. 只有活用文字才能拯救软件开发

Home Page:https://github.com/program-in-chinese/overview/issues/75

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

S6RT-系统原型设计稿

4b5ent1 opened this issue · comments

commented

关于脚本语言的同质化、代码互译,以及运行时共享的一些想法
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: nodejs/node#3804
  • erlang:语法兼容OTP17.5,平台以OTP21为准
  • .Net Core:语法以2.x为准,3.x再说
  • *Rust:1.2x即可 % 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]

commented

注:先写PL并不是说要先实现PL,而是因为在中文编程讨论组里先顺便想到了而已。先实现的肯定还是DSL输入法。设计稿的顺序前半部分刚好跟实现顺序是反过来的,所以分段reverse就是实际顺序了。

设计稿:后期补全顺序

part1:GDPL / PRT;part2:第三硬件抽象层HAL3,空间I/O(solid/space IO=sio);
part3:输入法s6k;part4/协议规范:信息流,数据阵列;
part5:三元文/C3,一元二次言/L1R2[lang1rank2],二元语/P2[plain2],三元语/D3[dimension3];
part5:通用运行时SRT

commented

注2:PRT的P应该是plain/programming?哦上面写了。是plain/pale

commented

现阶段的实现顺序是:part3:s6k,part1:GDPL/ld2;s6k中期,要实现vscode插件移植

关于ld2:program-in-chinese/overview#89