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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 158 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 11  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 15, 2006 19:31 
Не скажи... OVER ROT NIP -ROT совсем не однозначны. Да и понимать их проще ПОТОМ, а не в момент написания кода. Я до сих пор часто чешу репу в поиске нужной перестановки стека.


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

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


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

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
А никто не мешает программисту написать в начале программы
Код:
VARIABLE V0
VARIABLE V1
VARIABLE V2
VARIABLE V3
VARIABLE V4
...
VARIABLE V9


И пользоваться ими, как заблагорассудится :))

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


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

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

_________________
понимаю некоторую бестолковость некоторых вопросов


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

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

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


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

Зарегистрирован: Чт май 04, 2006 22:43
Сообщения: 78
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вопрос писал(а):
Стек вообще неудобен, лучше именованные переменные ( что не отменяет стека в реализации)

Заблуждение. Стек очень, очень полезен. Автоматическая передача аргументов от слова к слову сильно облегчает жизнь. Просто нужно уметь пользоваться стеком. Умение это состоит в том, чтобы не использовать более трех верхних элементов.
Форт без стека данных - это не Форт.


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

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

Не предлагается убрать свапы, дропы и т.д. и т.п. - предлагается ввести дополнительные конструкции.
WingLion писал(а):
чойто полная путаница какая-то..
^212
s121
и фиг поймешь, где же вершина стека и что обозначает мнемоника...

Вершина стека всегда справа, например запись s121 означает, что во первых мы манипулируем с двумя верхними числами на стеке параметров(максимальная цифра 2), и во вторых меняем состояние стека таким образом ( n1 n2 --> n1 n2 n1 ). И насчет проще и короче - s212 это ( n1 n2 -> n2 n1 n2 ) или SWAP OVER.
s212 короче чем SWAP OVER, а кроме того понятно, что скопировали и положили параметр с вершины стека под два верхних параметра на стеке. Запись SWAP OVER без стековой нотации как-то не говорит об этом.
ArtemKAD писал(а):
Только как по мне лучше разделять начальное и конечное состояние стека.
.
Можно, но на мой взгляд получается более громоздко(обсуждаемо).
По поводу стека возвратов - интенсивность работы с этим стеком значительно меньше, чем со стеком параметров, поэтому там все оставить, а впрочем можно и не оставлять(обсуждаемо).
Kamikaze писал(а):
Т.е. слова-мнемосхемы? "Чтоб помнили..." А буквами (_a_b_c_d на стеке) не лучше? Типа так:
^aa (s11) эквивалент DUP

Не лучше - цифры лучше. Лучше просматривается взаимоположение параметров на стеке. Использовать манипуляции с числом параметров больше 9-ти вряд-ли кому понадобится.
ArtemKAD писал(а):
А еще-бы разбирать эти конструкции автоматом....

В этом и есть конечный смысл - ускорить код.

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


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

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


А теперь надо обосновать, почему это не (n2 n1 -> n1 n2 n1)? Да так, чтобы было ЛОГИЧНО и однозначно!
Лично для меня логично, что 1-й элемент стека - это верхний, а второй - это тот, который под ним, а не наоборот.

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Как такая "логика" : изначально стек пуст, затем помещаем на него 1-й параметр, затем 2-ой и т.д. Кроме того
исходный порядок параметров перед операцией манипуляции на стеке -> 12345 смотрится естественнее, чем 54321(впрочем для китайца может быть наоборот). Если серьезно порядок нумерации может быть прямым и может быть обратным(это вопрос соглашения) и никакой логики тут быть не может. Насчет однозначности - почему такой вопрос возник, что тут может быть неоднозначным? Если можно поделитесь конструктивными сомнениями.

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


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

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

Не лучше - цифры лучше. Лучше просматривается взаимоположение параметров на стеке.

Тогда так:
1^11 эквивалент DUP
Хотя мне больше буквы нравятся:
a^aa

_________________
Банзай!


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

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


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

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


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

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

Как я уже говорил - ничем.

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


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

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
А ассемблерная вставка для этих перестановок не сгодится? Забираем со стека и распихиваем по регистрам, затем запихиваем обратно в произвольном порядке.


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

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

Это уже об алгоритме трансляции.
По существу - сгодится. Однако есть недостаток - объем кода растет(хотя при этом растет быстродействие).
Раньше последовательности DUP-ов SWAP-ов и т.п. были последовательностями ссылок(call) на подпрограммы, теперь это будут inline-вставки кода.

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


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

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


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

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


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

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


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

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


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

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