用于描述思想的编程语言

JIDEL — 记述并执行
思维之流的编程语言

JIDEL 是 Ji's Idea DEscription Language — 一种立于自然语言与编程语言之间、用以描述思想、关系与语境的语言。与处理流程和数据的一般语言不同,JIDEL 处理概念、关系、语境、相对值与多值判断。

JIDEL 的位置 自然语言 编程语言 丰富却无法执行 可执行却太窄 JIDEL 让思想可执行 不失结构地记录思想,并原样执行。
自然语言丰富却无法执行,编程语言可执行却太窄,容不下思想。JIDEL 正是为立于两者之间而设计。

研究提案 实现方案 待验证假设

本页并非一门已完成语言的使用手册 — 它清楚区分已确定的设计方向与尚未决定的问题。

研究提案

始于一条蚕的语言

2011年春,侄子的假期作业 — 观察蚕的幼虫

JIDEL 的构想始于 2011 年春,源自侄子假期作业中对蚕幼虫的观察。

连日观察结茧的蚕,设计者看到生命体的行为分为几个层次,其间存在判断的分岔。这一观察化作一份关于行为分类的长久笔记,并长成一个问题 — 为何没有一种语言能不失其结构地记录思想? 自然语言丰富却无法执行,编程语言可执行却太窄,容不下思想。

相对性

以比较而非绝对坐标来看待值

多值逻辑

在真与假之间设立多个层次

关系导向

意义源于连接,而非节点

追求变化

以简化与抽象不断修正

开发方向为简化 · 抽象 · 保持一致,其长期角色是成为描述并实验 Neutom Network、BOSIFWEM 与 ECONAS 诸概念的通用工具。

研究提案

五条设计轴

语法与执行模型所立足的五根支柱

JIDEL 的语法与执行模型立于以下五条轴之上。其中,后缀表示法是这门语言的第一印象 — 韩语句子的顺序即执行的顺序。

后缀表示法 — 以韩语语序为执行模型

操作数(名词)先立,运算符(谓语)最后到来以完成求值。这与韩语句子在句末谓词处收尾的结构相同;以词节为单位的解析与助词处理,构成了语法设计的基础。

关系导向编程(ROP)

将概念、数据乃至代码等一切,都把握为相互连接的关系之网。一个名词的含义并非定义句,而是连接到该节点的边的集束。

代码 = 数据 = 信息

将命令、例程、函数当作值来处理(代码 = 数据),而 JIDEL 代码也作为信息汇入 Neutom Network。其计算单元Jactor是扩展了 Actor 的独立概念。

多值逻辑体系

不设真与假两个,而设六种逻辑状态。「未知状态」并非错误,而是正式的逻辑值,且每个值都附带确信度。

相对值运算

值不取绝对刻度,而取它落在至今所经历事物两极之间的何处。同样的数,因置于哪个群体而位置不同。

韩语语序 = 执行顺序 「我喝咖啡」— 句子即程序 我 咖啡 喝 完成 压入材料 ① 压入材料 ② 动词取材料求值 一句 = 一次计算 操作数(名词)先立,末尾的谓语完成计算 — 正是韩语语序。 无需翻译,按所想的顺序书写的语言。
后缀表示法并不难懂 — 正如韩语句子由句末的动词收尾,JIDEL 程序也先摆好材料,再由最后的运算完成含义。

研究提案

关系导向 — 意义诞生于连接

名词的意义 = 挂在该节点上的边的集束

JIDEL 将概念、数据与代码视为相互连接的关系之网。一个名词的含义,并非写在某处的定义句,而是显现于它与何物、如何相连。

由关系之网显现的意义 水 喝 流动 透明 生命 河 「水」的意义不是定义,而是这些边的集束。
名词并非孤立地被定义。挂在节点上的关系之边,正是这个词的意义;边增减,意义也随之而变。

实现方案

代码也是信息 — 从 JIDEL 到 Neutom Network

代码 = 数据 = 信息 · JIDEL 写下的代码,作为信息流入 Neutom Network

JIDEL 将命令、例程、函数的组合当作值来处理 — 以地址(指针)把数据与代码绑为一体,使代码可被比较、求值、组合(代码 = 数据原则)。在此更进一步。以 JIDEL 写就的源代码与中间语言代码(IBC),会原样汇入 Neutom Network 所处理的基本信息的一种。因为在 Neutom Network 的本源信息清单中,与物理、数学、观念、BOSIFWEM 信息并列,「JIDEL 信息」占据一席。代码与数据、信息同为平等公民 — 因而是“一级”。

代码 = 数据 = 信息 JIDEL 源代码 命令例程函数 编译 IBC 中间语言 · 可移植的知识 化为信息 Neutom Network 基本信息(本源信息) 物理数学观念 物理量数据BOSIFWEM JIDEL 信息 = 代码是信息的一种 代码成为信息后,Neutom Network 便把 JIDEL 所写当作信息来学习。
JIDEL 代码被编译为 IBC(Idea Block Code,中间语言),成为可移植到人工意识的知识,并汇入 Neutom Network 基本信息的「JIDEL 信息」范畴 — 代码 = 数据 = 信息。依据:在《关于基本信息的备忘》的信息范畴中,「JIDEL 信息」与物理、数学、观念、BOSIFWEM 信息并列在列。实现方案

超越冯·诺依曼 — 迈向更宽松自由的范式

自冯·诺依曼以来,计算长期沿袭着将指令(代码)与数据分开处理的思路。把代码视为数据,即是拆除那道僵硬的边界,转向更宽松自由的编程视角。

① 过程式 · 传统

代码 → 数据
代码操纵被动的数据。自冯·诺依曼以来,二者被严格划分。

② 联结主义 · 神经网络

数据 → 代码
训练数据塑造模型(权重 = 实质上的程序)。不再编写代码,而是以数据培育。

③ JIDEL · 整合

代码 = 数据 = 信息
将代码、数据、模型皆视为信息,彼此自由穿行。

这第三条路早有先例 — LISP 早在半个世纪前就以同一结构处理代码与数据(同像性,homoiconicity),首次在冯·诺依曼式的二分法上裂开缝隙。JIDEL 将这一传统拓展至神经网络时代,松开代码、数据、模型之间僵硬的边界,让它们作为同一种信息自由穿行(三者联合)。当程序能把自身乃至其学习模型都当作信息来处理时 — 自我修正、体察己念(元认知)、朝目标改变自身的意志,方才成为可能。

实现方案

Jactor — 扩展了 Actor 的主动对象

具备关系、紧急消息与动态建模的计算单元 · JIDEL 的保留字

思考是一个在心象中移动图像、加以模拟的过程。为此,计算单元必须能自行收发消息,并依情境改变自身结构。Jactor 是 JIDEL 的一个保留字,它扩展了其他语言中的 Actor — 一种独立地异步收发消息、且持有自身状态的计算单元。它在 Actor 之上增添关系、紧急(优先)消息与动态建模,成为能自行缔结关系、优先处理紧急信号、并在运行中改变自身形态的主动对象。

Jactor — Actor 的扩展 Actor Actor 异步消息 · 状态 扩展 Jactor Jactor 缔结关系 紧急消息 动态建模
Jactor 是在 Actor 的基础 — 属性、动作、消息队列、异步收发 — 之上,增添关系、紧急处理、动态建模的主动对象(概念于 2015 年确定)。实现方案

实现方案

六态逻辑 — 让「未知」成为正式的逻辑值

不止真与假两个,而是六个

JIDEL 的逻辑值不是真与假两个,而是六个。关键在于:「未知状态」并非错误,而是正式的逻辑值。

六种逻辑状态 I M S P F T 无评价 未知 叠加 矛盾 假 真 尚未提问 已问但无答 候选重叠 依据冲突 判定为假 判定为真 每个值都附带确信度通道,即使同为「真」,确信的深度也不同。
六种状态:无评价(I)、未知(M)、叠加(S)、矛盾(P)、假(F)、真(T)。不以任何一种状态为终点 — 未知与怀疑(降级)不被视为异常,而是正常的节律;在六个层次间自由往来,正是这套逻辑的设计基调。
  • 正在研究将六种状态连同置信度通道编码于 8 位之中的方案。其布局使得初始化为 0 的值恰好成为无评价(I)。
  • 运算通过查找表快速处理,运算律(结合、分配等)则以对全部组合的机器穷举验证来确认。我们做出了对全部 216 万种组合进行穷尽验证的验证器,并通过了 216 项一致性条件。
  • 采用哪些规则,以决策清单来管理——目前已列入三十四件,其中十七件确定,其余留作未决。若验证中出现反例,便修正设计。
为何是六个

现实中的判断,比起真/假,更常停留于「尚不知道」「可能是这样也可能是那样」「依据彼此冲突」。若不把这些状态当作错误驱逐,而是当作值来处理,便能把判断的搁置与恢复、确信的累积与降级写进程序。

实现方案

知的螺旋 — 六种状态循行的顺序

始于无评价,归于未知

六种状态并非平铺的清单,而是有着循行的顺序。它始于尚未提问的无评价(I),经过候选重叠的叠加(S),判定为真(T)或假(F),依据彼此冲突便抵达矛盾(P),并由此回到未知(M)。那个未知已不同于起初的无评价——因为它是问过之后所得的未知。

因此这套逻辑不以任何一种状态为终点。确信会累积,也会被降级——出现反例,确信度便下降;一旦想要僭越至究竟之知,它便自行退让。在西方逻辑仅以确定状态运算之处,东方悠久的修养观念作为运算规则进来了。把谦逊内建为计算规则,而非道德训诫——这就是这套设计的基调。

