Создание мобильного языка программирования

Я думаю о создании небольшого языка, который очень легко печатать на мобильном телефоне (J2ME), Каков более подходящий язык для реализации, чтобы запустить его внутри мобильного телефона (всегда j2me)? Соответствующее значение, малый/простой синтаксис, легко набираемый на мобильном телефоне.

Это lisp? Какой-то базовый /Python/Ruby (я думаю, не...)? Или еще один новый (можете ли вы предложить новый синтаксис?)?

Ответы

Ответ 1

Я являюсь автором такого языка: Hecl, http://www.hecl.org. Чтобы упростить приложения, я также создал сайт, на котором вы можете создавать простые приложения через веб-интерфейс: http://www.heclbuilder.com. Я также написал статью, в которой обсуждалась реализация языка:

http://www.welton.it/articles/hecl_implementation

Другие языки, на которые стоит обратить внимание, включают Lua и Javascript, оба из которых имеют мобильные реализации.

Ответ 2

Если вы включаете поддержку редактора (структуры вложенности, отступы, балансировка,...), то некоторая форма LISP будет относительно простой для реализации и использования. Я видел скриншоты (но не могу найти их сейчас) на языке LISP для интерактивного интерактивного программирования. Он использовал отступы, заштрихованные прямоугольные области на экране (вместо круглых скобок), чтобы показать вложенность структуры.

Ответ 3

Я бы подумал, что дизайн редактора будет самым большим соображением, а не языком. Например, поддержка какой-то "интелектуальной" автозаполнения будет жизненно важна для сохранения больших пальцев. Некоторая чувствительность к языку в редакторе тоже очень помогла бы. Например, когда пользователь C вводит "для" автозаполнения, должен показать параметр для заполнения синтаксиса цикла:

   for (;;) {
   }

Ответ 4

Возможно, вы захотите посмотреть в Hecl: http://www.hecl.org/

Ответ 5

Я не уверен, что легко набирать на мобильном телефоне, но язык, который я знаю с максимальной вычислительной мощностью на символ, APL. В качестве источника синтаксических или дизайнерских идей вы можете предпочесть его современному преемнику, J language language.

Ответ 6

На мобильном телефоне вам также следует рассмотреть такие языки, как Scratch (smalltalk), потому что интерфейс без ввода текста будет легким для использования.

Также на смартфонах с возможностью drag & drop это будет что-то хорошее.

С другой стороны, IDE будет намного тяжелее для CPU и других ресурсов.

Ответ 7

Forth обычно считается законным претендентом на эти требования. И это примерно так же сложно, как можно себе представить. Расширяемость, малая и податливая. Встроенный редактор небольших экранов.

Ответ 8

Если вы хотите суперкомпакт, попробуйте nano-False http://www.aldweb.com/pages/winikoff/#false

Это не очень удобно, хотя и больше, чем умышленно болезненные Brainfuck и Whitepace. Подумайте об этом как о Forth с более легким синтаксисом, -)

Я нашел Quartus Forth достаточно прост в использовании, если вы можете думать в стеках, и с большей поддержкой Intellisense для API он будет иметь были гораздо более продуктивными. Для прототипирования небольших алгоритмов на Palm я предпочитал Plua или Lispme. В любом случае, среда LispMe заслуживает изучения, поскольку она обеспечивает хорошее использование списков для поиска ключевых слов и упрощенного программирования графического интерфейса.

Большое решение, которое вы должны решить, заключается в том, ожидаете ли вы, что пользователи просто используют цифровую клавиатуру телефона или могут ввести разумные приближения к полной клавиатуре. Одним из огромных преимуществ Palm стала высококачественная полноразмерная складная клавиатура, о которой я, к сожалению, пропустил (и надеюсь, что кто-то сделает аксессуар iPhone для подключения). Если у вас нет полной клавиатуры, используйте селекторы для глаголов, чтобы они могли использовать действия выбора, вместо того, чтобы вводить слова. Рассмотрим количество кода, набранного в традиционном коде для классов и методов каркаса, по сравнению с кодом пользователя.

Ответ 9

Когда я мечтаю о языке, я думаю о том, какие функции важны для меня в то время, когда я мечтаю. Только после того, как вы выясните, какие функции важны для вас, вы можете придумать лучший ответ на какой синтаксис. Например, если вам нужны именованные параметры, это сильно влияет на ваш выбор дизайна, как выглядят вызовы методов (a la Objective-C или Python).

Разработка языка может быть очень интересной задачей. Я призываю вас отступить и спросить себя: "Мне действительно нравится, как это делается в X?" (заменяя некоторое имя языка). Если это то, что ты всегда любил, укради его. Если нет, посмотрите в другом месте. Создайте свой окончательный mashup того, что вы любите, и оставьте то, что вы ненавидите!

Ответ 10

Lisp было бы сложно напечатать из-за всех() s, хотя joel.neely answer демонстрирует один из способов решения этой проблемы.

Итак, если вы хотите использовать существующий язык, вы можете посмотреть, какие из них используют наименее необычные символы.

Тогда возникает проблема с размером экрана. Чем более многословным является язык, тем меньше кода вы сможете сразу поместить на экран. На какие устройства вы нацеливаетесь? Смартфоны с большими экранами (ограниченная аудитория) или телефоны с поддержкой 240x240 пикселей?

Имейте в виду, что интерпретатор/виртуальная машина для вашего языка будет вписываться в небольшой объем памяти, и производительность может быть не очень хорошей.

Ответ 11

Brainfuck имеет только 8 символов - очень легко ввести на мобильный телефон.

Конечно, понимание и работа с ним... не так просто. Но он удовлетворяет требованию....

Ответ 12

Basic очень просто.

Я бы держался подальше от lisp. Если вы не хотите дать своим мобильным пользователям головную боль поверх головной боли у них из-за радиоволн.