V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dwcz  ›  全部回复第 1 页 / 共 1 页
回复总数  10
2019-07-28 13:22:07 +08:00
回复了 Kulics 创建的主题 程序员 自荐一个编程语言: Lite
你这不是编程语言,是编程语言基本语法汇总。更倾向于代码自动生成。编程语言中:内存布局、代码即文档、版本管理、模式抽象、错误和通信的分层处理,这些问题都没涉及。判断语句的设计不好,没有抽象汇总,而且感官上不能直接区分各个分支。代码块都用{}表达,反到分不清了。把检查异常放到正常代码中,不是个好的方案。
2018-11-12 16:59:02 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente 我还是倾向 C 体系,函数式编程的思维是从小到大,这与中文编程的宗旨相反,并没减少学习成本。函数式编程并没考虑让机器干更多的事,只是划分的更细致。这一点加强类型系统和进一步抽象就可以把函数式编程的优点学过来。同时也可以让机器多做事人少做事。比如,不论哪种编程模式,最终干的就是以下三件事:解析、转换、通信。以此为基础类型,进行扩展再加上拷贝和引用两种数据模式。串法的工作方式就都包括了。并发的也只是把通信提级后的串发拷贝。而函数式编程弱化了这些概念,反而造成串中有并,并中有串,整体上的混乱。有系统的类型系统,让机器自动完成代码也更容易。这也是现有语言的通病。
2018-11-10 23:08:13 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente 这是一种表示方法,有其它的也行。文本的好处是写起来方便,有笔有纸有概念就可以开始了。这只是表象,反正编程多样化也是趋势。那个尝试感觉只是解决解析部分,而自动化方面更趋向于函数式编程。不太喜欢函数式编程,函数式编程的理念好是好,就是遇到复杂时,代码的灵活性就太差了。中文编程的优势中就应该有灵活性。
2018-11-10 15:59:03 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente 我认为自上而下,可以利用中文语法、更抽象的类型系统和自定义语句解析来实现。结构化可用于代码整体布局,格式化可用于文字表达不利的情况。而中文用于描叙代码逻辑和抽象概念。现在主要问题是解析文本比较复杂,有点数据库的味道了。再就是为了更方便地完成上下对应,可以把数据和函数进一步抽象成统一的概念。中文对同一物描叙的方式可以多样化,必须得有自定义语句解析功能,也为上下对应提供机制。
我粗划分一下词法与代码结构的对应:名称是类型,动作是函数,状态词是维度(比较级),形容词是改动维度,数量词是数,其他是设定逻辑和状态。
中文编程就可以设定一些顶层格式定义:
名+动 表使用方法
动+名 表使用带参数的函数
名+动+名 表使用带参数的方法
动+"成"+名 表设定
的地得字句 表所属
是字句 表定义,定义名称、动作
为在中 表定义,定义类型
为在首 表条件的对象默认为前者
被字句 表最后为重点
给字句 表传递赋值
不字句 表逻辑非
和字句 表逻辑和
或字句 表逻辑或
有字句 表下属

了为尾 表完成状态
很为首 表比较级的首尾

