Error —— 一个如同其名字一般的计划 —— 的沉睡
admin
2023-07-26 00:40:09
0

  今天是2019年2月6日。
  一年半之前,我开始接触到编程,不久后,出于对lisp的不满,我开始设计一种新的编程语言,并临时命名为“Error”(阅读提醒:我至今未能确定规则,但有基于某时的规则的实现)——我是个很没有起名天赋的人。关于error我也曾在这里(51cto)发表了blog(/13535617/2061128),现在看来颇有几分感慨。error是我对于编程体系的幻想,它似乎非得打破“语言”这个东西不可——但这也不是error独有的,语言都不纯粹地是语言。比如……c语言有预处理这个概念,python没有。
  error像lisp一样希望代码也是数据,但又希望严格划分二者。于是引入了一个新的概念“error对象标记方法”,可以说它是个lisp一点的json。比如

(len: ["orange" "lemon" "ice"])

  通过冒号来区分表达式和表(我使用“元组”、“列表”、“元组调用”、“列表调用”这些称呼)。error的语言部分就是用这种方法表示的,所以它可以被当做数据解析。而在运行的时候,调用式是无法被解析出调用者和参数的,预处理则可以。给error加入预处理的原因是,我觉得“在语言中指定哪些是运行前做”相当正义,这是不久之前的事。假如要在代码中设定一些需要运算得到的常数,没有人希望每次运行时都计算吧?(python便如此。)可以使用error语言的预处理,也可以自己实现预处理。随着对error的思考和时间推移,我渐渐意识到我好像不是在思考语言——这些根本无所谓用什么符号来表示,只要这些符号能够确定出——一个error语法结构,类似抽象语法树的东西。我发现我从来不知道error是什么,它只不过是一堆愿望的集合——就像人所说的“人工智能”一样。
  但能明确到“语法结构”已经不错了。文本首先要变为error语法结构(不管以何种文本,何种对应的处理方式),而预处理也是在语法结构上进行,而非文本上。其实完全可以用“修改语法树”的说法,但我不喜欢“语法树”这个词,因为比起普通意义的树,它多了很多限定的东西,和struct倒更像些。let(类比lisp的let,python的带dict的eval)和getmethod(类比python的getattr、点操作符)就可以被看成预处理,或者说(静态的)宏。但它们似乎也可以部分地以函数而非宏的形式存在,然后导致为语言添加很多其他东西——也是我在想到可以用预处理之前花了很多精力去纠结的东西。你可以轻松地写下(let: [(x 1)(y 2)] (+: x x))、((getmethod: move): car)、(lambda: [a b] (+: a b))这种表达式,但你会想,这真的是函数吗?(error默认所有参数惰性求值,故仅需延迟求参的if,for等都视作普通函数。)前者改变了“环境”(而环境是什么都很难说!),后二者则没有类型推导可言(即使error并不推导类型,它们依旧显得特殊)——“甚至把表达式当做运行时对象都已经很特殊”——我对error的期望不停地在改变,譬如一开始error不自定义对象也不使用getmethod。而自定义对象能否和内置对象统一起来,也是我一直不得其解的问题。
  error语言困扰了我很久。其实error曾经并不被我放在心上,我思考的东西是人工智能和心理学。在一度失利下,error愈发牵引着我的注意力,就像上学时的听课,总能给我做其他事的动力。而又随着厌倦法则的持续作用,error对我也不那么吸引了(也正是我一开始所希望的)。现在这个计划——应当陷入沉睡了。而我所需要做的是,把目前已有的东西交代给虚无。
  在不考虑预处理的情况下,函数对象是要在运行时创建的。但我们似乎也“希望”能在运行前创建出函数,和可能在运行时被闭包的函数,等等;error对象标记方法中,原则上连整数,小数都不允许出现,因为只有字符串是无歧义的,要表示1只能用(int: "1")的形式,而int为宏,除了解决复数四元数的扩展纷争,也算是致敬tcl语言;一个字符只要不是空白符和已占用的符号(双引号,冒号,圆括号方括号)就可以作为标识符成分;error的一切都是对象,它如何与操作系统交互,如何读写文件和输出,一直没有思考,仅仅把它用在python的交互模式下了。原则上它应该也在函数式的系统中运行,但这些意味着什么,我没有思考。
  目前有一个简单的版本位于github的lamdba/error,此前有过栈实现来调用函数(甚至一度为了方便以后转化为汇编,没有使用类),但再读起来很不方便,就放弃了,那些代码始终潜藏在lamdba/error_s1的git里。目前的计划是,为表达式对象封装上一层,把宏附在这一层上,则模型就变成了“宏式的子项也是宏式”,重写宏式的求值。不过此刻这个计划就已经停下了。本打算定义个常量,写个递归,算了吧。
  (于地球)

相关内容

热门资讯

年轻博士想让机器人“接住人的需... 6月将尽,2026届高校毕业生陆续走出校园,人生新的坐标正在展开。找工作、考研考公、继续深造,是很多...
麦韦光学取得光学配件真空封装组... 国家知识产权局信息显示,武汉麦韦光学科技有限公司取得一项名为“一种光学配件真空封装组件”的专利,授权...
苹果涨价,美光开撕,我们终于要... “在各行各业,资源都基于AI需求被重新定价、分配。” 文 /巴九灵 苹果公司和自家存储供应商美光科...
家用空调加氟什么型号 1、家用空调一般加R22型号的氟,该款型号的氟一般用于家用空复调、中央空调和其它商业制冷设备。2、R...
创维电视机的开机方法 创维电视机的开机方法其实非常简单,只需要按照以下步骤执行即可: 步骤一:连接电源线 首先要连接好...
法国高温已致超1000人死,巴... 2026年6月28日消息,席卷整个欧洲的极端热浪持续发酵,法国公共卫生机构最新统计出炉,本轮高温已经...
创维电视机常用故障 创维电视机常见故障可以包括以下几种: 1. 无法开机或黑屏:这可能是由于电源问题、接口问题、设备损...
空调怎么样?最新空调产品推荐 空调是非常优秀的品牌,不仅品牌的影响力和口碑遥遥领先,产品的质量也非常的过硬,好空调,造,是用户对它...
求教美的电热水器产品质量怎么样... 最佳回答 美的的电热水器是非常不错的,美的的产品质量都是非常好的,而且外观很漂亮,非常符合现代年轻人...
在委华人华侨已捐赠约500吨救... 据凤凰卫视报道,根据不完全统计,委内瑞拉强震至今,在委华人华侨已捐赠超过40余卡车合共约500吨救灾...