基于 Python 的新兴领域专用语言(Python-based DSLs)

主题
  • 李枫 独立开发者

    先后就职于摩托罗拉, 三星等 IT 公司, 现为独立开发者。在移动平台上积累了十年以上的研发经验, 近几年主要专注于云计算/边缘计算基础设施(包括 AI, Virtualization, Program Runtime, Network, 5G, RISC-V, EDA 等软硬件领域)。

    是《灰帽黑客 第4版:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术》(ISBN:9787302428671)和《恶意网络环境下的Linux防御之道 》(ISBN: 9787115544384)中文版的主要译者。

    对技术创新具有浓厚的兴趣和实践能力,热心参与开源社区的各种活动,多次参加各类 IT 会议并作技术分享。之前做过的各种技术演讲(皆为第一作者)可见于以下链接:

    https://github.com/XianBeiTuoBaFeng2015/MySlides

    lifeng
2:50 p.m. - 3:20 p.m. 分会场 C(108 教室)

由于具有提高生产率、改善可读性、更好的可维护性等优点,领域专用语言(DSL)在现代软硬件开发中正变得越来越重要。而 Python 所具备的易学易用等特点以及强大的元编程能力和丰富的生态,使得更容易利用它来构造各种 DSL。

本议题将着重探讨 DSL 的设计与应用,特别以时下三种基于 Python 的新兴 DSL 为例,提纲如下:

  1. 背景
    1. DSL 技术综述;
    2. 我们的测试台;
  2. Triton 语言(用于编写异构并行计算中的内核的 Python DSL,基于 MLIR 实现)
    1. 架构与设计;
    2. 示例解析及其在测试台上的实践;
  3. Mojo 语言(面向 AI 编程的 Python 超集,由 LLVM 之父创建,结合了 Python 和 Rust 的优点)
    1. 设计思想;
    2. llama3.mojo 项目及其在测试台上的实践;
  4. Amaranth 语言(基于 Python 的现代硬件描述语言)
    1. 使用 Amaranth 进行硬件开发;
    2. Amaranth 工具链及其在测试台上的实践。

另附议题涉及的主要技术栈参考链接如下:

  1. https://en.wikipedia.org/wiki/Domain-specific_language
  2. https://en.wikipedia.org/wiki/Python_(programming_language)
  3. https://triton-lang.org/
  4. https://mlir.llvm.org/
  5. https://www.modular.com/mojo
  6. https://en.wikipedia.org/wiki/Rust_(programming_language)
  7. https://github.com/Terapines/llama3.mojo
  8. https://amaranth-lang.org/

演示文稿:3-李枫-PyConChina2024__Python-based emerging DSLs__FengLi-20241123