Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 15:17

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 00:54 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Доброго времени суток!
Хотелось бы ознакомить круг заинтересованных лиц :) с некоторыми занимательными, на мой взгляд, идеями, нашедшими воплощение в ходе реализации (одной из 100..0 :D ) версии Форта.
Краткая предыстория: в ходе работы над одним довольно серьезным проектом, как всегда, внезапно, возникла необходимость эффективно выполнять внешние сценарии из кода на С++. Ввиду довольно специфических требований, было принято решение соорудить собственный Форт-транслятор, дополнив его нужными фичами по мере необходимости. В итоге было получено, к собственному удивлению, довольно быстрое, весьма компактное и в то же время самодостаточное ядро Форт-машины. Идеями и реализацией некоторых из нововведений мне и хотелось бы поделиться.
Небольшая статейка по этому поводу (в формате pdf) выложена на http://ifolder.ru/17994205 . Если что-то в ней покажется неактуальным или не соответствующим текущему положению вещей -- просьба больно не бить, так как времени на изучение текущего состояния вопроса было не много, и источниками служили в основном довольно старые публикации.
Краткое содержание: в статье описана реализация некоторых приемов работы со стеком, подход к введению в Форт-систему множественных дополнительных стеков и некоторые улучшения и идеи, связанные с их использованием. Конструктивная критика и обсуждение всячески приветствуются. Если написанное вызовет интерес, вполне вероятно опубликование исходников под какой-нибудь свободной лицензией :)
Всем удачи!



За это сообщение автора rmammoth поблагодарил: Hishnik
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 01:44 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 12, 2008 03:18
Сообщения: 327
Откуда: Москва
Благодарил (а): 36 раз.
Поблагодарили: 7 раз.
А если marker? воспримет как маркер случайно полученное, входе обычных
вычислений значение, которое оказалось равное, условному значению marker?

_________________
Линукс решает, винда глотает.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 01:59 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Первое впечатление - очень и очень интересно. Дальше буду завтра думать, а сейчас - спааааать! :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 02:07 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
vikt писал(а):
А если marker? воспримет как маркер случайно полученное, входе обычных
вычислений значение, которое оказалось равное, условному значению marker?


Это исключено. Маркеру присваивается уникальный идентификатор типа (помните, там динамическая типизация?) Слово marker? проверяет тип значения на вершине стека, а не само значение.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 02:15 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
Хищник писал(а):
Первое впечатление - очень и очень интересно. Дальше буду завтра думать, а сейчас - спааааать! :)


Спасибо за лестный и быстрый отзыв :) Спокойной ночи! :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 07:50 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
rmammoth писал(а):
Хотелось бы ознакомить круг заинтересованных лиц с некоторыми занимательными, на мой взгляд, идеями, нашедшими воплощение в ходе реализации (одной из 100..0 ) версии Форта.

реализация - вот что необычно, высказываются идеи (и подобные)часто


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 08:01 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
А посмотреть реализацию где-то можно?
Насколько это быстро? происходит постоянное копирование стеков??


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 12:55 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
При создании фрейма все локальные переменные копируются в теневой стек?
Нам такой футбол не нужен :evil:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 12:59 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Я как-то размышлял над идеей теневых стеков пару лет назад - и пришел к выводу, что в этом нет особой надобности. Только лишь плодить новые сущности и интерфейсы между словами.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 14:24 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
вопрос писал(а):
А посмотреть реализацию где-то можно?
Насколько это быстро? происходит постоянное копирование стеков??


Нет, конечно. Копируются указатели на стеки.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 14:31 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
dynamic-wind писал(а):
При создании фрейма все локальные переменные копируются в теневой стек?
Нам такой футбол не нужен :evil:


Не смею настаивать :) Однако, уточним. Во первых, количество переносимых в теневой стек переменных задается программистом, т.е. возможны варианты: никто не запрещает часть значений, удобных для манипуляций, оставить на основном стеке, а часть поместить в теневой. Во вторых, не думаю, что забавы с pick и roll при количестве параметров слова 4-5 и более, будут намного эффективнее. И уж точно не будут удобнее.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 14:37 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
VoidVolker писал(а):
Я как-то размышлял над идеей теневых стеков пару лет назад - и пришел к выводу, что в этом нет особой надобности. Только лишь плодить новые сущности и интерфейсы между словами.

rmammoth писал(а):
Конструктивная критика и обсуждение всячески приветствуются.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 14:44 
Не в сети

Зарегистрирован: Вс май 30, 2010 21:28
Сообщения: 17
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
вопрос писал(а):
А посмотреть реализацию где-то можно?


Не отрекаясь от изложенного в стартовом топике :D , я, тем не менее, пока что не готов опубликовать исходники. Хотелось бы сделать это вместе с хотя бы минимальной документацией по проекту, а таковая еще даже и не начиналась, увы. Пока что вся информация на уровне комментов в коде.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 14:51 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
а можно выложить этот текст в раздел "статьи",
кстати pdf-ник можно и на форуме разместить, потому как качать со всяких ifolder-ов не очень удобно
(впрочем, еще удобнее было бы, если бы содержимое было в html виде, но это уже хотелки 8) )
.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Расширения Форта
СообщениеДобавлено: Чт июн 03, 2010 15:14 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
rmammoth писал(а):
Конструктивная критика и обсуждение всячески приветствуются.

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

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


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

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


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

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


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

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