hello, world

西暦 2015 年 08 月 19 日
ダレナン博士の研究所
研究報告書 No.18
題名:"hello, world"の深い意味
報告者:ログ
“hello, world”を訳すと、”こんにちは, 世界”であるが、その語の両端に” “がつくことで、プログラミング
上では文字列と認識される。この文字列が日本で初めて発表されたのは、B.W. カーニハンと D.M. リッチー
の著による「プログラミング言語 C 第 2 版 ANSI 規格準拠」の本で、プログラミング言語を学ぶ上で有名な
文字列の筆頭に挙げられる。日本でのこの本の初版は 1989 年になり、共立出版 1)から販売されている。し
かしながら、本国アメリカでの初版は、ANSI の標準化前の 1978 年まで遡ることができる。ただし、”hello,
world”は標準化前の本でも記載されている。
そのカーニハンとリッチー2,3)は、AT&T ベル研究所に所属していた計算機科学者で、プログラミング言語
の C の開発者として著名な方々である。そのため、先の本も愛称をもって K&R と略されることもある。今
となってはやや古典的な言語として扱われる C ではあるが、今日の様々なプログラミングの母体となった言
語でもあるために、その地位は未だにゆるぎない。
“hello, world”は、その本の Introduction の次の A Simple C Program に記述され、
main( ){
printf("hello, world");
}
となる 4)。( )は関数であることを示し、main( )は全体を管理する関数、printf( )は結果を出力する関数であ
る。このため、上記のプログラムは、実行として、”hello, world”という文字列を出力(印字)せよ、という
内容となる。このように C 言語は関数によって様々な処理が実行される。
C 言語の細かな実行処理の方法はさておき、ここで問題としたいのは、なぜカーニハンとリッチーが”hello,
world”という文字列を選んだかである。インターネットの歴史において、この本の初版であった 1978 年は
インターネットがまだ普及していない時代である 5)。しかしながら、1974 年に V. カーフと R. カーンによ
って論文上で初めて Internet という言葉が登場し
6)
、1975 年にカーニハンとリッチーが所属していた
AT&T ベル研究所で UNIX OS 上での C 言語の開発が進んだのを機に、徐々に Internet も次世代への技術の
布石として水面下では本格的に研究されつつあったのであろう。K&R には具体的に Internet に関する内容は
ないものの、この本の著者であるカーニハンとリッチーにはその布石がはっきりと見えていたに違いない。す
なわち、”hello, world”とは、この言語を学ぶ人に向けた単なる文字列メッセージでなく、Internet 時代の到
来に向けた 2 人のお茶目なメッセージであったに違いない。まさに world wide である。
1) http://www.kyoritsu-pub.co.jp/bookdetail/9784320026926 (閲覧 2015.8.19)
2) https://ja.wikipedia.org/wiki/ブライアン・カーニハン (閲覧 2015.8.19)
3) https://ja.wikipedia.org/wiki/デニス・リッチー (閲覧 2015.8.19)
4) http://www.math.utah.edu/computing/compilers/c/Kernighan-CTutorial.pdf (閲覧 2015.8.19)
5) http://www.densan.net/doc/0107_2003.html (閲覧 2015.8.19)
6) http://www-net.cs.umass.edu/653-04/documents/cerfkahn.pdf (閲覧 2015.8.19)