Duff's device construction in C/C++/Java/PHP/Javascript

В 1983 году Томас Дуглас Дафф из Торонто во время оптимизации раскрутки одного цикла открыл необычную конструкцию на C:

switch(count%8){
case 0: do{ *to = *from++;
case 7:  *to = *from++;
case 6:  *to = *from++;
case 5:  *to = *from++;
case 4:  *to = *from++;
case 3:  *to = *from++;
case 2:  *to = *from++;
case 1:  *to = *from++;
  }while(--n>0);

Он обнаружил, что с выражением switch можно выделывать весьма хитрые фокусы. Пока вы соблюдаете синтаксис, вы можете вкладывать в выражение switch различные выражения выбора или итерации, что позволяет эффективно переходить в любую функцию или выходить из нее. Здесь можно ознакомиться с перепиской Даффа, где он рассказывает о своем открытии

Вот пара примеров:

// первая итерация начинается с определенной метки case
switch (num % 5) {
            case 0: do { i++;
            case 4:         i++;
            case 3:         i++;
            case 2:         i++;
            case 1:         i++;
                        }     while (--n > 0);

}

или так

switch (num % 2) {
    case 0:   do { std::cout << "num = " << num << std::endl;;
    case 1:           std::cout << "num = " << num << std::endl;;
                 }       while (--num > 0);

}

Причем все они компилируются и работают. Я встречал использование такого трюка в примерах написания так называемых сопрограмм, определяемых в макросах. Вот пример - msdn.
Стоит отметить, что данная особенность - при отсутствии break, управление внутри блока передаётся «вниз и насквозь» от инструкции, стоящей под одной меткой case, к инструкции, стоящей под следующей меткой case - характерна только для С и С++, в остальных языках мы будем получать предупреждения о синтаксической ошибке. Например, в Java компилятор будет ругаться на первой же метке case, так же ведет себя интерпретатор Javascript. Попытка проверки на PHP тоже завершилась сообщением интерпретатора об ошибке - Parse error: syntax error, unexpected 'case' (T_CASE).
Целесообразность и эффективность использования такой конструкции ставится под сомнение, сам Дафф в своей переписке - см. выше - указывает на ряд ограничений и слабой целесообразности такой конструкции. Но тем не менее, есть источники, указывающие на присутствие в коде реализации такой конструкции в протоколе SSH.
Think about it!