1 分•作者: todsacerdoti•7 天前
返回首页
一周热榜
1 分•作者: thatsoulyguy•5 天前
Hi HN,
我一直在开发一种名为 XXML 的实验性编程语言。这个项目源于我在系统语言中反复遇到的一个困境:
* 具有强所有权的语言往往避免运行时反射。
* 具有丰富反射功能的语言通常依赖于垃圾回收,或者放弃内存保证。
* 编译时代码生成通常需要一个单独的宏语言。
我想探索一下,这些权衡是否真的有必要。
**XXML 的目标**
XXML 是一种静态类型的原生语言,它:
* 使用显式所有权和借用(没有垃圾回收器)
* 支持运行时反射,同时遵守所有权规则
* 允许使用普通语言结构进行编译时代码生成,而不是宏
* 编译成 LLVM IR 并生成原生二进制文件
反射 API 受到约束,因此不安全的所有权操作会在编译时被拒绝。目标不是“不惜一切代价追求动态性”,而是在不失去安全性的前提下进行内省。
**它有什么用处(目前)**
我正在探索一些具体的用例:
* 原生应用程序的安全插件/模块系统
* 自动生成的序列化(例如,JSON/RPC),无需宏
* 可以推断用户类型的调试和检查工具
* 受益于结构化语法的声明式领域(UI/布局/资源图)
**它不是什么**
这还处于早期阶段,绝对不适合生产环境:
* 生态系统很小
* 语言仍在发展
* 文档和工具不完整
我主要对以下人员的反馈感兴趣:
* 编译器开发者
* 语言运行时开发者
* 处理大量序列化或插件边界的系统开发者
**代码**
GitHub 仓库:
[https://github.com/ThatSoulyGuy/XXMLCompiler](https://github.com/ThatSoulyGuy/XXMLCompiler) 或 [https://xxml-language.com](https://xxml-language.com)
我特别欢迎关于以下方面的批评:
* 所有权模型
* 反射安全边界
* 这个设计在哪些方面存在根本性缺陷
感谢您的阅读——很乐意回答问题。
1 分•作者: nomilk•6 天前
1 分•作者: PaulHoule•5 天前
1 分•作者: RickJWagner•5 天前
1 分•作者: Areibman•6 天前
1 分•作者: surprisetalk•7 天前
1 分•作者: pabs3•5 天前
1 分•作者: riemannzeta•5 天前
1 分•作者: salkahfi•5 天前
1 分•作者: ridiculous_leke•5 天前
1 分•作者: nsoonhui•6 天前
1 分•作者: surprisetalk•7 天前
1 分•作者: fanf2•7 天前
1 分•作者: priyanshujain•5 天前
1 分•作者: derHackerman•6 天前
1 分•作者: surprisetalk•7 天前
1 分•作者: zyh888•5 天前
1 分•作者: mgh2•5 天前
1 分•作者: XzetaU8•6 天前