Snow 编程语言 v0.4.2 发布: 实现类型间全转换能力


更新内容

新增功能

  • 增加 IR 对类型转换指令的支持,补充基本数值类型转换相关指令,实现类型间全转换能力(如 long64/float32/double64/short16/byte8 等互转)。

性能和稳定性改进

  • 优化函数调用指令逻辑,支持 void 类型函数调用,修复空函数、非 void 函数缺失 return 的判断与报错。
  • 修正比较操作的错误提示信息,增强容错和反馈能力。
  • 修复函数参数重名、空函数不生成代码、比较跳转等边界问题,提升稳定性。
  • 修正 CmpJumpGenerator 逻辑以适配新 VMOpCode。
  • 统一修复类型转换相关注释与文档错误,提升类型转换的准确性和一致性。

开发者体验提升

  • 优化 CallInstruction 类设计与实现,提升结构清晰度与可维护性。
  • 重构 AST 节点位置信息表示方式,便于调试与错误定位。
  • 提取和统一类型提升逻辑至 TypePromoteUtils 工具类,简化代码结构。
  • 同步 VMOpCode 指令到 OpHelper 工具类,提升代码一致性。
  • 优化 IDEA 配置和 Demo 运行配置,调整 Demo 文件结构,减少根目录污染。
  • 统一代码风格,实现代码规范化。

Bug修复

  • 修复函数参数重名导致的语义冲突。
  • 修复空函数不生成代码、非 void 函数缺少 return 等边界问题。
  • 修复类型转换、比较指令、函数调用等相关细节 bug。
  • 修复拼写和注释错误,提升文档质量。

文档改进

  • 完善 Snow-Lang 语法文档,新增 Snow-Lang-Syntax 相关文档。
  • 补充并修正类型转换指令(byte8、short16、long64、float32、double64 等)相关说明。
  • 优化 FunctionParser、L2I、ExpressionUtils、TypePromoteUtils、ComparisonUtils、CmpJumpGenerator 等核心类与方法的注释说明。
  • 统一优化类型转换相关文档,消除歧义,提升可读性。
  • 丰富类和方法的 JavaDoc 注释,解释用途和使用方式。
  • 修改 README,优化项目说明。
  • 优化测试用例及测试配置。

如遇到使用问题,欢迎及时 提交 Issue


相關推薦

2025-07-08

更新内容 新增功能 词法分析器全面状态机化:各类 TokenScanner(字符串、操作符、换行、标识符、注释、数字)重构为基于有限状态机(FSM)实现,提升准确性与可维护性。 支持行内注释解析:新增行内注释的解析能力。

2025-06-29

更新内容 新增功能 SnowVM 指令集扩展:支持更多运算和比较指令,增强了虚拟机的功能。 CLI工具:新增了统一的命令行入口,可以方便地管理和生成项目结构。 64位整数支持:增加对64位整数比较的支持,使得语言更加灵

2025-06-07

的虚拟机与编译器,专为大型语言模型(LLM)量身定制的编程语言。项目链接 1.2 背景与目标读者 自 ChatGPT 3.5 诞生以来,越来越多的个人和企业将 LLM 生成的代码融入日常开发与自动化。然而,实践证明:LLM 生成的代码虽然“

2025-06-13

更新内容 Bug 修复   - 修正比较运算映射时误用 IC_EQ 的问题,已改为 IC_E   - 将 loop 语句和 if 语句中原本使用 int 表示条件的方式,统一改为 boolean 新功能   - 增加 boolean 基础类型支持   - 实现对布尔变量的声

2025-06-15

更新内容 新特性 支持一元逻辑取反 !x 支持一元数值取反 -x 比较运算符(>, <, >=, <=, ==, !=)统一返回 boolean 完善 AST JSON 序列化输出 修复 解决 LXorCommand 可能被截断的问题 补齐 end function 后的空行,防止解

2025-06-05

检查和转换。 一个直观的解决方案就是我们设计一种编程语言,在底层实现上与C++具有一致内存布局与调用约定,从而消除额外的转换开销。 同时,这种编程语言可以在C++嵌入,也支持即时编译,提升效率的同时,也拥有

2023-04-11

本中看到每个解释器的 GIL,Python 3.12 预计将于今年 10 月发布。 然而,实现每个解释器的 GIL 不是一个小任务。一般来说,在多个解释器之间共享的任何可变状态都必须由锁来保护。这意味着,如果要为每一个解释器建立一个单

2025-06-21

华为发布了《鸿蒙编程语言白皮书》V1.0 版本。 白皮书核心内容如下: 一、鸿蒙编程语言整体框架 多语言生态:鸿蒙支持 ArkTS、仓颉和 C/C++三种编程语言,它们相互补充,共同支撑鸿蒙应用生态构建。 ArkTS:动态类型

2024-06-22

华为终端BG软件部总裁龚体宣布,下一代编程语言仓颉今日起正式开启预览。 仓颉编程语言官网:https://developer.huawei.com/consumer/cn/cangjie/ 仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成

2022-06-08

1.0 已发布,这是一门适用于工程、STEM 教育和数据科学的编程语言。主要特性包括: 静态类型语言。 与 Go 完全兼容。 脚本化的风格,以及比 Go 更易于阅读的数据科学代码。 支持字节码后端和 Go 代码生成。在字节

2025-06-21

在华为开发者大会HDC 2025期间,华为宣布仓颉编程语言将于7月30日开源。 2024 年 6 月,华为终端 BG 软件部总裁龚体宣布,下一代编程语言仓颉今日起正式开启预览。官网介绍显示,仓颉编程语言是一款面向全场景智能的新一代

2023-03-02

ch node: 该节点允许消息被路由到不同的流程分支,类似于编程语言中的 switch 语句。 Script node: 该节点允许针对传递的信息运行 JavaScript 代码。 有了这两种节点,Flow Editor 可以创建传统多分支工作流并且更加容易进行节点

2025-06-18

我们深知社区的力量是其生命力的源泉 。 我们不仅发布评测结果,更开放所有评测脚本、数据集和方法论。我们诚挚地邀请您探索 SCALE 的评测结果,利用这一工具为您的研究和工作做出更精准的技术判断。更重要的是,我

2025-06-12

我们很高兴地宣布 Apache SeaTunnel 2.3.11 正式发布!作为一个专注于高性能、可扩展的数据集成平台,SeaTunnel 始终致力于为开发者和数据工程团队提供更强大、更灵活的异构数据处理能力。本次 2.3.11 版本在稳定性、易用性、连接