Если вы используете IPython, вам нужно ввести «foo ??»
In [19]: foo??
Signature: foo(arg1, arg2)
Source:
def foo(arg1,arg2):
#do something with args
a = arg1 + arg2
return a
File: ~/Desktop/<ipython-input-18-3174e3126506>
Type: function
При включении поддержки редактора (вложенные структуры, расположенный с отступом дисплей, балансировка...) затем, некоторая форма LISP была бы относительно проста, чтобы реализовать и использовать. Я видел снимки экрана (но не может найти их теперь) основанного на LISP языка для живого программирования интерактивной производительности. Это использовало расположенный с отступом, теневые прямоугольные области на экране (вместо круглых скобок) для показа вложения структуры.
Я думал бы, что дизайн редактора будет самым большим соображением, не языком. Например, поддержка некоторого "intellisense" - как автозавершение была бы жизненно важна для сохранения thumbstrokes. Некоторая чувствительность языка в редакторе помогла бы много также. Например, когда пользовательские типы C "для" автоматического заполнения должны показать вариант для того, чтобы заполнить синтаксис цикла:
for (;;) {
}
Я не уверен, что легко ввести по мобильному телефону, но язык, который я знаю с большей частью вычислительной мощности на символ, APL. Как источник синтаксических или дизайнерских идей, Вы могли бы предпочесть его современного преемника, язык программирования Дж .
По мобильному телефону необходимо также рассмотреть языки как Царапина (smalltalk), потому что интерфейс неввода был бы прост в использовании.
Также по смартфонам с drag&drop возможностью, это было бы что-то хорошее.
С другой стороны, IDE был бы намного более тяжелым на ЦП и других ресурсах.
Lisp было бы трудно ввести из-за весь () s, хотя ответ joel.neely демонстрирует один способ работать вокруг той проблемы.
Поэтому, если Вы хотите использовать существующий язык, Вы могли бы хотеть посмотреть на которые использование наименее необычные символы.
Затем существует проблема размера экрана. Чем более подробный язык, тем меньшим количеством кода, который Вы сможете соответствовать на экран сразу. К каким устройствам Вы стремитесь? Смартфоны с большими экранами (ограниченная аудитория) или кнопочные телефоны на 240x240 пикселей?
Принимают во внимание, что interpreter/VM для Вашего языка должен будет вписаться в небольшой объем памяти, и производительность не может быть очень хорошей.
Forth обычно считают законным претендентом на эти виды требований. И это почти столь кратко, как может быть предположен. Расширяемый, маленький и покорный. Встроенный маленький экранный редактор, также.
Brainfuck имеет только 8 символов - очень легкий ввести по мобильному телефону.
Конечно, понимая и делая материал с ним... не настолько легкий. Но это удовлетворяет требование....
Когда я иду о видении во сне языка, я думаю о том, какие функции важны для меня в то время, когда я мечтаю. Только, после того как Вы выясняете, какие функции важны для Вас, может Вы придумывать лучший ответ на какой синтаксис. Например, если Вы хотите названные параметры, это значительно влияет на Ваше проектное решение о том, как вызовы метода смотрят (а-ля Objective C или Python).
Разработка языка может быть действительно забавной задачей. Я поощряю Вас отступать и спрашивать себя, "Мне действительно нравится, как это сделано в X?" (заменяющий некоторым именем языка). Если это - что-то, что Вы всегда любили, кража это . В противном случае посмотрите в другом месте. Создайте свой окончательный мэшап того, что Вы любите и не учитываете то, что Вы ненавидите!
Основной очень легко.
я избегал бы шепелявости. Если Вы не хотите дать Вашим мобильным пользователям головную боль сверх головной боли, они имеют от радиоволн.
Я являюсь автором именно такого языка: Hecl, на http://www.hecl.org . Чтобы упростить приложения, я также создал сайт, на котором вы можете создавать простые приложения через веб-интерфейс: http://www.heclbuilder.com . Я также написал статью, в которой обсуждалась реализация языка:
http://www.welton.it/articles/hecl_implementation
Другие языки, на которые стоит обратить внимание, включают Lua и Javascript, оба из которых имеют мобильные реализации. .
Если вы хотите суперкомпактность, попробуйте nano-False http://www.aldweb.com/pages/winikoff/#false
Это не очень удобно, хотя и более того, чем намеренно болезненные Brainfuck и Whitepace. Думайте об этом как о Forth с простым синтаксисом, сделанным более кратким; -)
Я нашел Quartus Forth достаточно простым в использовании, при условии, что вы можете мыслить стеками, и с большей поддержкой Intellisense для API это было бы были гораздо более продуктивными. Для создания прототипов небольших алгоритмов на Palm я предпочел Plua или Lispme . Среда LispMe в любом случае заслуживает изучения, потому что она обеспечивает хорошее использование списков для поиска ключевых слов и упрощает программирование графического интерфейса
. Важное решение, которое вы должны принять, состоит в том, ожидаете ли вы, что пользователи будут просто использовать цифровую клавиатуру телефона или смогут вводить текст. разумные приближения к полноценной клавиатуре. Одним из огромных преимуществ Palm была высококачественная полноразмерная складная клавиатура, которой я, к сожалению, скучаю (и надеюсь, что кто-то сделает аксессуар для iPhone для подключения). Если у вас нет полноценной клавиатуры, используйте селекторы для глаголов, чтобы они могли использовать действия выбор вместо того, чтобы вводить слова. Рассмотрим количество кода, набранного в традиционном коде для классов и методов фреймворка, по сравнению с кодом пользователя.
Одним из огромных преимуществ Palm была высококачественная полноразмерная складная клавиатура, которой я, к сожалению, скучаю (и надеюсь, что кто-то сделает аксессуар для iPhone для подключения). Если у вас нет полноценной клавиатуры, используйте селекторы для глаголов, чтобы они могли использовать действия выбор вместо того, чтобы вводить слова. Рассмотрим количество кода, набранного в традиционном коде для классов и методов фреймворка, по сравнению с кодом пользователя. Одним из огромных преимуществ Palm была высококачественная полноразмерная складная клавиатура, которой я, к сожалению, скучаю (и надеюсь, что кто-то сделает аксессуар для iPhone для подключения). Если у вас нет полноценной клавиатуры, используйте селекторы для глаголов, чтобы они могли использовать действия выбор вместо того, чтобы вводить слова. Рассмотрим количество кода, набранного в традиционном коде для классов и методов фреймворка, по сравнению с кодом пользователя.