netcan / netcan.github.io

My blog for something about programming.
https://netcan.github.io/
2 stars 1 forks source link

C++ 元编程之代码生成:设计并实现拓扑结构 DSL | Netcan on Programming #5

Open netcan opened 4 years ago

netcan commented 4 years ago

https://netcan.github.io/2020/08/30/C-%E5%85%83%E7%BC%96%E7%A8%8B%E4%B9%8B%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%EF%BC%9A%E8%AE%BE%E8%AE%A1%E5%B9%B6%E5%AE%9E%E7%8E%B0%E6%8B%93%E6%89%91%E7%BB%93%E6%9E%84DSL/

动机 最近项目设计了不少 DSL,用 DSL 来直观描述领域代码,背后生成 C++ 代码,得益于模板元编程,这个想法得以实现。 之前写了一篇《设计并实现一个拓扑排序 DSL》,展示了 C++ 强大的编译时计算的能力,同时生成最终代码。 不过我想更进一步实战,之前看到一个 C++ 并发框架 taskflow,对标 Intel TBB/OpenMB,性能最强,不过图描述方式通过节点的precede/s