我在考虑创建一种非常适合在移动电话(J2ME)上输入的小型语言,那么,为了在移动电话中运行它,更适合采用哪种编程语言呢?适当指小巧/易于语法、易于在移动电话上输入。
是Lisp吗?还是某种基本/Python/Ruby(我想不是...)?或者另一种新的(你能提出一个新的语法吗?)?
我在考虑创建一种非常适合在移动电话(J2ME)上输入的小型语言,那么,为了在移动电话中运行它,更适合采用哪种编程语言呢?适当指小巧/易于语法、易于在移动电话上输入。
是Lisp吗?还是某种基本/Python/Ruby(我想不是...)?或者另一种新的(你能提出一个新的语法吗?)?
我认为编辑器的设计比语言更重要。例如,支持某种“智能感知”自动完成功能对于节省输入量至关重要。编辑器中的某种语言敏感性也会很有帮助。例如,当C用户键入“for”时,自动完成应该显示填写循环语法的选项:
for (;;) {
}
Forth通常被认为是这类需求的一个合法竞争者。而且它非常简洁。它具有可扩展性、小巧灵活的特点。还内置了小屏幕编辑器。
当我开始构思一门语言时,我会考虑在构思时对我来说哪些特性是重要的。只有确定了对你来说重要的特性,才能得出最佳的语法答案。例如,如果你想要命名参数,它会极大地影响你关于方法调用的设计选择(类似于Objective-C或Python)。
设计一门语言可以是一项非常有趣的任务。我鼓励你退后一步,问自己“我真的喜欢X中这样做吗?”(替换为某种语言名称)。如果那是你一直喜欢的东西,就把它“借鉴”过来。如果不是,就去寻找其他的。创造你所爱的终极混搭,避开你所讨厌的!
Lisp因为有很多()符号,所以打起来可能会比较困难,不过joel.neely的回答展示了一种解决这个问题的方法。
如果你想使用现有的语言,你可能会想看看哪些语言使用的特殊字符最少。
还有屏幕尺寸的问题。语言越冗长,你能够同时放在屏幕上的代码就越少。你的目标设备是什么?带有大屏幕的智能手机(受众有限)还是240x240像素的功能手机?
请记住,你的语言的解释器/虚拟机必须适合小量内存,并且性能可能不是很好。