Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:37

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Виртуальный форт
СообщениеДобавлено: Ср фев 07, 2007 01:26 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
wormball писал(а):
А для его реализации надо написать форт, чтобы он выполнялся в виртуальной машине, и чтобы несколько виртуальных фортов выполнялись одновременно (многозадачность).


хватай пока теплый: http://akps.ssau.ru/forth/book/

а лучше давай вместе развивать, с CVS разберешься ? Отпиши мылом какой логин хочешь, я аккаунт на серваке заведу. Под винду есть сивиэс клиент в виде консольного ехе и пары длл

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 07, 2007 02:14 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ну там правда ведро #define в исходниках движка, может тебе проще будет
ограничиться файлами
MODE32.4th
TC.4th (вместо строк S" SOMEFILE.4th" вставить эти сами файлы)
YOURPROGRAM.4th
vm.cpp (без расширенных наборов команд, только базовый набор слитых сишных исходников и с вычищенными дефайнами)

короче, задавай вопросы сюда, а я по ходу ответов буду текст корректировать

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 07, 2007 02:24 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
у меня была мысль запускать сетевой сервер, который будет получать файлы с байт-кодом (ну например как пакет по протоколу UDP на какой-нибудь свободный порт типа 1979), и загружать этот файл с байт-кодом в новый экземпляр интерпретатора.

если интересует, могу набросать быстренько на том же Python, но надо будет решить вопрос с организацией обмена данными между программой-запросчиком, посылающей пакет байт-кода, и выполняющейся на FVM-сервере программе.

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

думаю лучшим варинтом будет использовать телнет (для локальных сетей, где не надо безопасности), или SSH2 -- только переписать загрузчик, чтобы он брал байт-код не из файла, указанного в ком.строке, а прямо с stdin например в чем-то типа uuencoded и декодировал байт-код в массив M[].

в конце концов у тебя будет доступ по SSH2 на сервер, так что можно сначала заливать файл байт-кода, а потом заходить ком.строкой по тому же протоколу SSH2 и запускать форт-движок

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 07, 2007 02:32 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
кстати, обязательно надо сделать так, чтобы исходник движка компилился под любым UNIXом и под win32 (в виде консольного приложения), ввод/вывод только через стандартные потоки ввода/вывода stdin/stdout/stderr (как два пальца сделать, если не использовать другие способы ввода/вывода, ну может еще поддержку файлов добавить в виде расширенного набора команд EXT_FILE)

ЗЫ: найти бы еще способ не связываться с внедрением GUI кода в движок, а обойтись обменом через файлы или сокеты под win32 и UNIX

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср фев 07, 2007 17:04 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 16, 2006 23:02
Сообщения: 65
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Судя по описанию, это проект серьёзный, большой и многоплатформенный. Мне бы что-нибудь поменьше. :roll: И, кстати, его можно без регистрации скачать?

_________________
Я знаю только то, что я ничего не знаю. /(с) Сократ/
Мой форт | Мой проект ИИ


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 23:30 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
wormball писал(а):
Судя по описанию, это проект серьёзный, большой и многоплатформенный.

разве может быть большой реализация на си не более чем сотни форт-слов ? Многоплатформенность возникает только из-за желания обеспечить работу на 16битных системах и при использовании ввода/вывода специфичного для разных платформ
wormball писал(а):
Мне бы что-нибудь поменьше. :roll:

это очень просто - берешь и реализуешь с нуля клон, подглядывая в книгу (это проект по кнутовской методике литературного программирования - книга с раскиданными по всему тексту фрагментами исходников. Которые при запуске компиляции из нее автоматически вычленяются) и задавая тут вопросы
wormball писал(а):
И, кстати, его можно без регистрации скачать?

регистрация нужна только если захочешь вносить правки непосредственно в этот проект, а так вполне приветствуются и собственные клоны

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 23:46 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Для начала выкидываешь поддержку многозадачности - обьем исходника тут же сокращается на треть и из шедулера исчезает мозголомный многовложенный цикл, остается тупой фор(;;)
Потом нужно только обеспечить выполнение демки CTLSTRUC. Для твоих задач этого будет достаточно -- набор структур управления, простейших типов данных и несколько десятков форт-примитивов.

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт фев 08, 2007 23:55 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
ограничить объем адресации не просто, а очень просто
выглядит примерно так:
Код:
    в EAX находится адрес
 
     AND EAX, 0FFFFh ; например в 64кб адресном пространстве
      LEA EAX, base [EAX] ; base - начало адресного пространства

все - в EAX находится наш адрес
а адресация идет с 0 ( в нашем полученном адресном пространстве )
   


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 09, 2007 00:14 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
mOleg писал(а):
все - в EAX находится наш адрес
а адресация идет с 0 ( в нашем полученном адресном пространстве )
Ага, только селектор в DS должен не быть алиасом кода или данных запускающей системы! ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 11, 2007 02:10 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 16, 2006 23:02
Сообщения: 65
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
разве может быть большой реализация на си не более чем сотни форт-слов ?

На форте, я думаю, будет в разы меньше. :D Да и не люблю я С, он у меня даже не стоит.

Цитата:
это очень просто - берешь и реализуешь с нуля клон, подглядывая в книгу (это проект по кнутовской методике литературного программирования - книга с раскиданными по всему тексту фрагментами исходников. Которые при запуске компиляции из нее автоматически вычленяются) и задавая тут вопросы

Честно говоря, объёмы книги меня несколько отпугивают. Какую часть мне смотреть? И как, кстати, у тебя обстоят дела с быстродействием? Хотя... я в последнее время прихожу к мысли, что главное - начать, а о скорости думать уже потом.

Цитата:
Для начала выкидываешь поддержку многозадачности

Ну, многозадачность мне как раз нужна. Правда, если она меряет время, а не количество инструкций.

Цитата:
ограничить объем адресации не просто, а очень просто
выглядит примерно так

Ага, только объём памяти тогда будет кратен степеням двойки. Учитывая специфику задачи, такой вариант мне не подходит. И дело даже не в экономии памяти, а в том, что я хочу сделать отбор программ по критерию занимаемой памяти, а так получится, что программа в 1,1 килобайт и в 2 килобайта будут эквивалентны. Так что придётся юзать нечто вроде
Код:
max_mem < if .... then


Кстати, ещё такой вопрос. Имеет ли смысл открывать тему про мой проект как таковой?

_________________
Я знаю только то, что я ничего не знаю. /(с) Сократ/
Мой форт | Мой проект ИИ


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс фев 11, 2007 12:22 
Не в сети

Зарегистрирован: Вс окт 15, 2006 13:05
Сообщения: 149
Откуда: Украина, Киев
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
in4 писал(а):
Для простых игрушек самое то! Можно даже без доп. памяти, если брать Мегу8 и лучше. На Меге8 сделали робота со встроенным Бейсиком, см. журнал "Радио"...
стало интересно, полез в инет искать, но не нашел. Зато нашел другое:
- http://www.terraelectronica.ru/news_postup.php?ID=1011 Самоходный робот с интеллектуальным управлением или игрушка для взрослых.
ну и что у них еще есть: http://www.terraelectronica.ru/catalog.php?ID=823&IDm=b572


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 12, 2007 13:25 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
wormball писал(а):
Ага, только объём памяти тогда будет кратен степеням двойки. Учитывая специфику задачи, такой вариант мне не подходит. И дело даже не в экономии памяти, а в том, что я хочу сделать отбор программ по критерию занимаемой памяти, а так получится, что программа в 1,1 килобайт и в 2 килобайта будут эквивалентны. Так что придётся юзать нечто вроде
Код:
max_mem < if .... then



Пусть разные типы форт-машин сами борятся за жизнь. Машины с маской выигрывают
по быстродействию, но условно проигрывают по памяти.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 12, 2007 19:13 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 16, 2006 23:02
Сообщения: 65
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Пусть разные типы форт-машин сами борятся за жизнь. Машины с маской выигрывают
по быстродействию, но условно проигрывают по памяти.

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

_________________
Я знаю только то, что я ничего не знаю. /(с) Сократ/
Мой форт | Мой проект ИИ


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 24, 2009 13:34 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
mOleg писал(а):
еще раз смотри в eForth
100 КБ исходников на ассемблере с большим кол-вом коментариев - это очень мало



коллекция программ eForth Group
или Одним Zip файлом ~8Мб

P.S. И там же FIG would like to collect and publish information about individuals who have an interest in Forth on this Who's Who webpage.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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