Указание поведения программы во время выполнения - PullRequest
3 голосов
/ 06 февраля 2012

Существуют ли какие-либо языки / расширения, которые позволяют программисту определять общее поведение программы во время выполнения во время определенных сегментов кода?

Некоторые языки с сборкой мусора позволяют изменять поведение GC во время выполнения.Как и в lua, функция collectgarbage позволяет вам это делать.Так, например, вы можете остановить GC, если хотите убедиться, что ресурсы ЦП не используются в сборке мусора для критической части кода (после чего вы снова запускаете GC).

I 'Я ищу общий способ указать предполагаемое поведение программы, не прибегая к указанию конкретных настроек GC.Меня интересует даже метод спецификации на бумаге (то есть то, к чему программист мог бы обратиться, но не программный синтаксис, который бы фактически реализовывал такое поведение).Дело в том, что это можно использовать для указания критических участков кода, которые не следует прерывать (зависящее от времени ожидания), или других предполагаемых атрибутов определенных путей кода (максимальное время между выходом и входом или двумя выходами, среднее время выполнения,так далее).

Например, этот синтаксис может описывать, что максимальное время, которое должно занять latencyDependentStuff, составляет 5 миллисекунд:

requireMaxTime(5) {
   latencyDependentStuff();
}

Кто-нибудь видел что-нибудь подобное раньше?

...