ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
7 мая
306939 Топик полностью
fk0, легенда (11.02.2012 21:01, просмотров: 250) ответил lentjaj1 на Если в Си или С++ дали бы доступ к стеку, может народ не городил велосипедов.
C++ пока оставим в покое. В чём вам нету доступа к стеку? В приличных ОС есть кооперативная многозадачность (man makecontext) именно для того. Ну и в самом C есть setjmp/longjmp. В принципе на последних можно сделать многозадачность без ассемблера. Хотя написать уж кусочек в 20 строк на ассеблере, я думал, ассемблеристы могут. Не надо валить с больной головы на язык C -- всё что надо есть. Да, для циклического сдвига пишется inline функция с ассемблерной вставкой. GCC позволяет. Только не факт что нужен циклический сдвиг, и не факт что компилятор оптимизирует лучше. Ниже про Forth вспомнили. Вообще есть такая штука -- slang (http://en.wikipedi …programming_library%29). Копался как-то давненько внутрях, там интересно всё устроено. Именно, что по принципу форта. Есть стек, через него передаются аргументы, в нём возвращаемый результат. И собственно говоря писать-то таким образом можно и непосредственно на C и внутренние функции использовали такие методы. Стек, правда, был независимый от C-программы. Ну так и в Forth стек возвратов отличается от стека данных. С одним стеком такое не провернёшь. Стек для данных, понятно, просто глобальная переменная-указатель и набор методов для работы с ним.
[ZX]