Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Categories:

всячина для программистов

1. Исходники "Каиссы" (PDF), первого чемпиона мира по компьютерным шахматам. Также работают над эмулятором той машины, на которой она бежала. via (там обсуждение в комментариях).

Комментарии к коду попадаются замечательные, да.

2. Coders at Work, судя по тем отрывкам, что я видел, замечательная книга, и собираюсь ее вскорости прочитать. (В последние годы было несколько попыток написать подобные книги; одна из них, Beautiful Code, тоже казалась поначалу очень удачной, но когда мне в руки попала сама книга, как-то совершенно "не пошла").

3. The different attitudes of computer scientists and economists. Стоит прочитать как минимум ради интересного примера с American Express в конце записи.

4. Tiny Code.

5. Speaking of tiny code - я посидел немного над Фортом на выходных, вспоминал язык и писал несколько тривиальных штук. Написал, например, квиксорт (а заодно и Mersenne twister, чтобы его проверять). Квиксорт получился вот такой:

\ simple quicksort
: exchange ( i j -- ) 2dup = if 2drop exit then
  2dup @ swap @ ( i j val-j val-i ) rot ! swap ! ;

: simple-part ( start end pivot -- mid )  \ assumes pivot is stored at end
  >r swap r> 2 pick 2 pick ?do ( end stored pivot )
    dup i @ >= if \ exchange elements at stored and i, increment stored
         swap dup i exchange cell + swap ( end stored pivot )
    then cell +loop drop tuck exchange ;  \ exchanged stored and last

: simple-q2 recursive ( start end -- ) 2dup = if 2drop exit then
  2dup 2dup swap - cell / 2/ cells 2 pick + \ choose pivot from middle
  2dup exchange drop dup @ simple-part \ put pivot at right, partition
  2dup = if dup cell - rot rot swap ( s m-1 m e )
         else dup cell + rot        ( s m m+1 e )
  then simple-q2 simple-q2 ;

: simple-qsort ( addr u ) 1- cells over + simple-q2 ;

Правда, подозреваю, что мои слова слишком сложны, и у опытного программиста на Форте получилось бы на несколько слов больше, зато куда проще и понятнее. Попробую позже рефакторнуть это дело.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 15 comments