ФЭНДОМ


Matrix-small

Фрагмент скриншота Матрицы при большом увеличении. Хорошо виден участок исходного кода, записанный котоканой.

Вот ведь какая, понимаешь, загогулина!
~ Дарт Херохито про какой-то иероглиф
И чего тут это, значит, сложного такого?
~ Язык Черномырдина про Японский язык

Япо́нский язы́к (яп. 日本語, ингриш, идиш jopanizz) — язык программирования, по недоразумению ставший государственным языком Японии. Число говорящих — 42 человека — значительно превышает число понимающих (13 человек).


Дискуссия о правильном русском названии

Существует два основных мнения о том, как правильно называть по-русски японский язык. Некоторые филологи полагают, что правильное название — японский езык, другие же считают, что епонский язык является более корректным вариантом. Все они, однако, едины в том, что написание епонский езык относится к просторечиям и в официальных документах использоваться не должно.

Названия, в которых используются слова ипонский, иппонский, ёпонский, ёппонский, ебонский, изык, йэзыг, нихонго и несколько других, ещё более авангардных, пока не вошли в широкую практику. Общее число возможных вариантов современной науке неизвестно, его выяснение требует дополнительных исследований в области комбинаторики.

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

Происхождение

Японский язык был придуман в 404 году Дартом Херохито для написания драйвера мыши к Матрице. К сожалению, именно в тот момент, когда Херохито собирался компилировать драйвер, Чубайс отключил по всей Японии энергию ки за неуплату, и начались Тёмные Века. Когда подача ки была восстановлена, оказалось, что спецификации языка уже наглухо вкомпилированы в ядро Матрицы в качестве драйвера монитора, и менять тут что-либо нельзя из соображений обратной совместимости.

Пришлось срочно обучить языку нескольких самураев поплоше, из тех, которых в случае чего не так жалко. Так появились первые программисты. Но это уже совсем другая история.

Также существует один более известный носитель языка ингриш, который проживает в мультсериале Drawn Together под именем Линг-Линг.

Классификация

По шкале Рихтера японский язык относится к группе корнеизолированных. Это значит, что он настолько изолирован от своих корней (языка идиш), что не имеет с ними абсолютно ничего общего. Это является вершиной парадигмы виртуализации и инкапсуляции в современных языках.

Письменность

Иероглифы

До середины XX века японская письменность вызывала в незнающих язык только одно выражение -"Японский годородовой,как же с этим разобраться!"и представляла собой разновидность ребуса пишущий рисовал первые пришедшие в голову значки, а читатель должен был догадаться, что они означают. Но языковая реформа 1954 года упразднила большинство иероглифов, оставив только 65536 самых общеупотребительных. Казалось бы, ввиду чрезвычайной компактности языка (полный орфографический словарь, изданный в Токио-3 в 2000 году под редакцией Мураками, содержит всего 614 слов) и такой усечённый набор символов остаётся несколько избыточным, однако на самом деле это не так (см. ниже).

Для простоты запоминания каждому иероглифу присвоен порядковый номер от 0 до 65535. Квадратный корень из этого номера — так называемый радикал — используется для быстрого словарного поиска.

Согласно своим радикалам иероглифы разделены на диапазоны, у каждого из которых есть своё особое назначение:

0—12
Используются для записи слов японского языка. (На самом деле используются не все 144 иероглифа, а только первые 73. Остальные представляют собой упрощённые варианты начертания, адаптированные для женщин, собак и негров.)
13—15
Зарезервированы для написания имён Императора.
16—24
Применяются в письменных заклинаниях и молитвах. Произношения и самостоятельного смысла не имеют.
25—30
Используются в манго для точной фонетической передачи боевых криков.
31—32
Управляющие символы для терминалов Матрицы. Не имеют графического представления.
33—60
Запрещены цензурой за непристойный вид. Следует обратить внимание, что в этот диапазон входит символ 42 который является символом, содержащим «Ответ на главный вопрос жизни, вселенной и всего такого». В некоторых толкованиях для этого еще используют символ 41 (так как достоверно не известно Deep Thought имел ввиду натуральное число, десятиричное, восьмиричное, шеснадцатиричное…).
61—72
Секретный военный диапазон (в частности, 67—68 — имена покемонов, 69 — обозначение приема розовой манги, 71 — названия моделей огромных боевых роботов).
73—102
Декоративные иероглифы. Используются в наружной рекламе и каллиграфии, произношения не имеют.
103—127
Промышленные иероглифы. Применяются в чертежах, на картах, дорожных знаках и т. п. Запоминать их значение запрещено Конституцией Японии.
128—255
Свободные радикалы. Зарезервированы для будущего использования.
256
Иероглиф «Конец алфавита». Традиционно ставится на последней странице последнего тома школьных букварей.

Алфавиты

Кроме иероглифов, раньше в японском языке использовались ещё три алфавита: высокий (так называемая кото́кана) — для общения со священными животными, низкий (херо́гана) — для записи анекдотов про глупых китайцев и левый (рома́дзи) — для обеспечения совместимости с другими языками. В настоящее время все они устарели и официально выведены из употребления, их стабильная работа в современных и будущих версиях японского языка не гарантируется.

Направление письма

Исторически сложилось так, что при письме символы располагаются столбцами, снизу вверх и справа налево, а страницы в книгах — от последней к первой. При этом чтение, однако, происходит по строкам слева направо и сверху вниз, с первой страницы к последней. Эта особенность придаёт японской литературе особое очарование. Последний символ внизу каждого столбца не читается и не произносится, но является обязательной квинтэссенцией всего столбца и сохраняет в себе всю его суть (то есть является контрольной суммой). Если в ходе прочтения выясняется, что последний символ не совпал по смыслу (не сошлась контрольная сумма) текст в прочтенном столбце считается недействительным и должен быть проигнорирован читающим. Существует непроверенная версия, что в столбцах в которых последний иероглиф не совпал по смыслу агенты матрицы способны передавать друг другу некие сообщения и эти сообщения можно прочитать если инвертировать смысл каждого иероглифа в столбце, включая последний.

Произношение

Важной особенностью японского языка является вариативное произношение: слово, записанное одними и теми же иероглифами, в зависимости от контекста произносится по-разному и имеет различные значения. Например, слово «私» в различных случаях может означать:

  • о-факку — при резкой неожиданной боли (например, от удара молотком по пальцу) просьба к богам о милосердии.
  • о-шитто — выражение уверенности в том, что возникшее препятствие вполне преодолимо.
  • о-дикку — обращение к незнакомому голому мужчине, обнаруженному в платяном шкафу.
  • о-канто — вежливое обращение к женщине.
  • о-данну — согласие с трудным, но необходимым приказом или распоряжением.
  • о-майгоддо — грубое ругательство, недопустимое в приличном обществе.

Влияние на другие языки

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

Форт

Язык программирования Форт позаимствовал из японского оригинальную (так называемую обратную польскую) нотацию записи условного оператора. Сравните примеры кода на этих двух языках:

   о-канэ га /* Денег */
   най       /* нет */
нара         /* если */
   о-сакэ мо /* выпивки тоже */
   най       /* нет */
хадзу        /* тогда */
   MONEY @
   NOT
IF
   0 
   DRINK !
THEN 

C

