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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 158 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 11  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн июл 17, 2006 21:22 
Не в сети
Moderator
Moderator
Аватара пользователя

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

Не всегда, но такой подход почти гарантирует изоляцию данных.

вопрос писал(а):
ЕСЛИ ДОЛЖЕН БЫТЬ только ФОРТ-код, то ... чем не подошел сишный?

сишные решения не подходят к форту, как и к лиспу например или к прологу 8) Совсем разные языки. Совсем отличная идеалогия. Вот к бейсику сишный подход подойдет!)

А потом -пример в студию!) Желательно без общих слов.

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

Тут все-таки не удержался, замечу написано "сложный", а это значит, что си будет сохранять многократно кучу регистров, выделять кучу локальных переменных и прочее. Пара дупов на этом фоне будет мелочью. Если, конечно алгоритм сложный 8)


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

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


Ой, а как же слово DUP? или OVER или SWAP...

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


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

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
В Форте слова должны поглощать свои аргументы. Точка.

ЧТО это значило ?

Цитата:
Несколько лишних dupов на производительности не скажутся.

??? :shock:


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

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

В Форте слова должны поглощать свои аргументы.


Ой, а как же слово DUP? или OVER или SWAP


ну и в чем вопрос?
Речь шла о том, что в форте обычно бывает так:

: something ( num addr --> result ) ... ;
или даже
: someother ( a b c --> ) ... ;

вопрос писал(а):
Несколько лишних dupов на производительности не скажутся.

???


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


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

Зарегистрирован: Чт май 04, 2006 22:43
Сообщения: 78
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо, oleg, ответил за меня :)
А это
Цитата:
В Форте слова должны поглощать свои аргументы.
относилось к пользовательским определениям, а не стековым операциям (dup/swap/over...) И какими б "сложными" не были алгоритмы, переменными увлекаться не стоит (локалы - вообще зло); а стековые операции должны быть сведены к прожиточному минимуму. Но это уже элементы стиля программирования. Стандарт здесь не помощник.


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Kopa писал(а):
Возник интересный Вопрос:
как понимать слово, например 2>R если разрядность
стека данных меньше разрядности стека возвратов?
Какие могут быть при этом решения.


Как я понимаю, может быть два решения:
- не использовать стек возвратов вообще,
- упаковать данные не в две, а, например, в три ячейки 8)

Во втором варианте нужно смотреть на глубину стека возвратов как можно пристальнее 8)


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

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


Дык, вместе обсуждать начали 8)


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

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
in4 писал(а):
Меньше 16-разрядных IMHO, обычно не делают. Возможности маленькие...
У меня на 8-разрядной CELL компилятор сделать не получилось - размера адреса для структур данных не хватило...
Даже двойная адресация не давала доступ к имеющейся памяти DOS.


нууу есть еще вариант с масштабированием 8) А адреса можно рассматривать как масштаб база смещение 8)
а еще возможен вариант с инкрементной-декрементной адресацией, то есть когда ты можешь лишь увеличивать или уменьшать указатель на окно в памяти, которое можно адресовать!
Вообще в таких случаях фантазия не лишняя ВЕСЧЬЬ ;)))

А вообще меньше 12 бит делать не стоит. На очень маленьких процах 12 бит самое то!)
А на больших 20 Ж8)


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

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


есть еще один довольно важный момент - это:
- числа с фиксированной точкой,
- работа с дробями,
- комплесные числа.
Вот вам и двойная точность...


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

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

s11 эквивалент DUP
s21 эквивалент SWAP
s231 эквивалент ROT
s312 эквивалент -ROT
s121 эквивалент OVER
s1212 - 2DUP
s2 - NIP
s212 - SWAP NIP
s112 - TUCK
Исходно перед операцией со стеком, требующей манипуляции с n параметрами на вершине стека лежит параметр обозначаемый в слове s1..n номером n.
Программист без заморочек пишет нужное выражение, например s2132. При этом понимается, что стек параметров
изначально имел вид 123, а в конечном итоге будет иметь вид 2132.

Пока я не говорю о вариантах реализации трансляции таких выражений.

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


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

Зарегистрирован: Вс май 07, 2006 11:38
Сообщения: 279
Откуда: Slavyansk, Ukraine
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
chess писал(а):
Предлагаю ввести дополнительные синтаксические конструкции для работы с параметрами на стеке параметров...

Т.е. слова-мнемосхемы? "Чтоб помнили..." А буквами (_a_b_c_d на стеке) не лучше? Типа так:
^aa (s11) эквивалент DUP
^ba (s21) эквивалент SWAP
^bca (s231) эквивалент ROT
^cab (s312) эквивалент -ROT
^aba (s121) эквивалент OVER
^abab (s1212) - 2DUP
^b (s2) - NIP
^bab (s212) - SWAP NIP
^aab (s112) - TUCK
Только вот подсветку синтаксиса в редакторах переделывать придется...
PS а справа: aa^ для стека возвратов.

_________________
Банзай!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 15, 2006 18:37 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
chess писал(а):
s212 - SWAP NIP
s112 - TUCK


s212 - TUCK
SWAP NIP - DROP
s112 - OVER SWAP


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
чойто полная путаница какая-то..
^212
s121
и фиг поймешь, где же вершина стека и что обозначает мнемоника...

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 15, 2006 19:17 
Была, была у меня подобная мысль. Только как по мне лучше разделять начальное и конечное состояние стека. Че-то типа:

Код:
a_aa       DUP
ab_ba       SWAP

или со стеком возврата

  a_R:a    >R
R:a_aR:a   R@
R:a_R:aa   RDUP
R:a_       RDROP
и т.д.


А еще-бы разбирать эти конструкции автоматом....


Последний раз редактировалось ArtemKAD Пт сен 15, 2006 19:28, всего редактировалось 1 раз.

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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Имхо, давно устоявшиеся дупы, свапы, дропы и т.д. и т.п. как-то лучше. Их и набирать проще (короче). И смысл сразу ясен из самого слова.

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


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

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


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

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


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

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