Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:04

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Forth для ARM'а
Автор Сообщение
  Заголовок сообщения:  Re: Forth для ARM'а  Ответить с цитатой
Riscy Pygness for the Cortex-M3
http://www.kudra.com/forth/
Сообщение Добавлено: Сб ноя 26, 2011 14:44
  Заголовок сообщения:  Re: Forth для ARM'а  Ответить с цитатой
Я пользуюсь распределенной Форт-системой
Под Ubuntu http://depositfiles.com/files/i5zrhtfsz

forth.elf - модуль для прошивки
rr.sh - запуск системы

Отвечу на вопросы.
Сообщение Добавлено: Чт июл 14, 2011 13:31
  Заголовок сообщения:  Re: Forth для ARM'а  Ответить с цитатой
Нужен кросс-компилятор, или форт в ARM?
Сообщение Добавлено: Ср июл 13, 2011 20:54
  Заголовок сообщения:  Re: Forth для ARM'а  Ответить с цитатой
можно попробовать SwiftX - там есть версии для LPC-шек
Сообщение Добавлено: Ср июл 13, 2011 19:12
  Заголовок сообщения:  Re: Forth для ARM'а  Ответить с цитатой
А что, другие арм-форты не подходят?
Сообщение Добавлено: Ср июл 13, 2011 19:12
  Заголовок сообщения:  Re: Forth для ARM'а  Ответить с цитатой
Коллеги! Есть доступ к "телу" LPC2478 http://www.terraelectronica.ru/news_made.php?ID=4

Очень нужен Forth для скорейшего старта. Желателен stand-alone forth (хотя бы уровня amForth4). Донное гугление принесло невразумительные результаты.
Склоняюсь к решению писать с нуля на ассемблере, под IAR EW for ARM 5.50 Kickstart Edition. Думается, практические результаты будут интересны не мне одному ( как минимум двоим-троим участникам форт-форума)

Начнем?
Сообщение Добавлено: Ср июл 13, 2011 18:42
  Заголовок сообщения:   Ответить с цитатой
Здесь, ещё по ИМХУ, необходимо сделать акцентирование ИМЕННО, на том, что, по сути в Форте НЕТ чётко выраженного (Привычного!) разделения на стадии (этапы) "компиляции" и "исполнения". Во время и того, и другого, система может совершенно произвольно переключаться из режима в режим.
Интересно, что с таким феноменом - "не компилятор компилирует, а - САМИ слова" - многие просто не могут управится в своей голове! ВОт она сила традиций и заскорузлости мэйнстрима! Там даже намёка нет на представление о всех возможностях и гибкостях, которые может получить фортер от своей системы!
Но, зато, как интересно наблюдать за глазами тех, кто вдруг "просекает"!!! - из-за одного этого стОит людям Форт давать.
Сообщение Добавлено: Пн июн 22, 2009 23:48
  Заголовок сообщения:   Ответить с цитатой
Пару слов о том, что такое разрешение. Это не антоним "запрещения", а перевод слова resolving (разрешение в смысле "нахождение решения"). Вся соль в том, что слова между двумя управляющими словами не выполняются, а компилируются, так что ничего на стеке не образуется.

begin -- addr, 3 - представим, что begin кладет сначала адрес, где он поставился, а поверх него идентификатор 3 (просто так)
2 2 + dup \ это все скомпилировалось, так что на стеке все равно осталось addr 3
until \ этому слову абсолютно все равно, откуда взялись числа на стеке. оно будет не компилироваться, а исполняться, потому что имеет признак немедленного исполнения. Оно проверит, что на стеке есть 3 (таким образом делается контроль парности управляющих структур, к примеру, if может класть после адреса 1, и при незакрытом if слово until найдет остатки от работы этой структуры, и сообщит об ошибке). Затем на стеке есть адрес "неразрешенной ссылки назад". Это означает, что транслятор запомнил адрес, на который надо прыгать слову until, но еще не имеет никакого представления, кто именно будет туда прыгать и с какого места. Может быть, и не until, а again или вообще какое-то пользовательское слово управления. В любом случае, слово until пишется так, чтобы оно сначала проверило наличие на стеке 3, и если оно есть, то вставило в код "условный переход на адрес addr". Вот из таких независимых кусочков и собирается программа компилятором Форта.
Сообщение Добавлено: Пн июн 22, 2009 16:27
  Заголовок сообщения:   Ответить с цитатой