Впервые возникшая в японском языке концепция вертикального письма получила дальнейшее развитие в более поздней разработке, C [1]:

            /*                                     ,*/
            #include                              <time.h>
             #include/*                     _  ,o*/  <stdlib.h>
             #define  c(C)/*     -      . */return      ( C); /*    2004*/
              #include   <stdio.h>/*.   Moekan           "'   `\b-'     */
                typedef/*  */char   p;p* u                     ,w       [9
                  ][128] ,*v;typedef  int _;_   R,i,N,I,A               ,m,o,e
             [9],  a[256],k    [9], n[               256];FILE*f       ;_ x   (_ K,_ r
        ,_ q){;   for(;                                         r<     q    ; K       =((
     0xffffff)   &(K>>8))^                                        n[255     &        ( K
   ^u[0        +                                     r  ++      ]     )]);c          (K
  )}        _ E                           (p*r,    p*q  ){     c(          f         =
          fopen                     (r  ,q))}_   B(_ q){c(    fseek        (f,      0
        ,q))}_ D(){c(  fclose(f ))}_  C(  p    *q){c(  0-    puts(q    )   )}_/*   /
      */main(_ t,p**z){if(t<4)c(   C("<in"       "file>"    "\40<l"   "a"  "yout> "
     /*b9213272*/"<outfile>"   ) )u=0;i=I=(E(z[1],"rb")) ?B(2)?0 :   (((o   =ftell
    (f))>=8)?(u     =(p*)malloc(o))?B(0)?0:!fread(u,o,1,f):0:0)?0:  D():0      ;if(
   !u)c(C("      bad\40input  "));if(E(z[2],"rb" )){for(N=-1;256> i;n[i++] =-1   )a[
   i]=0;       for(i=I=0;   i<o&&(R  =fgetc(   f))>-1;i++)++a[R] ?(R==N)?( ++I>7)?(n[
  N]+1       )?0:(n [N   ]=i-7):0:   (N=R)    |(I=1):0;A =-1;N=o+1;for(i=33;i<127;i++
  )(        n[i   ]+  1&&N>a[i])?    N= a     [A=i]     :0;B(i=I=0);if(A+1)for(N=n[A];
 I<       8&&   (R  =fgetc(f ))>    -1&& i   <o        ;i++)(i<N||i>N+7)?(R==A)?((*w[I
 ]             =u [i])?1:(*w[I]=   46))?(a             [I++]=i):0:0:0;D();}if(I<1)c(C(
              "  bad\40la" "yout  "))for(i            =0;256>(R=  i);n[i++]=R)for(A=8;
             A  >0;A --)   R  = ( (R&1)==0)          ?(unsigned int)R>>(01):((unsigned
            /*kero  Q'        ,KSS  */)R>>         1)^        0xedb88320;m=a[I-1];a[I
            ]=(m           <N)?(m=   N+8):        ++        m;for(i=00;i<I;e[i++]=0){
           v=w         [i]+1;for(R                      =33;127  >R;R++)if(R-47&&R-92
           &&       R-(_)* w[i])*(                   v++)=    (p)R;*v=0;}for(sprintf
                  /*'_  G*/  (*w+1,              "%0"     "8x",x(R=time(i=0),m,o)^~
                0)   ;i<       8;++           i)u      [N+ i]=*(*w+i+1);for(*k=x(~
                  0,i=0     ,*a);i>-        1;      ){for (A=i;A<I;A++){u[+a [ A]
                ]=w[A       ][e[A]]  ;     k     [A+1]=x (k[A],a[A],a[A+1]
              );}if     (R==k[I])      c(      (E(z[3  ],"wb+"))?fwrite(
             /* */   u,o,1,f)?D          ()|C("  \n    OK."):0    :C(
            "  \n  WriteError"            ))  for  (i  =+I-
           1  ;i >-1?!w[i][++                 e[+ i]]:0;
             ) for( A=+i--;                 A<I;e[A++]
             =0); (i <I-4                 )?putchar
             ((_   )  46)                  | fflush
            /*'      ,*/                  ( stdout
            ):       0&                    0;}c(C
           ("       \n                   fail")
           )      /*                    dP' /
                 dP                    pd  '
                '                      zc
                                      */
                                     }

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

Лисп

Как уже заметил внимательный читатель, в японском языке отрицание расположено в самом конце предложения, что не позволяет понять его смысл до тех пор, пока предложение не прочитано целиком. Создатели базирующегося на японском языке Лиспа пошли дальше: радикально упростив алфавит, они вместе с тем довели до абсолюта парадигму отложенного осознания. Предложения языка Лисп невозможно понять, даже если их дочитать до конца несколько раз подряд.

В настоящее время ведётся работа над следующим поколением Лиспа — астрально-ориентированным языком Лисп# (произносится Лисп хана, от яп. , хана — «цветок»). В нём понимание исходного кода программистом будет невозможно даже при переходе в состояние сатори: задача понимания будет целиком возложена на компилятор и исполнительную среду.

Знаете ли вы, что

  • В японском языке нет слова для обозначения понятия «пердимонокль».
  • В японском языке нет слов на букву Ы.
  • Слово «кавай» японцы используют при первой возможности. И при последней возможности.
  • Около 90 % японцев не знают японский язык.
  • Остальные 10 % японцев и не догадываются, что знают японский язык.
  • Чак Норрис — единственный знаток японского языка.
  • Японский язык для чайников содержит в себе ровно 54 308 428 790 203 478 762 340 052 723 346 983 453 487 023 489 987 231 275 412 390 872 348 475 страниц.

Ссылки

См. также