Описание тега trampolines
Метод имитации (или увеличения) переходов / вызовов функций с помощью настраиваемой диспетчеризации. Одного батута достаточно, чтобы выразить все передачи управления программой.
0
ответов
Как отличить импортированную функцию от импортированной глобальной переменной в PE-заголовке DLL?
Я пишу небольшой инструмент, который должен иметь возможность проверять произвольный интересующий процесс и проверять, были ли трамплины какие-либо из его статически связанных функций. (Примером батута может быть то, что Microsoft Detours делает с п…
20 дек '17 в 08:39
1
ответ
Как написать функции анализатора / оценки, такие как `eval-if`, в форме CPS?
Я пытаюсь написать игрушечный интерпретатор Python Scheme, основанный на мета-циклическом оценщике в SICP. Поскольку python поддерживает только стек вызовов ограниченной глубины, я должен исключить хвостовые вызовы. Я читал о батутах и реализовал …
15 фев '12 в 05:37
1
ответ
Функция экспорта должна быть установлена как чистая функция
В следующем фрагменте кода батута я буду звонитьonclick = export(add,5) от моей кнопки присутствует на мой взгляд. Как мне убедиться, что этот вызов всегда возвращает значение 5 без раскомментирования строки, где //x=0 в коде ниже? var x = 0; functi…
07 май '17 в 05:55
3
ответа
Аппликативные против монадических комбинаторов и свободная монада в Скалазе
Пару недель назад Dragisa Krsmanovic задал вопрос о том, как использовать свободную монаду в Scalaz 7, чтобы избежать переполнения стека в этой ситуации (я немного адаптировал его код): import scalaz._, Scalaz._ def setS(i: Int): State[List[Int], Un…
10 июн '14 в 22:18
1
ответ
Переадресация обратного вызова из C++ в ObjC
Я встраиваю движок C++ в проект ObjC iOS, используя.mm (ObjC++). // consumer.m Wrapper* wrapper = ...; [wrapper setupWithTarget: self selector: @selector(gotData:)]; -(void) gotData: (int) k {...} //wrapper.mm @interface Wrapper() { id targ; SEL sel…
13 мар '18 в 01:24
7
ответов
Что такое функция батута?
Во время недавних обсуждений на работе кто-то упомянул батутную функцию. Я прочитал описание в Википедии. Достаточно дать общее представление о функциональности, но я бы хотел кое-что более конкретное. У вас есть простой фрагмент кода, который будет…
10 окт '08 в 00:39
1
ответ
Что означают "Батуты во время выполнения" в Замечаниях по выпуску MonoTouch 6.0.8?
В примечаниях к выпуску MonoTouch 6.0.8 говорится: Батуты во время выполнения: больше нет необходимости вручную управлять батутами во время выполнения Mono, батуты теперь обрабатываются динамически. Что это значит? Как вы вручную управляете батутам…
19 дек '12 в 00:17
1
ответ
Код единства батута не работает
Поэтому я пытаюсь создать реалистичный прыжок на батуте, вместо того, чтобы игрок провалился через батут, а затем выстрелил назад, одновременно позволяя игроку мгновенно выстрелить при контакте с батутом и снизить относительную гравитацию. Куда я ид…
19 фев '14 в 17:14
2
ответа
Почему функция return/redo оценивает функции результата в контексте вызова, а результаты блока не оцениваются?
Прошлой ночью я узнал о параметре /redo, когда вы return из функции. Это позволяет вам вернуть другую функцию, которая затем вызывается на вызывающем сайте и повторно вызывает оценщик из той же позиции. >> foo: func [a] [(print a) (return/redo…
07 фев '13 в 21:02
2
ответа
Дизайн шаблона для исключительных безопасных батутов
Этот вопрос следует отсюда. Тем не менее, предыдущий вопрос был сформулирован настолько плохо (на самом деле неправильно), что было предложено задать вопрос с нуля. У меня есть таблица указателей на C-функции. В некотором C-коде (назовем его lib-X) …
07 янв '15 в 18:26
1
ответ
Как сделать функцию Hook and Trampoline в одном для перехвата WinAPI
Итак, я изучал концепцию перехвата и использования трамплинов для обхода / выполнения данных в функции перехвата WinAPI (в другом исполняемом файле с использованием внедрения DLL). До сих пор я знаю, как сделать это (батут и крюк), используя смесь с…
11 июл '17 в 19:26
2
ответа
Как использовать TailCalls?
Если я правильно понимаю, scala.util.control.TailCalls может использоваться, чтобы избежать переполнения стека для нерекурсивных функций с помощью батута. Пример, приведенный в API, прост: import scala.util.control.TailCalls._ def isEven(xs: List[In…
13 дек '10 в 12:34
1
ответ
Почему вложенные FlatMaps могут взорвать стек в Scala?
Я изучаю трюк с батутом в Скале, читая эту статью Рунара Бьярнасона " Безжизненная скала со свободной монадой". Но я застрял в разделе 4.3 "Легко ошибиться". Меня смущает то, как f(x) может напрямую вызвать другой внутренний вызов, учитывая FlatMap(…
13 июл '17 в 15:20
0
ответов
Как создать хороший универсальный API для построения строк?
В наших приложениях мне часто нужно загружать изображения для таких элементов пользовательского интерфейса, как кнопки. Есть несколько вариантов каждого изображения, например, пейзаж / портрет, отключено / включено, нажата / обычная и даже цвета, та…
07 май '12 в 09:28
1
ответ
Батут как функтор
Я пытаюсь продемонстрировать Батут [+A] как Функтор (т. Е. Предоставляет карту [B](f: A = >B)). Я понимаю классическую реализацию батута как монады, описанную в Stackless Scala. Однако, есть ли способ реализовать функцию карты (а не flatMap) только …
24 июн '14 в 09:59
3
ответа
Каковы некоторые хорошие способы реализации исключения хвостовых вызовов?
Я написал небольшой интерпретатор Scheme в безобразной смеси C/C++, но мне еще предстоит реализовать правильные хвостовые вызовы. Я знаю о классическом Чейни о алгоритме MTA, но есть ли другие хорошие способы реализации этого? Я знаю, что мог бы пом…
14 май '11 в 16:06
1
ответ
Стиль передачи продолжения против агрессивно урезанного стека вызовов?
Я рассматриваю что-то вроде CPS для использования в качестве переводчика для актерского языка. Аргументы функции передаются в массиве вариантов, а продолжение возвращается в том же массиве, поэтому простая функция def add (x,y) => x + y поэтому в…
06 фев '09 в 16:42
1
ответ
Как создать батутную функцию для крючка
Я заинтересован в подключении, и я решил посмотреть, смогу ли я подключить некоторые функции. Я не был заинтересован в использовании библиотеки как обходной путь, потому что я хочу иметь опыт делать это самостоятельно. С некоторыми источниками, кото…
17 фев '12 в 19:57
2
ответа
MonoTouch SIGABRT Ошибка "Закончились батуты типа 2"
При запуске приложения MonoTouch на нативном устройстве (iPad) появляется ошибка SIGABRT / закончились батуты. Это происходит довольно рано в моем приложении - я создаю раздел, используя MonoTouch.Dialog. ItemTypeRadio = new RootElement ("Type", new…
19 фев '12 в 23:28
1
ответ
JSON.NET: Не работает с MonoTouch "Закончились батуты типа 2 "
Я пробовал JSON.NET и порт MonoTouch по адресу https://github.com/ayoung/Newtonsoft.Json но получаю эту ошибку сериализации: Ran out of trampolines of type 2 in '/private/var/mobile/Applications/A901C3E6-D9AB-44AF-AA13-6B6E44467BAE/StaffRostering.ap…
03 авг '12 в 04:26