Журнал Компьютерра - 34 от 18 сентября 2007 года   ::   Компьютерра

Страница: 80 из 150

Алгоритм использует метод быстрых приближений Ньютона и включает следующую «очевидную» строчку с использованием магического числа (сопутствующий ей комментарий, как правило, встречается во всех популярных описаниях алгоритма):

i = 0x5f3759df – (i >> 1); // what the f..k?

Пример переписывания «мнимо древнего» кода – одно из первых в истории веб-приложений бизнес-класса, Viaweb. Оно было написано знаменитыми хакерами Полом Грэмом и Робертом Моррисом на Lisp и через некоторое время куплено Yahoo и переименовано в Yahoo!Store. Впоследствии Yahoo, озабоченная экзотичностью Lisp’а, заставила своих программистов провести «археологические изыскания» для переписывания приложения с нуля на Perl и C++. По слухам, код современного Yahoo!Store очень похож на интерпретатор Lisp (иллюстрируя тем самым 10-е правило Гринспуна).

Пример проблемы объективной древности – Strongtalk, эффективная реализация языка Smalltalk с возможностью статической типизации была некогда куплена Sun, а через много лет возвращена программистскому сообществу как open source. Естественно, все исходники виртуальной машины (языки – C и ассемблер) требовали древних версий компиляторов. И если C-часть была «переведена» на современный диалект языка довольно быстро, то ассемблерные куски до сих пор требуют Borland TASM 4.0 (еще DOS’овская версия), поэтому приходится распространять как исходный код, так и скомпилированные «энтузиастами-археологами» файлы.

Пример «археологических изысканий ради понимания алгоритма» – мы знаем, что формат файла Microsoft Word как таковой существует.

|< Пред. 78 79 80 81 82 След. >|

Java книги

Контакты: [email protected]