知的螺旋 再问一次 — 却已不在同一位置 I S T F P M 无评价 叠加 真 假 矛盾 未知 尚未提问 已问但无答
六个位置并非平铺的清单,而是有着循行的顺序。末尾的未知看似与起初的无评价同处一位,但一个是尚未提问,另一个是问过之后所得。所以这一回返不是圆,而是螺旋。

实现方案

相对值运算 — 解读两极之间

极间理论 · 不是「187厘米」,而是「有点高」

人们不会想「那个人身高187厘米」——只会觉得「有点高」。值并非绝对刻度,而是由它落在至今所经历事物的两极(最小·最大)之间何处来确定:(x − min) / (max − min)。而这个位置会因身处哪个群体而改变——同样的187,在篮球队里是「普通」,在别处则是「高」。

极间理论 — 同一个值,不同的位置 群体 A · 一般 小 · min普通大 · max 187 → 有点高 群体 B · 篮球队 小 · min普通大 · max 187 → 普通 同样的 187 — 极(min·max)一变,位置也随之改变。
这就是极间理论——在两极之间以模糊方式解读中间值的相对值运算。它以人类的七级刻度(「普通」居中)为基础,当出现新的极值时,刻度会伸缩,各值随之重新落位。不过这种再归一化(作者的算法「比例平均」)并非简单挤压,而是更为精细,正在另一份设计文档中整理。在纽托姆网络中流动的信息也如此处理。

待验证假设

谓语框架 — 句子是开启槽位的框架

把名词视为过程,而非值

这是近来的研究方向。将名词视作依条件而求值的过程,而非固定的值;并把句子看作由谓语开启的疑问词槽位的框架。

  • 名词的惰性求值 — 名词是〔条件 → 现象〕的惰性求值函数,而引用它的行为即是观测。助词(이/가、을/를、에서……)是附加条件的运算符,句末用言则是求值的扳机。
  • 疑问词槽位 — 谁、什么、何时、何地、为何、如何,再加上向谁、用什么、多少、于是等,共十四个槽位构成句子的空缺结构。未被填入的槽位并非错误,而是留作未知(M)值。
  • 好奇心引擎 — 正在探索在语言层面支持「寻找并填补空槽位」这一动作的方案。所谓提问,就是把未知的槽位显露于外。
有待验证之处

条件槽位的语法表示、求值时机(即时/延迟/再观测)的控制语法、槽位特征体系的类型化,均尚未定案。这些假设与相对值设计一并纳入决策台账处理。

研究提案

这门语言开启的可能性

在技术规格之外,对使用者与支持者的意义

不会丢失的思想

笔记不断累积,思想之间的连接却在消失。JIDEL 连概念与概念之间的关系、语境也一并记录,于是个人的研究笔记与组织的知识,便从可被检索的资料,跃升为彼此连接的资产。

懂得说「我不知道」的软件

今天的 AI 存在一个问题:对不知道的事,也自信满满地断言。JIDEL 的多值逻辑把未知、叠加、矛盾当作正式的值来处理,因而能同时呈现判断的依据与确信的程度 — 这正是医疗、金融、看护等以信任为生命的领域所需要的品质。

从韩语出发的技术

后缀表示法与词节语法,直接以韩语语序作为执行模型。一门按母语思考的顺序来书写的编程语言,是把语言本身化为技术资产的罕见尝试。

实现方案

近期目标与定位

文档化,以及一个能运行小型示例的可用解释器

近期目标是:将语法体系与执行语义文档化,并做出一个能真正运行小型示例的可用解释器。

  • 核心语法:后缀表示法 · 关系导向表达 · 代码即数据
  • 执行模型:基于栈的执行 · 依赖语境的运算 · 相对值处理 · 多值判断
  • 实现:最小解释器 · 示例集 · 规格文档 · 逻辑验证器

在整个研究的顺序中,JIDEL 是第一块砖 — 唯有 JIDEL 实现了,才能用它构建 Neutom Network;唯有 BOSIFWEM 理论与 Neutom Network 合流,才能迈向 ECONAS。

研究的次序 JIDEL Neutom Network ECONAS BOSIFWEM 理论 语言 — 先造出工具 用 JIDEL 建成的神经生态 长期方向 · 意识与良心 作为心灵蓝图汇入
工具(JIDEL)→ 建筑(Neutom Network)→ 设计图的汇合(BOSIFWEM)→ 长期方向(ECONAS)。这是不可颠倒的建造次序。

研究提案

另请参阅

本页是 JIDEL 设计文档面向访客的摘要。研究记录在研究看板公开。

JIDEL 是在 Forth·Factor 系连接型语言,以及 C、Python、Prolog、Lisp 等多种语言的影响之上,再加入韩语语法论与多值逻辑研究而设计的。

延伸阅读 — 愿景 · 近期目标(三大项目) · Neutom Network · BOSIFWEM · 研究看板
本页是 JIDEL 设计研究面向访客的摘要。影响:Forth·Factor 系连接型语言,C·Python·Prolog·Lisp,以及韩语语法论与多值逻辑研究。