【发布时间】:2009-11-23 15:41:50
【问题描述】:
我和我的朋友正处于为他的论文创建专为游戏编程设计的特定领域语言的第一阶段。
该语言将是相当低级的,它将具有类似 C 的语法,可选的垃圾收集,并且将面向内存或处理能力很少的系统(例如 Nintendo DS),但应该足够强大方便PC开发。 它不会是一种脚本语言,而是一种编译语言,但由于我们不想花几个月时间编写一个普通的编译器,所以第一个实现基本上是一个 LanguageName-to-C 翻译器,以 TCC 或 GCC 作为结尾编译器。
现在,我有一个问题要问你们所有的游戏程序员:
您希望在这种语言中看到什么?哪些功能、实现和语法方面最适合它?应该避免什么?
编辑:
我们已经想到的一些事情:
- 基于状态的对象 - 对象可以存在于它的一种状态(或子状态)中
- 事件和函数 - 事件不必存在就可以被调用,并且可以冒泡
- 有限的动态分配和指针支持 - 我们希望它尽可能安全
- 支持对象合成(Hero 由 Actor、Hurtable、Steerable 等(动态)组成)
- 状态中的“资源”,在状态开始/结束时自动加载和卸载(例如,OpenGL 纹理对象是资源)
- 对本地化和序列化的基本支持
- 一种可快速解析的语法
- 我们希望使语言尽可能一致:所有内容都作为值传递,每个声明都具有可预测的语法(例如,
function retType name(type arg) is (qualifier, list) { };没有const、static、public限定符,除了限定符中的任何地方列表)等。
【问题讨论】:
-
Clojure 有很多我很欣赏的特性,尤其是在函数式编程方面。可能是件好事。
标签: programming-languages language-design dsl