2020 年 5 月,笔者有了设计一款与众不同编程语言的想法,后于 2020 年 7 月提出了 HVML 编程语言并公开了第一份规范草案。一年后,即 2021 年 7 月,我们成立了一个攻坚团队并正式开始了 HVML 解释器(PurC)的开发。2021 年 12 月 27 日,第一个 HVML 程序成功运行,标志着 HVML 的正式诞生。从 2020 年 5 月开始构思,到 2021 年 12 月诞生,整整 20 个月!

从 2021 年 8 月起,我们通过“考鼎录”公众号发表 HVML 的开发月报,向关注 HVML 的各位朋友汇报相关研发进展。本文是 HVML 开发月报的第八期。

在笔者发表于 2018 年的《三谈操作系统》一文中提到,一个操作系统区别于其他操作系统最为重要的技术特征就是围绕某个特定编程语言形成的应用编程接口(API)。我将这个技术特征比喻为操作系统的基因。要设计一个全新的操作系统,就必须在某个编程语言基础上设计一套完备的、可扩展的、易用的应用编程接口,而 HVML 就是笔者为正在开发中的下一代操作系统——合璧操作系统——设计的全新编程语言。

本文是 HVML 开发月报的第八期,主要包括如下内容:

  • HVML 规范调整及渲染器协议
  • 2022 年 2 月完成的工作内容
  • 下一步计划
  • 欢迎赞助 HVML
  • HVML 兴趣小组
  • 常见问题及解答

第一次听说 HVML 的朋友,可以访问 HVML 专题页面 以了解其背景。

HVML 规范及预定义变量的调整

HVML 规范 1.0 RC1 发布后,我们继续就语言规范做了一些调整,准备在 2022 年 4 月 1 日发布 HVML 规范 1.0 RC2。截止目前,RC2 中所做的调整如下所列:

  1. 用户可自定义局部变量。局部变量存在于 HVML 程序的执行栈帧中,会随着栈帧被弹出而自动释放,对节省内存使用有很大帮助。
  2. 调整了动态对象的描述语法。
  3. 移除了不必要的上下文变量。
  4. 增强了 iterate 元素,使之不使用迭代器即可完成迭代。
  5. 调整了前言部分,阐述了 HVML 的设计初衷。

有关详情,可点击阅读如下的链接:

我们同时在调整预定义变量及其接口,使之更加丰富并合理。我们计划在 2022 年 4 月 1 日发布 HVML 预定义变量 1.0 的第一个发布候选版本。该文档的访问链接如下:

就以上规范及接口定义,欢迎大家提出宝贵意见。

2022 年 2 月完成的工作内容

在研发团队的努力下,2022 年 2 月,我们又成功运行了计算斐波那契数列的五个 HVML 程序版本:

  1. 第一个版本
    • 使用数组。
    • 使用 iterate 元素以及针对数值的 ADD 执行器。
    • 使用 $MATH 及 $EJSON 预定义变量的方法。
  2. 第二个版本
    • 使用局部变量。
    • 使用 iterate 元素以及针对数值的 ADD 执行器。
    • 使用负的索引值访问数组成员。
  3. 第三个版本
    • 使用局部变量,不使用数组。
    • 使用 iterate 元素以及针对数值的 ADD 执行器。
  4. 第四个版本
    • 使用多个局部变量,不使用数组。
    • 使用 iterate 元素以及针对数值的 ADD 执行器。
  5. 第五个版本
    • 使用多个局部变量,不使用数组。
    • 使用 iterate 元素,但不使用执行器,直接使用 with 属性定义产生迭代结果的表达式。

其他工作如下:

  1. 基本完成字符渲染器(PurC Midnight Commander,简称 PurCMC):
    1. 实现基本的渲染器通讯协议及其示例程序。
    2. 动态更新 uDOM 树。
  2. HVML 解析器的部分重构。
  3. 根据 HVML 规范文档,完善对上下文变量的支持。
  4. 根据 HVML 规范文档,完善对已支持元素如 init 等的支持。

下一步计划

2022 年 03 月的主要目标有:

  1. 对接字符渲染器(PurCMC),直观看到 HVML 程序的运行效果。
  2. 增强集合一致性的实现。
  3. 执行更多体现 HVML 便利性和灵活性的示例代码。
  4. 根据示例代码的需求进一步完善解释器。

一句话,三月底,我们就可以直观地看到 HVML 程序的运行效果了。

欢迎赞助 HVML

作为全球首款可编程标记语言,HVML 语言的诞生是全球性的,对中国来讲,更是历史性的。

要详细了解 HVML 的价值,可阅读笔者以小说形式撰写的文章:《七爷访谈:且看魏森特如何把 HVML 吹破天》

目前,HVML 规范、解释器、渲染器等的开发,在飞漫软件的组织下开展,其主要资金来源于飞漫软件的老牌开源项目 MiniGUI 的许可收入。

为加速 HVML 的开发和推广,我们希望获得来自全球的赞助,尤其是曾受益于 MiniGUI 为代表的国产开源软件的中国企业,参与并助推 HVML 的正式发布。

有意者,请致信 tobesponsor@fmsoft.cn 或者通过点击“Contact”在后台留言。

我们也欢迎个人小额打赏来鼓励我们,您可以点击此处或文后的原文链接访问打赏页面。

HVML 兴趣小组

HVML 兴趣小组是一个虚拟小组,主要成员是对 HVML 及相关技术感兴趣的业内人士,这个小组主要通过微信群聊沟通。

如有兴趣加入该群聊,您可以通过点击“Contact”在后台留言,留下您的微信号,小编加您好友之后拉您入群。

目前 HVML 兴趣小组正在围绕如下前述的两个规范文档展开工作。

常见问题及解答

Q:HVML 是针对嵌入式和物联网使用的吗?

A:不仅仅是。HVML 是一种通用的胶水语言,主要用来开发跨平台的 GUI 应用,因此,HVML 的目标平台包括传统的桌面、智能手机、平板、嵌入式设备和物联网设备。

Q:HVML 是打算取代现有的 Web 前端开发技术,比如 JavaScript 吗?

A:没有这个计划。HVML 的渲染器会用到 Web 前端技术,但 HVML 的目的并不是取代现有的 Web 前端开发技术,而是为跨平台 GUI 应用的开发提供另外一种技术框架。

Q:在哪里可以看到 PurC 和 xGUI 的源代码。

A:PurC 和 xGUI 仍然处在开发状态,暂时不向公众开放其代码仓库。

Q:未来会开源 PurC 和 xGUI 吗?

A:会的,而且我们会使用商业友好的宽松许可证(如 LGPL)发布 PurC 和 xGUI。

Q:如何赞助 HVML 相关的项目?

A:个人打赏性质的赞助,您可以点击文后的原文链接。大额的赞助,可点击“Contact”留下联系方式,我们的小编会联系您。

原文链接

https://store.fmsoft.cn/campaign/denoteoss-lt

附:商标声明

本文提到的产品、技术或者术语名称,涉及北京飞漫软件技术有限公司在中国或其他地区注册的如下商标:

  1. 飛漫

飛漫

  1. FMSoft

FMSoft

  1. 合璧

合璧 合璧 合壁

  1. HybridOS

HybridOS

  1. HybridRun

HybridRun

  1. MiniGUI

MiniGUI

  1. xGUI

xGUI

  1. miniStudio

miniStudio

  1. HVML

HVML

  1. 呼噜猫

呼噜猫

  1. Purring Cat

Purring Cat

  1. PurC

PurC