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,它的由来和未来》

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

  • HVML 规范 1.0 候选版本发布
  • 2022 年 1 月完成的工作内容
  • 下一步计划
  • 欢迎赞助 HVML
  • HVML 兴趣小组
  • 常见问题及解答

正式发布 HVML 规范 1.0 候选版本

2022 年 2 月 9 日,我们正式对外发布 HVML 规范 1.0 的发布候选(Release Candidate)版本,其中包含如下新的内容:

  1. 梳理了所有的运行时错误和异常。
  2. 可在 init 标签中使用 at 属性,指定已有的命名变量名称,从而覆盖已有命名变量的数据。
  3. 新增 $! 上下文变量给用户使用。开发者可以使用 init 标签在父栈帧中定义 $! 变量对应的数据。
  4. 移除某些冗余的上下文变量,并调整某些上下文变量使用的符号。
  5. 新增 silently 副词属性,用于忽略某些不严重的异常。
  6. 新增 HVML 预定义变量,用于调整解释器的某些限制值或者行为,如最大迭代数量。
  7. 在 observe 标签中使用 at 属性,可观察指定命名变量的状态变化。
  8. 新增针对集合容器数据类型的若干限制。

2022 年 1 月完成的工作内容

在研发团队的努力下,2022 年 1 月,我们又成功运行了其他三个 HVML 程序:

  1. 第一个 HVML 程序(2021 年 12 月 27 日)
    • 验证了 HVML 编程语言的基本原理。
    • 标志着 HVML 编程语言的正式诞生。
  2. 第二个 HVML 程序
    • 从外部数据源中获取内容初始化变量。
    • update 元素的基本功能。
    • 验证 $T 预定义变量。
    • 内置变量 $TIMERS 的实现。
    • 通过操作 $TIMERS 变量设置定时器。
    • 事件循环以及通过 observe 元素处理定时器的到期事件。
    • 周期性改变目标文档内容。
  3. 第三个 HVML 程序
    • 实现针对对象、数组、集合等容器的 mergeunite 等操作。
    • 实现针对目标文档元素汇集的实体及其方法,以及元素属性和内容的更新。
    • 从动态库装载和初始化动态对象 $MATH
    • test 和 match 元素的实现。
    • 通过 update 元素操作目标文档 DOM 树。
  4. 第四个 HVML 程序
    • 嵌套的 iterate 元素。
    • 可回溯父栈帧的上下文变量。
    • update 的 at 属性。

已完成的其他工作如下:

  1. HVML 解析器的部分重构。
  2. 调试用渲染器:
    1. uDOM 树的展示。
  3. 调整如下规范文档:
    1. HVML 规范(发布候选)
    2. HVML 预定义变量(草案)

下一步计划

2022 年 02 月,由于春节假期,团队工作以重构、维护为主,主要目标有:

  1. 重构 update 元素的实现。
  2. 重构解析器和解释器中的某些模块。
  3. 根据 HVML 规范文档,完善对已支持元素如 init 等的支持。
  4. 根据 HVML 规范文档,完善对上下文变量的支持。
  5. 尝试运行更多可以体现 HVML 特色的程序。
  6. 对接调试用渲染器。

欢迎赞助 HVML

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

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

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

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

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

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

HVML 兴趣小组

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

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

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

  1. HVML 规范(发布候选)
  2. 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