Г-н Фаршеклоакин (spamsink) wrote,
Г-н Фаршеклоакин
spamsink

Внезапно нетранзитивное

В былые времена символов в кодировках было немного, и поэтому, хотя в байте уже было 8 бит, о возможности наличия байтов с установленным старшим битом в нормальных человеческих текстовых строках (а не, скажем, в сжатом представлении) никто не заботился. От этого, как говорится, байты с установленным старшим битом служили неиссякаемым источником лулзов.

В приведенной программе подчеркивание внутри строк аналогично символу обратной косой черты в языке Си. Тип ALFA - массив символов, умещающийся ровно в одно машинное слово.


 00001    1  0  PROGRAM MAIN(OUTPUT);
 00001    2  1  VAR A,B,C:ALFA;
 00007    3  2  BEGIN
 00010    4  2  A := ’_000_000_000_000_000_000’;
 00011    5  2  B := ’_200_000_000_000_000_000’;
 00012    6  2  C := ’_177_177_177_177_177_177’;
 00013    7  2  WRITELN(A > B, B > C, C > A);
 00050    8  0  END.
           *EXECUTE
    TRUE    TRUE    TRUE


Предлагается представить себе и ужаснуться, что могло происходить с сортированными контейнерами, если в них помещали подобные строки.

В качестве задания со звездочкой предлагается подумать, как могла была быть устроена система команд, приводящая к такому парадоксальному результату.

This entry was originally posted at http://spamsink.dreamwidth.org/1058374.html. Please comment there using OpenID.
Tags: retrocomputing
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments