-
Notifications
You must be signed in to change notification settings - Fork 34
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
分享一下个人关于 中文编程/中文信息化 的思路 #62
Comments
概要:先做输入法,再做crx扩展,再改浏览器/做IDE/合并成Runtime;不直接做编程语言。 |
多谢知乎专栏投稿. 希望以后的文章更技术流一些. |
@nobodxbodon #62 (comment) 输入法这块我的思路是分阶段走,第一个阶段是在浏览器里面跑demo,取消掉键盘和拉丁字母的直接映射;第二个阶段是实用化,在vscode里面做DSL输入法插件,只要日常针对typescript/python和erlang/apl做优化就可以了;第三阶段就是通用化,把vscode的输入法搬到支持crx扩展的浏览器上;第四个阶段是平台化,把输入法通过类似 rime/小狼毫 的形式移植到win32里面来。 |
关于DSL输入法的设计思路:#2 (comment) 我是这么想的,要让中文编程变得通用,只能先让中文变成类似SQL一样的DSL。而要想普及这种DSL,一个特定DSL输入法就很有必要。先做输入法,再想怎么规范这个DSL,我觉得可行性会大一些。
|
必要的时候甚至可以自己造字,这个我是比较乐意做的 |
听起来是种新的中文输入法? 设计本身会是个大挑战吧
组里 @htwx 做了vscode的支持中文版Typescript的输入法插件
听起来像是设计一种中文语法的编程语言? 它的主要应用是哪个领域呢? |
稍微有点难度,但也不是特别难。我是把它当作写js页游的心态来搞的。主要是走形码的路线,音码为辅。
这个听起来不错,我觉得后期可以加以利用
理想状态呢,这种DSL是用来做元编程的,比如在python里写一句“233>写入文件”,就会调用python的处理方式,而在erlang里就用原生的io模块。但前期不指望直接上元编程,能用来处理数据和简单的业务逻辑,我觉得就满足了。数据这方面主要参考kdb+/q |
前面说起造字其实是有原因的: #62 (comment) 输入法只是我所构想的s6rt的应用层的人机接口,底层我希望能够实现一套造字系统。 |
@Absente 这不是DSL,不是领域特定 |
广义DSL,参考对象是通用输入法。我设想的DSL主要应用在开发领域,所以还是相对特定的 |
嗯, 从高层开始也许能更早投入实用.
#33 (comment) 里的例程是之前一个想法, 语法看起来有点类似, 期待你的更多例程. |
这个确实对我来说有不少参考价值,感谢分享。 另外分享一些个人关于编程语言设计方面的思考:
|
"符号尽量不要"--同意. "不允许做深度嵌套"--恐怕会限制语言功能, 具体再分析吧.
据个人了解, SQL的一些书写规范出于可读性考虑, 建议把where之类的语句分行写吧. 另外, 代码diff是否方便也是个考虑因素.
之前没考虑过这个问题. 在语法设计上会有什么特别之处吗? 可否举例? |
这个限制其实不大,就像python的lambda跟erlang相比就有很多限制,但是也不影响具体逻辑的表达。一个函数声明没必要搞得太复杂,这其中究其原因,跟语法允许的自由度本身有很大关系。如果人为加以限制,就像python一样必须强制缩进,那么可读性就会大大提升。
分行是可以的,但是最好前提是可以合并成一行;分行个人认为属于显示输出层的事情,格式化代码完全可以虚拟格式化,只是个显示形式问题。代码本身分不分行,写文章本身分不分段,就跟white space一样只取决于diff的需要。 然而,diff本身也是可以改进的,我觉得如果开发环境满足理想条件,那么diff应该深入到语法单元,而不是物理行上。这个做起来就像搜索引擎的关键字提取/识别/匹配,比常规的diff是要复杂一点,但也不是完全不可行。
这个目前来说我也没有特别好的例子说明为什么竖排会比较好,只是个人偏好。这个偏好的着陆点在于,如果不能竖排,那么编程语言就脱离不了一维的线性结构。 熟悉APL的玩家应该都知道APL的长处在于处理矩阵,而矩阵行列式这些是可以维度大于1的存在。如果能在这方面做文章,我觉可能会出现一种情况(假设),比如矩阵可以变换压缩,那么如果代码扩展到平面结构,它压缩方式相比当前就有了更多种玩法。 信息的解压缩在传输的过程中是很重要的一环,这点在web开发里面输出前端页面的过程中也有体现,在人类的DNA转录翻译表达的过程中也有体现。 当然,把DSL从一维扩展到二维是很复杂的,具体没有太完善的想法,先就说到这吧。 今天讲的有点多,言多必失,觉得有必要先打住。等过段时间再回复相关疑点。 |
如有#62 (comment) 相关的具体项目规划, 请新开帖并引用此帖相关楼作为背景介绍. |
https://www.zhihu.com/question/20184664/answer/445574696
18.718 /reservd4 wx.mp:section6buu, eç∫īГσא, also>linkedin:company/信息六科
The text was updated successfully, but these errors were encountered: