30 квітня 2010
Страшний сон джава-програміста :)
/* Є шматок коду з операторами goto. Як переробити його так, щоб Джава його могла скомпілити?
Послідовність виклику функцій не змінювати, додаткові змінні та функції не вводити, switch не використовувати :) */ class Goooo { public static void main(String args[]) { XXXX x = new XXXX(args); l1: if(x.a()) goto l2; if(x.b()) goto l3; goto end; l2: if(x.c()) goto l1; if(x.d()) goto l3; goto end; l3: if(x.e()) goto l1; if(x.f()) goto l2; end: } }
Змінено 14 липня 2010 24:18
Категорії: Комп'ютерні мови
27 лютого 2009
Дерево замість XML
Сьогодні XML — один із найрозповсюдженіх форматів даних, в який можна втиснути будь-яку структуру. Та чи бездоганний він?
По-перше, закриваючі теги. XML вимагає їх завжди — або у вигляді окремого тега наприкінці тіла, або у вигляді знаку «/» перед закінченням одинарного тега. XML — не HTML, де закриваючі теги часто необов'язкові (хоча й бажані), і місце закінчення тіла для кожного з тегів визначається по-різному. Повторення імені тега XML при його закритті — надлишкове, можна було б обійтися чимось назразок </>, але XML ставить перед собою задачу сумісності з HTML — звідси й цей надлишковий синтаксис. Втім, надлишковість XML — дрібниця в порівнянні з тим, що увесь блок даних має бути охоплений зовнішнім тегом, який сам по собі не несе майже ніякої важливої інформації. До чого це веде на практиці? В XML-файл не можна дописувати дані вкінці — тільки переписувати увесь файл. XML непридатний для ведення логів (хоча окремий запис логу може мати XML-подібну структуру).
Змінено 10 березня 2010 15:42
Категорії: Комп'ютерні мови