Мне кажется, вы слишком фанатично читали SICP. И теперь на любом ЯП пытаетесь воспроизвести код на Lisp/Scheme/Haskell. Функциональное программирование - замечательная вещь. Но когда вы пишете на императивном ЯП - будьте добры использовать стандартные(для данного ЯП) практики(и стиль оформления кода принятый в вашей компании). Когда программисты пишут код сообща, и в команде не все являются продвинутыми гуру, знакомыми с паттернами банды четырёх(или с ФП) - стоит писать как можно более простой и понятный код. Понятный даже студенту, который будет проходить практику в вашей компании. Это признак хорошего тона, что-то вроде этикета в деле написания ПО. Ну а написание комментариев на английском во всех не очень очевидных местах тем более необходимо. Телепатов, я уверен, в вашей конторе не водится. А значит очевидный код + комментарии = тот минимум, который облегчит жизнь вашим коллегам. А значит, и вам тоже.К вашему сведению, использование конструкции: метка: Какой-то код jmp метка Это один из вариантов получения цикла, условие выхода из которого(как правило используют условный переход) прописывается в теле цикла. Очень похоже получается на хвостовую рекурсию, не находите? Данный фрагмент кода вызывает сам себя. Правда вместо параметров функции у нас используются регистры, но это не важно. По определению, это цикл. Не обязательно использовать специальную инструкцию, что-бы организовать цикл. Вообще, многие инструкции ассемблера можно не использовать, если вместо них использовать другие инструкции. Именно на этом строится полиморфизм. Так что со своей специальной инструкцией вы прокололись...
|