Forth http://fforum.winglion.ru/ |
|
Frt-sci -- Форт для мобильных телефонов http://fforum.winglion.ru/viewtopic.php?f=38&t=2198 |
Страница 3 из 5 |
Автор: | AlikasS [ Вт июл 21, 2009 17:54 ] |
Заголовок сообщения: | |
очень интересная разработка. написал одному из модераторов на http://forum.motofan.ru посмотрим. если анонсируют, возможно появиться интерес у некторых к форту через этот путь. |
Автор: | AlikasS [ Пт сен 25, 2009 17:50 ] |
Заголовок сообщения: | |
автор обновил http://sergey-frt.narod.ru/frt_sci.jar от 09.09.09 Цитата: Выложил обновлённую версию frt_sci.jar, которая должна адекватно обрабатывать CRLF.
был баг > подключаемые пользовательские новые файлы ~имя.frt и все остальные > в frt_sci.jar работают только если строка в файле заканчивается LF \ -------------- из ближайшего от автора > Добрый день > Frt-sci развивается? > какие планируются изменения-дополнения? > Некоторое время он не развивался, но скоро планирую опубликовать новую версию. Изменения -- переменные с любыми именами, большее соответствие стандартному форту (if then вместо [ ] и т.п.) > для интерактива > мониторинг состояния клавиш (нажата/не нажата) возможно в будущем прикрутить? > графику бы переработать с возможностью задания своего цвета и > например координат точки для закраски. да, графику я планирую переделать полностью, мониторинг кнопок тоже можно, но он будет работать как раз только в режиме графики. > 1.а нельзя какой-нибудь файл типа autostart.frt > сделать авто запускаемым при старте приложения? > ну т.е. его если нет или он пустой - ничего не происходит, > а так автозапуск прописанных задач Можно, в следующей версии. > 2.если аналог HERE? HERE будет в следующей версии. Сейчс в библиотеке lib.txt определено несколько слов для работы с массивами, которые используют переменную 'a' в качестве указателя на первую свободную ячейку памяти. |
Автор: | sergey.f77 [ Пн окт 12, 2009 21:06 ] |
Заголовок сообщения: | |
Доброго всем времени суток! Выложил новую версию frt_sci 0.2. http://sergey-frt.narod.ru/frt_sci.html Основные изменеия: слова { } и [ ] заменены на do loop if then, есть режимы интерпретации и компиляции (и слова [ ]), " заменена на ." и после неё должен быть пробел, create does> here allot, нет ограничения в 1000 ячеек памяти. Список слов: Код: ret quit dup drop . swap rot over + - * / abs exp sqrt sin asin cos acos tan atan pi
@ ! i j k 0 bl cr ln lg ^ max min rnd erfc = < > <= >= sinh cosh tanh asinh acosh atanh graph plot show yshow sleep int var ['] exec r> >r not or and 1+ 1- 2* 2/ % r@ bye format depth cli clo milliseconds randomize today now norm sci eng here allot create , ' immediate last_word i@ i! dump ( *** immediate - слова *** ) : ; ( ." if then else [ ] [compile] begin until do loop to does> +do repeat while |
Автор: | sergey.f77 [ Пн окт 12, 2009 21:08 ] |
Заголовок сообщения: | |
Да, ещё одна функция (по просьбе AlikasS): если в мидлет засунуть файл autostart.frt, он будет автоматически исполнен при старте. |
Автор: | sergey.f77 [ Пн окт 12, 2009 21:14 ] |
Заголовок сообщения: | |
Дальше планирую (параллельно с отловом глюков:) ) поменять способ вывода графиков на более универсальный. Ещё бы можно include. Затем наверное попробую перенести на мобилу JBForth. В нём всё-таки ява-машина используется более рационально... |
Автор: | sergey.f77 [ Вт окт 13, 2009 22:18 ] |
Заголовок сообщения: | |
Строки. Мне они пока не нужны, но в принципе вещь полезная. Только есть два варианта как их реализовать: 1) Совсем как в форте, строки в кодофайл записываются посимвольно и извлекаться могут с помощью стандартных слов C@ C!. Недостаток: будет медленно работать. 2) Хранить как ява-объекты. Тогда в кодофайле каждая строка занимает одну ячейку. Использовать оригинальные методы явы для работы со строками (похоже на СИ): слова INSTR SUBSTRING CONCAT и некий аналог C@, C!. Мне гораздо больше нравится вариант 2. Если никто не скажет, что первый нужнее, то я второй и реализую. |
Автор: | Hishnik [ Вт окт 13, 2009 23:47 ] |
Заголовок сообщения: | |
А никак нельзя померить производительность и попытаться понять, насколько первый вариант медленнее? Потому что в Форте часто попадаются алгоритмы, которые работают со строками именно через C@ C!, то есть строк как таковых нет. К примеру, я обычно делаю как-то так Код: 256 CONSTANT MAXSTR
CREATE $FILENAME MAXSTR ALLOT " filename.ext" $FILENAME SMOVE То есть строка - это просто выделенное место в памяти. |
Автор: | sergey.f77 [ Ср окт 14, 2009 00:36 ] |
Заголовок сообщения: | |
Померять-то можно... Только результат я могу предсказать. В яве даже чтобы выделить память как в примере выше, придётся создать 256 объектов класса Character. Расскажу чуть подробней про устройство frt-sci чтобы была ясна суть проблемы. Кодофайл у меня -- это не массив заранее заданной длинны, а класс Vector, который может содержать любые объекты и позволяет извлекать/перезаписывать объекты по заданному адресу. Удобно в нём то, что 1) объекты могут быть любыми, не надо преобразовывать типы (ведь ява строго типизирована, а мне нужны как минимум целые числа для адресов и Real для данных); 2) обычный массив не может расти во время работы программы, а Vector может. Т.е. слово ALLOT действительно выделяет новые объекты, а не только двигает указатель. Не удобно: сравнительно медленно. Чтение из Vector происходит медленне, чем из обычного массива. На ПК проигрыш в скорости где-то раза в 3, я проверял. На телефоне не проверял (там может быть подругому). А встроенные методы работы со строками по идее могут быть написаны на ассемблере. Т.е. на задачах вроде поиска подстроки в строке вариант с использованием оригинальных методов явы будет быстрее где-то раз в 10. Для каких задач вообще планируется использовать строки на мобильном? |
Автор: | Hishnik [ Ср окт 14, 2009 03:07 ] |
Заголовок сообщения: | |
У меня тут вобщем-то достаточно тривиальное соображение - в Форте со строками обычно отдельно не работают. То есть есть будет такой Java-Форт, то у него может получиться явное отличие от программ на Форте, потому что массив байтов может вылезти где угодно. И тут уже надо сразу определяться - либо основывать транслятор на работе с объектами (и тогда уж делать так во всех местах), или сказать, что Ява - это просто кроссплатформенный инструмент, доступный на телефоне, и мы будем мириться с теми недостатками, которые из его кроссплатформенности проистекают. Можно еще посмотреть, так ли страшна потеря производительности. Мне кажется, что не очень, либо совершенно не страшна. Телефону ведь не мегабайты текстов обрабатывать, а хотя бы текстовое сообщение вывести или пару строк принять с клавиатуры. Это очень немного получается, и по размеру, и по объему операций. |
Автор: | sergey.f77 [ Ср окт 14, 2009 10:12 ] |
Заголовок сообщения: | |
Хорошо, я попробую сперва сделать как в форте. Ещё вопрос. Со словом S" я встречался -- возвращает адрес и длину. А слово " это строка со счётчиком чтоли? |
Автор: | Wlad [ Ср окт 14, 2009 14:57 ] |
Заголовок сообщения: | |
В языках, подобных яве и си-шарпу, было бы намного полезнее вообще не включать тип "символ", а обходиться типом "элемент строки". Тогда бы масса проблем была в зародыше удушена... |
Автор: | VoidVolker [ Ср окт 14, 2009 19:06 ] |
Заголовок сообщения: | |
sergey.f77 писал(а): А слово " это строка со счётчиком чтоли?
Нет, обычно просто az-строка. sergey.f77, доступ к блутузу есть? |
Автор: | sergey.f77 [ Ср окт 14, 2009 20:05 ] |
Заголовок сообщения: | |
Блютуза пока нет, но можно сделать. И ИК можно сделать. |
Автор: | VoidVolker [ Чт окт 15, 2009 00:35 ] |
Заголовок сообщения: | |
ИК незачем, а вот блутуз был-бы очень полезен. |
Автор: | vikt [ Чт окт 15, 2009 20:07 ] |
Заголовок сообщения: | |
Блютуз из явы на мобильном телефоне доступен при условии если ява на телефоне поддерживает библиотеку jsr82 , то есть блютуз на телефоне может быть, но управлять из явы им может быть невозможно. Я написал библиотеку для работы с блютузом , чтобы подключить мобильный форт к gps навигатору но надежно работает только с моим навигатором, но так как пока не нужен все заброшено до середины ноября. Если нужно вышлю конечно. Но большинство навигаторов работает по протоколу l2cap а мой btspp, там есть отличия при приеме данных. |
Страница 3 из 5 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |