5

我已经看到一些关于 stackoverflow 用户最喜欢的深奥(或不是)编程语言的问题。还有关于语言实施的问题。但是,我很想知道你们中是否有人真正编写过自己的编程语言(无论是否深奥),我也想知道它是什么样子的。

我喜欢阅读并尝试学习新的和创造性的语言,所以我认为很高兴看到 stackoverflow 社区提供的东西。:)

几年前我写了一个好玩的。

4

4 回答 4

4

我已经编写了一套 7 种“微型”教学语言。每一个都旨在说明以下完整编程语言之一的关键思想:

  • C 的无类型版本
  • 方案
  • C
  • 系统 F
  • 机器学习
  • 短暂聊天
  • 序言

这些语言故意看起来非常相似,以便学生只看到本质上的差异,而不是无缘无故的差异。我还想做两个,基于 Haskell 和 CLU。

Sam Kamin有最初的想法,并在设计上提供了很多帮助。

于 2010-02-11T03:04:07.620 回答
2

当然是我的蟒蛇细菌的操作码

于 2010-02-11T03:18:36.937 回答
2

我一直在研究 DIFL,它旨在作为一种声明性文本冒险语言,但随着时间的推移变得不那么声明性了。它的主要特点是一个非常松散的对象系统和一个基于多方法的动作系统。(好吧,假设我完成了它,它的主要功能将是。)

于 2010-02-11T03:24:59.627 回答
2

我尝试编写的第一批语言之一是 MIDI 文件汇编语言。您将定义速度和乐器库,然后定义许多音符线(音符名称、当前小节的开始节拍、持续时间、可选重音),以小节线(“meas\n”)和动力学(ppp、pp、p、mp、mf、f、ff、fff)。

如果没有宏语言来重复序列、更改频道和铺设新曲目,它就无法真正使用。这需要我的第一个哈希表,以及一个棘手的交叉手指调用 qsort 以按时间顺序交错通道(由每个 Note-On/Note-Off 事件隐式携带)。

一年后我再次使用它时,它已成为位腐病的受害者。经过一番努力,我重新发现 sort-and-output-everything 函数是由显式 EOF 代码触发的。一首宏观扩展的歌曲很容易有 20,000 行,而关键的 EOF 行有 1/20000 的机会在试图找出到底出了什么问题时被发现!

我很高兴所有证据都安全地藏在微波炉推车下方的死 CPU 中。恐怖片!!

编辑:进一步思考后,关于 MIDI 格式有一些有趣的事情。它具有可变长度整数类型(IIRC 使用符号位来表示最后一个字节)。它是面向字节的,旨在运行 9 条并行线;它有一些我从未理解过的疯狂时间同步的东西。但我所关心的只是 Windows95 媒体播放器可以解释输出(它甚至可以使用声卡中内置的 8 位通用 MIDI 音色库;镲片被严重失真了)。

于 2011-09-22T07:33:50.547 回答