就技术来说,鸿蒙OS到底是个什么层面的东西?

  1. 依赖类型语言没有能胜任内核开发性能,底层操作要求,实时性要求,又同时满足能找几个到会的人的。比如 Idris 一开始就吹能搞 OS,然后实际 codegen 出来就把宣传变成 Application 了。

  2. 对性能之类要求不高的话,其实 Coq 本来就主打程序生成。你可以把 Coq 看成一个 dependent types PL。

  3. 形式化验证和依赖类型是两码。现在硬件和 OS 验证仍然比较流行的 HOL 就是在用 classical logic。选用 Coq 也只是因为生态工具的原因加上那么一点 constructive logic 能生成程序的原因。原则上,即使用 classical logic/Hoare Logic 也能生成程序,dependent type 说不上是什么必须的东西。

说白了你还没理解 dependent type 是什么,为什么要它,只是听说它很先进,PL 都在搞它。