iv_ru писал(а):
всё правильно?


И с какой точностью тикают секунды ( светодиоды? )?

iv_ru писал(а):
Я так и не понял откуда until знает где стоит begin?
могу только представить, что существует Адрес-Стек куда begin кладёт свой адрес а until его читает... Это так или нет?


слово Веgin имеет признак немедленного исполнения и вызов его не компилируется в код
( а могло и не так быть для режима исполнения)
Обычно во время компиляции слова немедленного исполнения
служат для управления ей же. и результаты своего выполнения могут оставлять
и на стеке данных ( если нет стека управления CS - поддержки компиляции )
А until даже и не знает о begin, а лишь разрешает ситуацию со ссылкой вперёд.

P.S. В Форте можно создавать разнообразные свои структуры управления.
Сообщение Добавлено: Пн июн 22, 2009 13:39
  Заголовок сообщения:   Ответить с цитатой
iv_ru писал(а):
С чего начать?


Можно и отсюда:) Форт в русской википедии
Книги в конце странички.

P.S. Или английскую версию про Форт
( к mOleg или all: что из неё принципиального желательно отобразить в русской версии?)
Сообщение Добавлено: Пн июн 22, 2009 13:22
  Заголовок сообщения:   Ответить с цитатой
iv_ru писал(а):
С чего начать?


с раздела Книги
а точнее Starting Forth в переводе
и его продолжения Thinking Forth так же в переводе
а так же раздела статьи - где есть статьи начального уровня, в частности мои (mOleg)
Сообщение Добавлено: Пн июн 22, 2009 12:51
  Заголовок сообщения:   Ответить с цитатой
_Harry писал(а):
Всеш таки почитать кое чего (по форту) не мешало бы :roll:
Перед тем как светодиоды мучать :)


С чего начать?
Сообщение Добавлено: Пн июн 22, 2009 12:29
  Заголовок сообщения:   Ответить с цитатой
Всеш таки почитать кое чего (по форту) не мешало бы :roll:
Перед тем как светодиоды мучать :)
Сообщение Добавлено: Сб июн 20, 2009 13:20
  Заголовок сообщения:   Ответить с цитатой
begin - это делает в режиме компиляции, а не в момент исполнения слова wait

: берет следующее слово wait
и организует начало этого слова в памяти.
далее все слова компилируются так, что при вызове слова wait они окажутся исполненными.

begin - формально ничего в память не компилирует, он лишь сохраняет адрес места, где этот begin встретился в определении слова, чтобы через некоторое время этот адрес был вписан в программу словом until.
само же слово until компилирует в память условный переход назад, по тому самому адресу, что слово begin ему оставило.
И адрес этот во время исполнения программы никуда не перемещается. Он просто - часть программы, часть кода условного перехода.

Непонятности явно из-за непонимания того, как сам форт работает.

И в этом месте надо бы ликбез провести...
Сообщение Добавлено: Пт июн 19, 2009 18:57
  Заголовок сообщения:   Ответить с цитатой
: wait ( n -- )
250 * ( n 250 -- k)
begin ( k -- k addr )
1ms ( -- )
1- ( k addr -- k addr') \ если begin кладёт адресс на стек данных, то после 1- должен будет уменьшиться адрес на не счётчик! Или как?
...

И вот далее ничего не понятно...
Сообщение Добавлено: Пт июн 19, 2009 18:25

Часовой пояс: UTC + 3 часа [ Летнее время ]


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB