创建一种移动编程语言

14

我在考虑创建一种非常适合在移动电话(J2ME)上输入的小型语言,那么,为了在移动电话中运行它,更适合采用哪种编程语言呢?适当指小巧/易于语法、易于在移动电话上输入。

是Lisp吗?还是某种基本/Python/Ruby(我想不是...)?或者另一种新的(你能提出一个新的语法吗?)?


2
+1 只是因为这是一个好主意! - Paul Dixon
12个回答

12

+1 为编写Hecl和Hecl实现文档。恭喜恭喜!(我需要一个脚本语言来完成我的项目,它是我需求中最好的选择,但遗憾的是由于公司政策,我无法给你们署名,所以只能实现其他的东西) - JCasso
2
哇,听起来像是一个极其糟糕的开源政策 - Apache许可证并不要求你在主页上覆盖Hecl标志或任何类似的东西 - 只需要简单地在某个地方添加一条注释即可。而为此,你可以免费获得整个编程语言,甚至可以将其包含在商业产品中并进行销售!尽管如此,我还是很高兴它能够作为一个模型帮助到你。 - David N. Welton

6
如果你想包含编辑器支持(嵌套结构,缩进显示,平衡等),那么实现和使用某种形式的LISP相对容易。我曾经看到过一个基于LISP的语言的屏幕截图(但现在找不到了),用阴影矩形区域(而不是括号)来显示结构的嵌套,用于实时交互编程。

6

我认为编辑器的设计比语言更重要。例如,支持某种“智能感知”自动完成功能对于节省输入量至关重要。编辑器中的某种语言敏感性也会很有帮助。例如,当C用户键入“for”时,自动完成应该显示填写循环语法的选项:

   for (;;) {
   }

1
我必须同意这一点。最好的移动应用程序总是取决于用户实际上需要输入多少内容。编程也不例外。 - Fostah

4

3

我不确定在手机上打字最容易的语言是什么,但我知道每个字符具有最大计算能力的语言是APL。作为一种语法或设计思想的来源,你可能更喜欢它的现代继承者——J编程语言


我其实认为那不是一个好主意。APL有各种不在ASCII中的字符,并且通常使用特殊键盘进行操作。J通过使用双字母符号(额外的字符)解决了这个问题,但这违背了你在这里使用APL的初衷。 - T.E.D.
(尽管不至于被投票否决,但并不是一个坏主意。至少你正在沿着正确的思路考虑...) - T.E.D.

3
在手机上,你还应该考虑像Scratch(smalltalk)这样的语言,因为非打字界面会更容易使用。
另外,在具有拖放功能的智能手机上,这也是一个不错的选择。
另一方面,IDE将占用更多的CPU和其他资源。

3

Forth通常被认为是这类需求的一个合法竞争者。而且它非常简洁。它具有可扩展性、小巧灵活的特点。还内置了小屏幕编辑器。


当然,它与手机的API集成可能有限...但它是一种易于实现、相当有趣的语言(我目前正在用Java编写解释器)。 - kdgregory
Quartus Forth与整个Palm SDK完全集成,甚至允许您在设备上编译独立应用程序!http://www.quartus.net/products/forth/ - Andy Dent

2
如果您想要超紧凑的语言,可以尝试nano-False。http://www.aldweb.com/pages/winikoff/#false。虽然它不是很易用,但比Brainfuck和Whitespace更容易理解。可以将其视为具有易于理解的语法的Forth语言更加简洁版。我发现Quartus Forth相对容易使用,只要你能够思考栈,并且如果API有更多Intellisense支持,那么它将会更加高效。在Palm上原型设计小算法时,我更喜欢PluaLispme。无论如何,值得学习LispMe环境,因为它提供了良好的列表以查找关键字,从而简化了GUI编程。您需要做出的重要决策是,是否希望用户仅使用电话数字键盘,还是能够输入合理的近似全键盘。Palm的巨大优势之一是高质量的全尺寸折叠键盘,我很遗憾地错过了它(并希望有人制作一个iPhone附件连接)。如果您没有全键盘,请使用动词选择器,以便他们可以使用选择操作而不必输入单词。请考虑传统代码中框架类和方法所输入的代码量与用户代码相比。

1

当我开始构思一门语言时,我会考虑在构思时对我来说哪些特性是重要的。只有确定了对你来说重要的特性,才能得出最佳的语法答案。例如,如果你想要命名参数,它会极大地影响你关于方法调用的设计选择(类似于Objective-C或Python)。

设计一门语言可以是一项非常有趣的任务。我鼓励你退后一步,问自己“我真的喜欢X中这样做吗?”(替换为某种语言名称)。如果那是你一直喜欢的东西,就把它“借鉴”过来。如果不是,就去寻找其他的。创造你所爱的终极混搭,避开你所讨厌的!


1

Lisp因为有很多()符号,所以打起来可能会比较困难,不过joel.neely的回答展示了一种解决这个问题的方法。

如果你想使用现有的语言,你可能会想看看哪些语言使用的特殊字符最少。

还有屏幕尺寸的问题。语言越冗长,你能够同时放在屏幕上的代码就越少。你的目标设备是什么?带有大屏幕的智能手机(受众有限)还是240x240像素的功能手机?

请记住,你的语言的解释器/虚拟机必须适合小量内存,并且性能可能不是很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接