Hello World: プログラムの一つ

Hello world(ハロー・ワールド)は、画面に「Hello, world!」やそれに類する文字列を表示するプログラムの通称である。多くのプログラミング言語において非常に単純なプログラムであり、プログラミング言語の入門書で、プログラムを動かすためのプログラミング言語の基本文法の解説例として提示される。

Hello World: 利用目的, 歴史, 種類
LEDライトの発光を用いた"Hello, World!"の表示

利用目的

ハロー・ワールドは伝統的にプログラミング言語をプログラム初心者に紹介するために使われる。また、ハロー・ワールドはプログラミング言語が正しくインストールされていること、およびプログラミング言語の使用方法を理解するための健全性テストにも使用される。

プログラミング言語C』(第2版)では、初めに「新しいプログラミング言語を学ぶ唯一の道は、それでプログラムを書いてみることである」との考えが示され、プログラムを入力して実行し、出力を確認することを習得すれば、言語の他の要素を学ぶことは容易だと訓示される。そして、「hello, world という単語を印字せよ」との例題が示される。この例題について、まずプログラムのソースコードが示され、次にUNIXにおける典型的なコンパイル・実行方法が例示される。そして、このプログラムの詳細が解説される。

大抵のプログラミング言語の入門書では、このプログラムを作ることを最初の例題としており、ほとんどの場合、新しくプログラミング言語を習得する際に最初に作るのがこのプログラムである。そのため、「世界一有名なプログラム」と呼ばれることもある[要出典]

歴史

Hello World: 利用目的, 歴史, 種類 
ブライアン・カーニハンによる"Hello, world"プログラム (1978)

プログラミングできるコンピュータの開発以来、小さなテストプログラムは存在してきたが、テスト文言として「Hello, World!」を使う習慣はブライアン・カーニハンデニス・リッチーによる著書「プログラミング言語C」(1978年)のC言語バージョンから始まったと言われている。同著書のプログラム例はhello, world(大文字なし、感嘆符なし)を標準出力に出力する。この例はブライアン・カーニハンがまとめたベル研究所の内部資料「Programming in C: A Tutorial」(1974年)を継承したものである。

#include   main( ) {   printf("hello, world\n"); } 

C言語バージョンの以前にはカーニハンの前著「A Tutorial Introduction to the Language B」(1973年)での例があったが、存在が知られている最初のバージョンのプログラムは外部変数を説明するための例だった。プログラムはターミナルに改行を含むhello, worldを出力するものだった。B言語では文字数の長さがASCII文字の4文字までという制限があったため、文言は複数の文字列に分割されていた。前節の例はターミナルにhi!を出力するもので、hello, worldという文言はそれを表す為に複数の文字列を必要とする少し長い挨拶文として紹介された。

main(){   extrn a,b,c;   putchar(a); putchar(b); putchar(c); putchar('!*n'); }  a 'hell'; b 'o, w'; c 'orld'; 

hello, worldの起源はBCPL(1967年)であるとも言われている。この主張はBCPLの発明者ブライアン・カーニハンマーティン・リチャーズアーカイブノートに依るものである。

モダンな言語においてHello Worldは洗練された変化を遂げている。例えば、Go言語は多言語対応プログラムを紹介し、Sun JavaSVGで文言を表し、XL言語は3Dグラフィックの地球で見せている 。hello, worldの出力には、PerlPythonRubyのような言語では一行だけを必要とするかもしれないが、一方で低レベルのアセンブリ言語では数十行の命令を必要とする。マーク・ガスディアル英語版とエリオット・ソロウェイは、グラフィックスやサウンドがテキストより簡単に操作できるようになり、「Hello, World!」のテスト文言が過去のものとなる可能性があることを示唆している。

種類

Hello World: 利用目的, 歴史, 種類 
PSP Homebrew実証実験のためのハロー・ワールド

この文言は句読点頭文字の異なる多数の種類が存在している。その種類はコンマ「,」や感嘆符「!」の有無、頭文字の「H」および「W」が大文字かどうかを含む。いくつかの大文字のみサポートするシステム上の言語では「HELLO WORLD」のように異なる形式の実装を強制し、難解プログラミング言語でのハロー・ワールドはわずかに修正された文字列を出力する。「Hello, world!」以外の文言でも良いので、同様の意味で英語圏で用いられるスラング「Howdy」を使って、「Howdy, World!」が用いられることもあり、日本語プログラミング言語では「Hello World」を直訳した「こんにちは世界」が用いられることもある。

利用目的にも異なる種類がある。LISPMLHaskellのような関数型プログラミング言語では、再帰手法を強調する関数型プログラミングの実例として利用されることがある。一方で、オリジナルの例は副作用を伴った純粋関数型言語に違反した入出力の例として見られる。アセンブリ言語C言語VHDLのような組み込みで使われる言語では、文言を出力することが追加のコンポーネントや他機器との連携なしでは難しい、もしくは、その手法が存在しないことの例として用いられる。マイクロコンピュータ (マイコン)・FPGACPLDなどの機器では、制御間隔と機器連携を実験するLEDの発光(Lチカ)が文言出力の代わりに利用される。

DebianUbuntuaptパッケージシステムでハロー・ワールドプログラムを提供している。利用者はapt-get install helloと入力すると依存ソフトウェアと一緒に同プログラムがインストールされる。それ自身には意味はないが、そのプログラムが健全性テストを提供すると同時に、初心者にパッケージのインストール方法を伝えるシンプルな例となる。しかし、開発者にとってはより重要な利便性があり、手作業だったりdebhelperを使ってのdebパッケージの作り方の良い例であり、GNU Helloを使ったバージョンはGNUプログラムの書き方の例となる。

脚注

外部リンク

Tags:

Hello World 利用目的Hello World 歴史Hello World 種類Hello World 脚注Hello World 外部リンクHello Worldプログラミング言語プログラム (コンピュータ)

🔥 Trending searches on Wiki 日本語:

松平定信高山みなみ徳川将軍一覧山添拓治癒魔法の間違った使い方 〜戦場を駆ける回復要員〜キングダムの登場人物一覧森祐喜ゆるキャン△吉岡里帆マイルズ・マイコラスエンプロ (芸能プロダクション)徳川吉宗岡本健一自然エネルギー財団服部良一伊勢ヶ濱部屋出口夏希羽佐間道夫【推しの子】張込み鈴木福酒々井ちびっこ天国村上祐子 (テレビ朝日)林田理沙橘賢一ちいかわ なんか小さくてかわいいやつ筋トレサラリーマン 中山筋太郎Vaundy本田望結アルベルト・アインシュタイン宮田俊哉東京都モンテ・クリスト伯葬送のフリーレンKing GnuNHK放送センター水上恒司原菜乃華吉高由里子吉木りさ當真あみダニエル・カーネマン副島萌生瀬尾一三アドルフ・ヒトラークリスティアーノ・ロナウド中村悠一岡田彰布キム・ソヒョン (1999年生の女優)ソビエト連邦ベニコウジカビ皇后雅子平林都NiziU日本エレキテル連合倫子女王森香澄永尾柚乃礼賛岸田文雄OmoinotakeプロジェクトX〜挑戦者たち〜暇空茜松本友佐野岳膣内射精有働由美子宇多田ヒカル薬屋のひとりごと石川恋大塚剛央筒香嘉智踊る大捜査線ブックメーカー長谷川育美復活祭HYBE🡆 More