Forth
http://fforum.winglion.ru/

Frt-sci -- Форт для мобильных телефонов
http://fforum.winglion.ru/viewtopic.php?f=38&t=2198
Страница 1 из 5

Автор:  sergey.f77 [ Пт июл 10, 2009 20:35 ]
Заголовок сообщения:  Frt-sci -- Форт для мобильных телефонов

Я хочу поделиться своей форт-системой и обсудить, как её можно улучшить.
Захотелось мне заставить мобильный телефон выполнять научные расчёты. Для входного языка выбрал, естесвенно, Форт (а интерпретатор писал на java ME). Долго писал, года два, потому что некогда всё было. А вот достигла система некоторого "порога полезности" и мне показалось, что может она не только мне пригодится. Решил опубликовать. Только Форт у меня получился нестандартный :D

В общем, завёл для этой системы сайт и выложил все материалы туда (не сочтите за спам), http://sergey-frt.narod.ru/frt_sci.html

Хотелось бы услышать комментарии и конструктивную критику.

Пользовались этой системой пока мало народу -- я показал её только паре друзей. Долго писал документацию, но друзей форт всё равно не зацепил.

Автор:  Hishnik [ Пт июл 10, 2009 23:18 ]
Заголовок сообщения: 

Форт для мобильного телефона - это само по себе интересно. Конечно, ввод с клавиатуры все же хотелось бы, чтобы не зависеть от PC, а переходить на него просто для удобства (я, например, люблю qwerty-коммуникаторы и был бы очень рад возможности потихоньку ковырять форт-программки где-нибудь в дороге). Насколько я понял, возникли некоторые сложности с CREATE, отсюда и ограниченная поддержка переменных? Скобки разных видов в конструкциях управления, конечно, имеют право на существование и даже создают определенный шарм. Дело даже не в том, что они уже задействованы, а в том, что могут потребоваться другие конструкции управления, и придется что-нибудь придумывать. А в целом очень даже интересно получилось.

Автор:  sergey.f77 [ Пт июл 10, 2009 23:41 ]
Заголовок сообщения: 

Спасибо.
Ввод с клавиатуры скоро появится в каком-то виде, может, не самом удобном: я планирую сделать, чтобы программки можно было загружать не только из мидлета, но и из отдельных файлов. Тогда можно будет редактировать их в любом редакторе прямо на телефоне.
CREATE можно реализовать. А вот добавление пользовательских IMMEDIATE-слов не получится без переписывания значительной части кода. Т.е. сначала полноценный форт не планировался и это должен был быть вообще "программируемый калькулятор", какое-то подобие советских ПМК. Отсюда и ограничение с переменными. "Ядро" системы изначально было спроектировано несколько неудобно для реализации слов стандартного форта. Если у меня хватит сил переписать ядро, эта система станет ближе к стандарту.
Насчёт скобок я долго сомнвался. Причин две: наглядность -- скобки не сливаются с текстом, и малый размер экрана телефона. Я брал пример с языка J (потомка APL), где почти все "слова" -- это 1 или 2 имвола, поэтому программы получаются очень компактными.

Автор:  Kamikaze [ Пт июл 10, 2009 23:48 ]
Заголовок сообщения: 

Ага, идея со скобками - блеск!

Автор:  VoidVolker [ Сб июл 11, 2009 00:22 ]
Заголовок сообщения: 

Kamikaze писал(а):
Ага, идея со скобками - блеск!

Если бы не тот факт, что [ ] используются для переключения режимов компиляция/интерпретация. А так да, идея мне тоже понравилась.

Автор:  Hishnik [ Сб июл 11, 2009 00:28 ]
Заголовок сообщения: 

