Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

ESP8266Forth

Тема в разделе "ESP8266Forth", создана пользователем Victor, 27 окт 2016.

  1. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.208
    Симпатии:
    383
  2. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    951
    Симпатии:
    148
    Есть кто на форуме любители FORTH?
     
  3. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.004
    Симпатии:
    171
    Есть любитель всяческой экзотики - я. Попробую.
     
  4. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    951
    Симпатии:
    148
    Здорово!
    Сразу нашел ошибку в описании слова spaces
    В словаре код должен быть таким:

    Код (Text):
    1. const PROGMEM char spaces_str[] = "spaces";
    2. // ( n -- )
    3. // if n is greater than zero, display n space
    4. static void _spaces(void) {
    5.   char n = (char) pop();
    6.   while (n > 0) {
    7.     print_P(sp_str);
    8.     n--;
    9.   }
    10. }
     
  5. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.004
    Симпатии:
    171
    Первые впечатления неоднозначные. Во первых я долго маялся с дисплейчиком, но тут проблема не форта а дисплейчика. Ну кто мог подумать что при наличии у него входа MISO на самом деле надо подключить соответствующий выход проца к входу SDA? Ну да бог с ними... заработало. Вторая особенность в том что указано подключить подсветку дисплея к одной из ног проца, чтобы ее включать/выключать. Но проц явно не осиливает питания подсветки. По уму тут надо чтото промежуточное - твердотельное реле или хотя-бы эмитерный повторитель.
    Что криво в самом форте... Он занимает подозрительно много места, более 60 к, оставляет под расширение только около 20 к. Причем его словарь автор как бы прячет во флэш (зачем? если его оттуда все равно загрузят - это явный аттавизм ардуиновской версии). Работа с файлами ограничивается: прочитать содержимое корня флэшки и загрузить файл из флэшки. Правда есть полезная опция "autorun". Для выполнения при старте некого файла. Этого крайне мало. Хоть бы запись текущего словаря сделали. Ну или буфер в файл. Хоть какое то средство интерактивной разработки.
    Так что поиграться - супер. Но в дело особо не пустишь. Особенно жалко выглядело подключение через wifi (там есть типа telnet (точнее raw) на 21 порту) - команда words (20 строк) выполняется снаружи почти минуту... Это форт? У меня голимый интерпретатор быстрее работает на telnet.

    Впрочем есть идеи как это немного причесать. Будет время - развлекусь.
     
    windalser нравится это.
  6. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.004
    Симпатии:
    171
  7. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    951
    Симпатии:
    148
    Посмотрел на реализации Forth на ESP8266 все это меня не порадовало.
    Так, как давно интересуюсь этим языком, без конкретной задачи изучать его не интересно, решил написать свой Форт для ESP.
    Возник вопрос, что если я, сделаю возможность использовать в определении нового слова, слово которое ещё не было определено? Обычно в любых Forth системах, это приводит к ошибки, так как компилятор не может создать правильный байт код. В моей реализации такой финт вполне возможен. С моей точки зрения это будет удобно, так как можно будет писать программу "сверху вниз".
    Кто знает Форт, что вы думаете по этому поводу?
     
  8. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    1.971
    Симпатии:
    218
    @tretyakov_sa вроде это явно запрещено стандартом. Во всяком случае ошибки будет отловить точно сложнее. А иногда и невозможно.
     
  9. tretyakov_sa

    tretyakov_sa Moderator Команда форума

    Сообщения:
    951
    Симпатии:
    148
    Так в чем сложность. Если попытаться выполнить слово которого нет в словаре, то будет сообщение "определите слово".
     
  10. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    1.971
    Симпатии:
    218
    @tretyakov_sa ну, поскольку это все равно игрушка, делайте как считаете нужным. Сомневаюсь, что кто то будет пользоваться для реальной работы. Теперь это экзотика.
     
  11. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.004
    Симпатии:
    171
    tretyakov_sa, помнится мне, в свое время в МГУ народ разрабатывал хитрый форт подобный язык DSSP одним из козырей которого как раз было "программирование сверху вниз" то есть возможность постепенной "детализации" слов. Это делалось добавлением "таблицы неопределенных ссылок", если не ошибаюсь это можно в подробностях почитать тут: trinarium/DSSP-C
     

Поделиться этой страницей