Forth http://fforum.winglion.ru/ |
|
Локальные переменные http://fforum.winglion.ru/viewtopic.php?f=2&t=2909 |
Страница 2 из 2 |
Автор: | Hishnik [ Вт окт 11, 2016 18:31 ] |
Заголовок сообщения: | Re: Локальные переменные |
Victor__v писал(а): Граничен для всех случаев? Да Немного не понял, что подразумевается под граничностью? Victor__v писал(а): Переносим из одного места в другое? Нет Почему не переносим? Локальные объявления можно написать где угодно. Victor__v писал(а): Доп.расходы? Имеются, тот же jmp строить ( +15 доп.тактов) Да это уже не имеет особого значения. Тут же сработает обычное статическое предсказание перехода, и 15 тактов не будет. Victor__v писал(а): Потоконезависимо? Так же, как и другие слова Форта. А вот стек возвратов предназначен просто для другого, и помещать туда данные методологически некрасиво. |
Автор: | Victor__v [ Вт окт 11, 2016 20:03 ] |
Заголовок сообщения: | Re: Локальные переменные |
Граничность то и подразумевает, что поместить можно всё что угодно А переносимость... Скорее моё специфическое требование. Чем меньше в коде вызовов, тем легче провести целевую компиляцию. Займусь этим как-нибудь, когда не в лом будет. Именно это и подразумевалось. А потоконезависимость. Ну, мало ли. Вместо user укажете variable Цитата: А вот стек возвратов предназначен просто для другого Да, предназначен. Но большая часть стека просто пустует. Непорядок. Цитата: помещать туда данные методологически некрасиво Значит >R 2>R 2R> плохо, бектрекинг плохо. Си отстой а разработчики Winapi переворачиваются в гробу от данной некрасивости |
Автор: | Hishnik [ Ср окт 12, 2016 03:12 ] |
Заголовок сообщения: | Re: Локальные переменные |
Victor__v писал(а): А потоконезависимость. Ну, мало ли. Вместо user укажете variable Сейчас можно легко обеспечивать многозадачность, что в целом резко снижает актуальность потоков. К тому же не вполне понятно, как локальные объявления могут быть зависимыми от этого дела. User внутри локального объявления все равно user, а variable все равно variable. Victor__v писал(а): Значит >R 2>R 2R> плохо, бектрекинг плохо Использование стека возвратов не по назначению - это хак. Бектрекинг тут ни при чем, поскольку представляет собой алгоритмический подход, независимо от используемого языка. Плох не сам подход как таковой, а его неподходящее применение. |
Автор: | KPG [ Вт май 22, 2018 09:25 ] |
Заголовок сообщения: | Re: Локальные переменные |
Расширение семантики локальных переменных ForthOS Local Variables (google translate) Код: Введение ForthOS намеренно отходит от направления ANSI Forth в реализации «локальных переменных». В ForthOS правильнее назвать объект «локальными константами». Примеры, вероятно, самый простой способ понять объект. Локальные константы : sum+1 { a1 a2 } a1 a2 + { sum } sum 1+ ; Скобки указывают ячейки в стеке. Каждая ячейка выталкивается из стека, и ее значение становится доступным как именованный аргумент. Объем таких имен находится в конце функции. Как видно из примера, можно добавлять последовательные имена, поскольку идентифицируются дальнейшие константные значения. Возвращаемые значения (с соблюдением форматирования стека) : sum+1 { a1 a2 - result } a1 a2 + { sum } sum 1+ ; Это определение очень похоже на предыдущее, за исключением того, что в исходном определении локальных значений добавлен «результат». «result» не является идентификатором в области действия функции, однако ForthOS записывает, что эта функция приняла два аргумента и возвращает одно значение. При выходе из функции, если стек не изменился ожидаемым образом, выдается исключение. Переменные форматы возврата : возможно { val - val 'T | F } val 0> if val 1+ true else false then ; В этом варианте «val 'T | F» указывает на то, что функция возвращает один или два аргумента. Фактические значения не применяются. P.S. В SPF4, наверное, такой синтаксис не обработается. |
Автор: | Victor__v [ Вт май 22, 2018 20:35 ] |
Заголовок сообщения: | Re: Локальные переменные |
KPG писал(а): Расширение семантики локальных переменных ForthOS Local Variables (google translate) ... Немного сбивает с толку. Это как chess делает в теме viewtopic.php?f=2&t=3141&view=unread#unread Так что ль? Впечатление складывается такое |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |