我最近又重新看了一眼Haxe,并意识到我以前忽略了它的一些优雅.但我想它仍然缺乏开发人员的可见性.
所以我的问题是,这里有人用它来制作吗?如果是这样,你如何使用它?你遇到的问题或困难是什么?你推荐它用于未来的项目吗?
我正在设计一种语言.首先,我想决定要生成什么代码.该语言将具有类似于javascript的词法闭包和基于原型的继承.但我不是gc的粉丝,尽量避免.所以问题是:有没有一种优雅的方法来实现闭包而不需要在堆上分配堆栈帧并将其留给垃圾收集器?
我的第一个想法:
我不会使用高级语言或遵循任何调用约定,所以我可以尽可能多地粉碎堆栈.
(编辑:我知道引用计数是垃圾收集的一种形式,但我使用gc的更常见的含义)
我试图找到一个算法从0到2 n -1 计数,但他们的位模式反转.我只关心一个单词的n LSB.你可能已经猜到我失败了.
对于n = 3:
000 -> 0
100 -> 4
010 -> 2
110 -> 6
001 -> 1
101 -> 5
011 -> 3
111 -> 7
Run Code Online (Sandbox Code Playgroud)
你明白了.
伪代码中的答案很棒.欢迎任何语言的代码片段,首选无位操作的答案.
请不要在没有简短说明或指向源的指针的情况下发布片段.
编辑:我忘了添加,我已经有一个天真的实现,它只是反转计数变量.从某种意义上说,这种方法并不算数.
不耐烦的总结:我正在寻找关于为公共语言结构生成代码但不解析的好参考.
我对编程语言很感兴趣,并尝试尽可能多地阅读文献.但是大多数都是从功能和理论的角度来讨论这个话题,我觉得很难理解,更不用说实现这些想法了.
所以问题是; 您建议哪些资源以更加迫切和实用的方式涵盖主题的编程语言实现?
例如,我发现" Lua 5.0的实现 "论文非常有启发性.
请注意,我不是在寻找有关解析或标记的文章.