Hacker News 中文摘要

RSS订阅

我用M&M豆制作了一门编程语言 -- I made a programming language with M&Ms

文章摘要

作者突发奇想,用M&M糖果的排列组合创造了一门编程语言。故事源于他打翻糖果时偶然形成的箭头图案,激发了他将糖果颜色、位置与代码结构关联的灵感。这个异想天开的项目展示了如何将日常物品转化为可执行程序。

文章总结

标题:我用M&M巧克力豆创造了一门编程语言

文章讲述了作者如何将洒落的M&M巧克力豆排列成可执行代码,从而创造出一门名为MNM Lang的编程语言。以下是主要内容:

  1. 灵感来源
    作者在撕开一包印度版M&M糖果(GEMS)时,糖果洒落形成箭头形状,激发了他用糖果排列编程的想法。

  2. 语言设计核心

  • 使用6种颜色(B/G/R/Y/O/N)代表不同指令类型(如蓝色控制流、绿色变量操作等)
  • 操作数通过同色糖果数量表示(如RRRR=3)
  • 将视觉结构与运行时数据分离:糖果布局存储在.mnm文件,字符串等数据放在JSON中
  1. 技术实现亮点
  • 编译器会将代码转换为由糖果精灵图组成的PNG图像
  • 包含逆向解编译器,可从图像还原源代码
  • 开发了照片解码功能,能识别轻微模糊/倾斜的糖果照片
  • 使用AI生成糖果精灵图,并通过脚本进行标准化处理
  1. 实际应用展示
  • 实现了hello_world、阶乘计算、FizzBuzz等示例程序
  • 提供浏览器游乐场,支持实时编辑、运行和图像解码
  • 包含AST查看器和执行跟踪器,使糖果代码具备真实编程工具的体验
  1. 项目特色
  • 在保持趣味性的同时确保功能性,如:
    • 用糖果行表示指令,集群表示令牌
    • 通过严格控制图像几何实现无损往返
    • 对照片解码设置合理预期(需整洁背景)
  • 包含完整的测试体系,覆盖解析器、运行时、图像处理等
  1. 获取方式
    项目已开源(GitHub: mufeedvh/mnmlang),包含解释器、示例程序和本地游乐场,可通过uv run mnm serve命令快速体验。

这个项目完美融合了奇思妙想与工程技术,通过糖果的排列组合实现了真正的图灵完备编程语言,堪称"既能编译又能吃的代码"典范。

评论总结

以下是评论内容的总结:

正面观点

  1. 有趣且有创意

    • "This is what HN is all about" (swaraj)
    • "this is so cool!" (nathaah3)
  2. 激发童趣与编程热情
    作者分享初衷是为了找回编程的乐趣:"I felt like I started losing the childlike wonder/whimsy I once had with programming." (mufeedvh)
    其他用户表示共鸣:"Awesome project!" (MASNeo)

中立/幽默观点

  1. 调侃潜在问题

    • "It’s funny until one guy spills his bag of M&M’s and accidentally deletes the production database." (bronlund)
    • "It's all fun and games until some fat bastard like me decides he wants a snack." (bigstrat2003)
  2. 无厘头联想

    • "What color is your function?" (amelius)
    • "Am I allowed to use the term psychopath in the most loving, even inspired, way?" (avatardeejay)

技术讨论

  1. 改进建议

    • 提问是否可用CNN优化识别:"do you think a lightweight CNN trained on synthetic candy layouts would outperform the deterministic decoder?" (filozopdasha)
  2. 细节疑问

    • "why/where is 000000 defined as newline?" (xnorswap)

其他关联

  1. 经典作品类比

    • 提到xkcd漫画:"made me think of this classic xkcd" (MostlyStable)
    • 推荐类似项目:"check out efghij" (Timwi)
  2. 玩梗与未来想象

    • "Looking forward to the first LLM&M coding agent" (rhoopr)
    • "but can it run Doom?" (tapeloop)

总结:评论普遍认为项目有趣且富有创意,部分用户提出技术改进或安全隐患的调侃,也有少量细节讨论和关联推荐。整体氛围轻松,体现HN社区对非常规项目的包容性。