在。。为。。时 表条件
是否 表检测
2018-11-08 22:38:02 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente 做为一个方案可行。但我个人认为不能突出中文编程的优势。中文编程毕竟是用中文思维和中文表达方式来实现代码即文档,为编程提供另一种书写模式(从上至下的),从而让机器尽量自动化干枯燥的事,让人更清晰表现概念。相对拼音文字,汉字汉语的编码方案描叙概念和逻辑更精确。相对数学等式,灵活度要好些。放弃这些,用半格式化实现,有点可惜。当然,中文编程中肯定有一部分是格式化表现。
2018-11-07 00:01:44 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente 做 vscode 插件意义不大,毕竟中文编程没成体系前用的人少。要是当技术沉淀,也可以。解析转换成其他代码,倒是关键技术之一。rust 中有很多技术同中文编程相一致,要不是死活不愿意全面支持 U 编码,本可以成为中文编程暂时的替代品。 说到 vscode 插件时,突然想到可以想宏一样,提供短代码转换,不过这不是中文编程了,是宏了。
2018-11-05 23:19:36 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
我想到一个办法,应该可以结束关于中文编程的争论。现在,中文编程基本是空想阶段,实现工业级的编译器基本不可能。那还不如先用设计中的中文编程语言直接写编译器的源代码,这样既可以完善语言,也可以完成源代码。最开始的高级语言本来也是从伪代码中诞生的。
2018-11-04 22:58:11 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente 我感觉其中的难点在于自定编译器行为的描叙,语言是要能满足人和机器的要求。现有的工具都很呆板,函数式编程中一点亮点。但都不能覆盖全部要求,有时直接替换还好用些,毕竟人知道目的,机器不知道。是考虑用接口模式,但有点贪心想让机器更聪明点,多完成点事。还在打草稿阶段。
2018-11-04 22:36:44 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
@absente DSL 作为实验可行,但要工具化,还是太单板了。中文是一种重义轻形的语言,不同事物的相同形况会用不同表达方式,或不同事物的不相同形况用相同表达方式,这就必须提供自定语法功能。我的想法是模仿 C 抽象汇编,主要的是中文,细节还是部分原来的。数据的抽象,西方基本完成。但语句的抽象,由于拼音文字的影响,西方基本不可能进步了,所以他们转向函数式编程。现有编程语言是由底层开始抽象,这是由事物发展造成的。而中文编程是后来的,而且中文思维本身也是由顶向下扩展的。所以中文编程应该是像写框架一样,先描叙整体,然后逐级扩展到描叙细节。而这也需要在语法上提供自定编译器行为。再就是串行编程模式已经到头了,以后是并行编程模式了,所以语言上肯定是并行设计开始。
2018-11-04 12:11:18 +08:00
回复了 absente 创建的主题 程序员 我就知道很多人会黑中文编程
中文编程的问题是现有搞的人,没有找到正确方向。不是汉化就是文言文化。
其实,中文编程现阶段最缺的是文本解析工具。正则是解析拼英文字的,而汉语正好有很多句法是正则不擅长的地方。在技术上表现为有大量前后配对,标志符在左中右的情况都有,而且还有混用的。汉语更看重句法,比西方文字高一个维度,字词是对应的是单、多元音和习语。而西方还没到解析习语的场景,等到了,中西文都必须面对这个问题。
再就是,汉语或其他自然语言是现有编程语言上更进一步的抽象,这就要求中文编程的模式必须提供更抽象的概念定义和更多的转换机制。
现在,西方编程语言其实在走回头路,由于 c++等语言在进一步抽象上的失败,新语言只是有了更多的限制,而不是代码灵活转换。
中文编程只要有了文本解析工具,再添加运行逻辑语句,就是一个编程语言了。现阶段,中文编程的使用场景是小工具自动化上。就像评论中有人说的,现有的以串行计算为主的体系不能发挥中文优势,中文或其他自然语言需要并行检索为主的体系。
编程语言的功能结构上其实就是文本解析、模式转化和通信约定。没有文本解析,后两步也不好展开。
至于输入法,是不干正事。人们聊天从来没有说用输入法别扭的,说编程别扭是因为表达方式不一致。有符合中文表达方式,这就不是个问题了。说到输入法不干正事,其实输入法对中文编程是优势。输入法平台可以提供像自动补全、截图、按键精灵、剪贴板管理、快速启动管理、翻译转换等功能。
能解析类似如下中文代码,估计也没多少反对声音了。

姓名是字符串
年龄是 8 位正整数
工资是 32 位浮点数
增减是自然数

表的项目为姓名、年龄、工资、增减 //结构体
其动作:登记,参数为姓名、年龄、工资 //方法
{
姓名给项目的姓名
年龄给项目的年龄
工资给项目的工资
}


统计表的值类型是表,其长是 3 //数组
动作:汇总,参数为表,结果为自然数 //函数
{
循环计数
}
解析: 循环计数
{
表的迭代器,值(工资)给连加器
连加器的值给输出
}


入口:
{
名为大学的统计表,长为 4
大学登记(“张三”,25,5000.00 ,-1000 )
汇总大学,值给总数`
显示,格式:"总数"+总数+“/n ”
显示,格式:"变化:"+工资+增减(左对齐)+“/n ”

}
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4386 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 10:14 · PVG 18:14 · LAX 02:14 · JFK 05:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.