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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт май 11, 2007 20:52 
Не в сети
Аватара пользователя

Зарегистрирован: Пт май 05, 2006 06:19
Сообщения: 192
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
WingLion а вапрос к ответу "42" сказать ? или он в другом форуме :)

_________________
SPF


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
mrack писал(а):
WingLion а вапрос к ответу "42" сказать ? или он в другом форуме

для этого надо на другую планету лететь

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


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

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
chess писал(а):
Ладно, буду показывать на примере,

А как бы этот пример да запустить на моей домашней системе - инсталл+девел+cvs?
А то некоторых файлов не хватает... Хорошо бы ссылку на них... ;)

_________________
With best wishes, in4.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
chess писал(а):
mOleg писал(а):
А можно поподробнее, о какой идее идет речь? а то я не понял

chess писал(а):
В дальнейшем интерпретатор с его "периферийными(вынесенными) средствами" объединяет коды необходимых частей для имен типа 0>`1+!, 0<`1+!, 0=`1+! и т.п. (характер отображения имен в код поменялся -иероглифов не стало, хотя внешне практически ничего не изменилось)

Смотри предыдущее сообщение. "Периферийными(вынесенными) средствами интерпретататора" могут являться твои словари.


уже понял откуда ноги ростут 8)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс май 13, 2007 09:10 
Почему мои намёки пропадают втуне?..

chess писал(а):
Ладно, буду показывать на примере, как можно включать код[1] для "слов"(имен) в код[2] определения, в котором они (коды[3] этих слов) должны присутствовать, не выписывая предварительно определения для каждого отдельного слова, а имея всего несколько определенных в коде[4] имен, а именно:
C, >CS, CS>, R1, R2, I:, ITO, A...T, 2R, ROR, R=R, `, SET-RG, NOTFOUND
(это и есть исходная кодовая[5] база).


Код -- это многозначное и истрепленое слово. Просто "код" равно как и просто "физика" -- ничего особенно не конкретизирует: какой код? Код Цезаря, маш. код, или "код да Винчи"?..

(хотя как мне кажется после долгих, упорных, терпеливых и сознательных усилий с моей стороны я примерно сумел вычленить смысл)

chess писал(а):
Под иероглифическим заданием кода[6] для слов типа A=B, D=P и т.п. я понимаю обычные определения:


"Типа A=B D=P".. А что это за слова такие?.. Мягко говоря, далеко не все здесь присутсвующие являются дипломированными телепатами.

(на код ссылаться, типа "там всё есть" -- дурной тон. Понятно, что там всё есть, но кто ж это читать-разбирать будет, тратя своё время?)

chess писал(а):
Понятно, что в этом случае кода[7] в кодофайле[8] будет больше(особенно если в набор таких слов включить еще слова типа wA=wB, A=cB и т.д), чем при первом способе кодирования[9] этих слов(имен). Я уж не говорю о разнице в объеме текста для определения по первому и второму способах.


Так слов или имён?.. Или может быть "определений"? И, я-то допустим как-то догадаюсь что "первый и второй способ" относятся к примеру кода из этого сообщения, но ведь могут быть и не такие пытливые читатели.

Вообще, это всё элементарные вещи, к сожаленью.

Судя по тому что мне удалось путём долгого перечитывания и долгих попыток поставить себя на место человека, пишушего такие тексты, chess увлечён расширением синтаксиса Форта вводя по сути в дополнение к пробелу ещё один разделитель -- символ ` со своей, особенной обработкой, которая должна облегчить формирование целых групп слов в которых по сути перебираются различные варианты их построения.

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

(если всё таки всё понял не так -- звиняйте: "ну не шмогла я.." (с))


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 14, 2007 08:36 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Предлагаю ввести такое расширение Форта

Код:
      IF( выражение )  \ выражение оставляет одно значение для IF что бы  не путаться
         ...
      ELSE( выражение ) \ аналог elseif
         ...
      ELSE                      \ фортовское
         ...
      THEN                \ или END IF

\ тоже для WHILE( ...  )  CASE( ... )  OF( ... ) UNLIL( ... )  DO( ...  )


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

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

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

P.S. Это только наброски, а реализовать и реально это использовать можно по разному:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 14, 2007 14:54 
Вообще.. Чтобы говорить что-то "полезно", надо сразу предъявлять простые и понятные преимущества по некоторым определённым критериям:

1. Меньше исходный текст.
2. "Мощнее" команды -- то есть больше действий, "за те же деньги".
3. Упрощение работы программы
4. Большая её понятность (не просто понятность именно тебе, именно мне лично, и уж тем более не понятность Васе Пупкину)

В "IF( )" (да и почти во всём предложенном в теме) ничего кроме сакрального "синтаксического сахара" мне найти не удалось.

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

Искренне интересне каким образом это (воз)можно сделать, и (самое главное) как на таком программировать, имея на руках два несвязных потока данных (один из которых к тому же всё время "прыгает" из-за ветвлений).

Всё таки это бывает и плохо что Форт позволяет создавать свои структуры управления -- уж больно фантазию бывает трудно утихомирить.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 14, 2007 15:34 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
profiT писал(а):
В "IF( )" (да и почти во всём предложенном в теме) ничего кроме сакрального "синтаксического сахара" мне найти не удалось.


И что плохого в "синтаксическом сахаре" если в языке он есть?
Любое расширение Форта - это свой "синтаксический сахар" :))


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Kopa писал(а):
И если ввести механизм поддержки этого, например через какое нибудь префиксное слово
определяющего куда пойдет результат работы, то можно ввести дополнительную
гибкость ( при грамотном использовании ) и улучшить скорость работы программы.

Одним преффиксным словом не обойтись. Нужно будет создать кучу примитивов для работы с числами на стеке возвратов, аналогичные примитивам для работы на стеке параметров. Что-то типа R+, R- и так далее и тому подобное. И хотя в текстах программ их не будет - в кодофайле эти новые примитивы появятся, иначе все равно значения со стека возвратов нужно будет передавать в стек параметров. Да, скорость работы вырастет, но ценой разбухания кодофайла, но это как раз не страшно, гораздо неприятнее - это появление дополнительной нагрузки на программиста - нужно будет контролировать уже два потока команд обработки, один на стеке параметров, другой на стеке возвратов.
Новшества должны не нагружать программиста, а наоборот освобождать его объем внимания для решения собственно задачи, для которой и пишется программа.

_________________
С уважением, chess


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

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
chess писал(а):
Kopa писал(а):
И если ввести механизм поддержки этого, например через какое нибудь префиксное слово
определяющего куда пойдет результат работы, то можно ввести дополнительную
гибкость ( при грамотном использовании ) и улучшить скорость работы программы.


Одним преффиксным словом не обойтись. Нужно будет создать кучу примитивов для работы с числами на стеке возвратов,.


Если продолжить мысль, то можно просто поменять на время стек данных и
стек возврата местами ( т.е. указатели ) или ввести локальный стек переменных
( он же фрейм), но это еще больше или нет заморочек для оптимизатора:)


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Kopa писал(а):
Если продолжить мысль, то можно просто поменять на время стек данных и
стек возврата местами ( т.е. указатели ) или ввести локальный стек переменных
( он же фрейм), но это еще больше или нет заморочек для оптимизатора

С заменой стеков(их указателей) не все так просто - не надо забывать, что на стеке возвратов находятся адреса возвратов из подпрограмм, которые не всегда можно инлайнить и которые могут быть нужны в любой момент(следить еще и за этим? - опять это плохо). С фреймом в памяти можно работать, но не в виде стека(опять еще и второй поток команд контролировать?) - но только при однопотоковой программе. Так можно работать и со стеком параметров, дав ему фрейм в памяти в случае нужды.
Для многопотоковой программы, возможно, выходом будут USER-фреймы - нужно еще подумать.

_________________
С уважением, chess


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
profiT писал(а):
Код -- это многозначное и истрепленое слово. Просто "код" равно как и просто "физика" -- ничего особенно не конкретизирует: какой код? Код Цезаря, маш. код, или "код да Винчи"?.

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

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

Нет, это не еще один разделитель, этот символ может отсутствовать, интерпретатор не найдя слов в словарях с этими "именами" (ну тех, что написаны с символом "`" - "разделителем") пойдет в NOTFOUND и в нем скомпилирует код для этих "имен" в кодофайл. Облегчение программисту есть - меньше текста для описания того как компилировать такие "имена" по сравнению с тем случаем, что если это были бы стандартные слова форта.
Скажу почему термин "слово" не всегда годится. Потому, что в форте под "словом" понимается словарная статья. В кодофайле может быть исполняемый код, не имеющий словарной статьи, но связанный с "именем" - набором символов в тексте программы(кстати "именем" может быть даже несколько текстовых отрезков, разделенных пробелами - внешне это слова, а внутренне нет, их я и называю "именами" - исполняемый код есть, а словарной статьи нет).

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта fastcall
СообщениеДобавлено: Чт дек 15, 2016 20:43 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Если ли наработки по осуществлению быстрого вызова в форте.
Передача нескольких значений через регистры?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Полезные слова и идеи для Форта.
СообщениеДобавлено: Вс дек 25, 2016 22:39 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Как насчёт нестандартных структур управления. К примеру несколько выходов из цикла begin-repeat ( unti) без манипуляций со стеком потока-управления?

_________________
Цель: сделать 64-битную Нову под Винду


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

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


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

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


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

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