Для телефона пользовательские IMMEDIATE-слова, конечно, не так уж нужны. Просто подумалось, что часть программ с PC можно было бы запускать на телефоне... а для этого придется переписывать их на скобки :( Вот если бы стандартные для Форта структуры управления тоже можно было использовать...

В целом вырисовывается интересное применение такого транслятора. Пользователь-фортер может написать себе маленькие скриптики для полюбившихся ему функций, не прибегая для этого к отдельному и специальному средству разработки. Что-то можно дописать прямо на телефоне, если возникнет идея. Но здесь важно, чтобы общение с телефоном не заставляло писать на совсем другом языке, который даже в части базовых слов нельзя прямо перенести на PC. Но идея со скобками все равно не лишена смысла, поскольку обоснование "сложность набора на телефоне" вполне весомо.

Автор:  mOleg [ Сб июл 11, 2009 07:19 ]
Заголовок сообщения: 

интересно, но мне скобки не понравились 8(
выглядит во-первых не привычно, во-вторых, перекрывает уже используемые варианты примененения скобок:
{ } - для работы с локальными переменными
[ ] - для переключения режима state

насчет стека возвратов вопрос - можно ли его пользовать для создания собственных конструкций управления?
как минимум возможно ли такое:
['] something >R .. EXIT

ну, и отсутствие DOES> печально 8(

Автор:  mOleg [ Сб июл 11, 2009 07:35 ]
Заголовок сообщения: 

да, вот какой вопрос появился, а симулятор какой есть, на котором можно пробовать работу, не напрягая мобильник свой?

Автор:  vikt [ Сб июл 11, 2009 10:08 ]
Заголовок сообщения: 

да, вот какой вопрос появился, а симулятор какой есть, на котором можно пробовать работу, не напрягая мобильник свой?

Я использую эмулятор midp2exe Если набрать в гугле
выдаст много вариантов скачать. В линухе прекрасно работает через wine.

У меня есть подобная разработка, на базе
http://www.usebox.net/jjm/sfi/

к ней добавил сохранение текстов в RMS,
Загрузка текстов из интернет
Работа с Real и с памятью и с Canvas

Весьма успешно используется в практичеких задачах, однако программы простейшие.
Если есть заинтересованность , с удовольствием выложу результаты и исходные тексты,
правда мой уровень програмирования любительский :oops:

Автор:  mOleg [ Сб июл 11, 2009 10:15 ]
Заголовок сообщения: 

ух, может еще есть для мобильников разработки?

для этого, мне кажется, не жалко отдельный раздел выделить! (Администратор!) ;)

Автор:  vikt [ Сб июл 11, 2009 10:42 ]
Заголовок сообщения: 

Есть еще неплохая электронная таблица для j2me c лиспом внутри
К сожалению лисп здесь не позволяет работать с массивами, что
снижает возможность написание более менее сложных программ.
Автор видимо бросил разработку
Как найду ссылки, отредактирую сообщение.

Автор:  VoidVolker [ Сб июл 11, 2009 18:44 ]
Заголовок сообщения: 

А доступны ли какие-нибудь функции самого телефона? Например время, режим?

Автор:  sergey.f77 [ Сб июл 11, 2009 23:42 ]
Заголовок сообщения: 

Постараюсь попорядку.

Цитата:
Вот если бы стандартные для Форта структуры управления тоже можно было использовать

Да, я понял что надо двигаться в этом направлении. Проблема ещё в том, что java сильно типизированный язык. Поэтому чтобы сделать форт-интерпретатор нужно приделать длинные ходули-костыли, особенно если хочется floating point :( А если костыли сделать короткими, результата можно достичь быстрее, но скорость упадёт сильно -- раза в 4.

Цитата:
['] something >R .. EXIT

можно. Только ['] пока называется FUNC. Как уже написал, постараюсь двигаться в сторону приближения к стандарту. Т.е. предположительно в версии 0.2beta будет CREATE-DOES>
Но то что в стэке хранятся floating-point, от этого отступать не хочу.

Цитата:
а симулятор какой есть, на котором можно пробовать

Сам я пробую на встроенном в jdk-ME. Ещё у меня есть версия frt-sci для ПК (поскольку ядро на java платформенно-независимо), только там только консоль, нельзя читать из файла. Постараюсь её в ближайшее время выложить.

To vikt:
Цитата:
У меня есть подобная разработка, на базе
http://www.usebox.net/jjm/sfi/

SFI я видел, когда искал что-то на чём можно программировать на мобиле :) И исходники его прочитал перед тем как свою систему писать.
А интересно, что у вас получилось? Можно ли массивы создавать? Свой уровень я бы тоже отнёс к "любительскому". И у меня тоже была сначала версия где программки можно было только писать на самом телефоне и сохранять в RMS. Но практически начал сам использовать только когда сделал выполнение программ, написанных на компе.

Цитата:
А доступны ли какие-нибудь функции самого телефона? Например время, режим?

Время доступно -- слова TODAY ( -- year month day ), NOW ( -- hours minuts seconds ), MILLISECONDS ( -- mills_since_1970 ).
А что вы понимаете под словом режим?
Интернет пока не доступен, графика ограниченно, работа с файловой системой планируется как первая модернизация.

Автор:  mOleg [ Вс июл 12, 2009 00:43 ]
Заголовок сообщения: 

sergey.f77 писал(а):
Да, я понял что надо двигаться в этом направлении

по крайней мере на уровне общих вещей это желательно очень.

sergey.f77 писал(а):
Но то что в стэке хранятся floating-point, от этого отступать не хочу.

а вот это, кстати мне очень интересно. Как оно в адреса конвертируется-то?

sergey.f77 писал(а):
Сам я пробую на встроенном в jdk-ME. Ещё у меня есть версия frt-sci для ПК (поскольку ядро на java платформенно-независимо), только там только консоль, нельзя читать из файла. Постараюсь её в ближайшее время выложить.

да, тоже интересно :)

Автор:  vikt [ Вс июл 12, 2009 01:57 ]
Заголовок сообщения: 

У меня два стека float и integer
команды для float выглядят так же как и в стандарте,
F+ FDUP и так далее.
тоже используется библиотека Real.
Две модели памяти

private Real[] f_memory = new Real [FMaxArray];
private byte[] _memory = new byte [MaxArray];

соответственно fhere fallot создает массивы real,
но это не по стандарту, cделанно для того чтобы
как можно быстрее начать програмировать на форте.

here allot как в стандарте.

Программы можно писать на телефоне,
но обычно файл загружается на народ.ру
считываетсЯ по http на телефон,
и на нем допиливается в полевых условиях.

Практика показала необходимость реализации чего то похожего
на либы, пока не знаю как cделать, сохранив простоту кода.
Последний раз компилил зто пол года назад,
после чего вносил много изменений, но не компилил.

На днях причешу немного и выложу на народ.

Страница 1 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/