Hello world
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Hello world(ハロー・ワールド)は、画面上(標準出力)に "Hello, world!"、又は類似の文言を表示するだけの単純なプログラムである。
大抵のプログラミング言語の入門書では、このプログラムを作ることを最初の例題としており、ほとんどの場合、新しくプログラミング言語を習得する際に最初に作るのがこのプログラムである。そのため、「世界一有名なプログラム」と呼ばれることもある。また、コンパイラ、開発環境、実行環境が正常にインストールされたことを確認するために、このプログラムを使用することもある。
"Hello, world!" 以外の文言でも良いはずなのだが、この文言を用いるのが伝統となっている。これは、ブライアン・カーニハンとデニス・リッチーによる著書「プログラミング言語C」(The C Programming Language) の影響であるとも言われている(ただし、同書では "hello, world" とすべて小文字で感嘆符もない。また歴史的にはカーニハンの前著「A Tutorial Introduction to the Language B」(1973) が初出とされる。同様の意味で "Howdy, World!" が用いられることもあり、日本語プログラミング環境では「こんにちは世界」が用いられることもある。
最近のRAD環境など、アプリケーションソフトウェアの見栄えを対話的に作成していく言語では、プログラムをまったく書かないでもHello Worldが作成できる場合もあるので、プログラミングの第一歩という意味は薄れているものもある。
[編集] 各種言語でのHello world
[編集] CUI/CLI
[編集] Adaでの例
with Ada.Text_Io; use Ada.Text_Io; procedure Hello is begin Put_Line ("Hello, world!"); end Hello;
[編集] APLでの例
'Hello, world!'
[編集] アセンブリ言語での例
[編集] x86 CPU, MS-DOS, NASM
; hello_world.asm bits 16 org 100h mov ah, 09 mov dx, message int 21h mov ax, 4C00h int 21h message db 'Hello, world!$'
[編集] x86 CPU, GNU/Linux, NASM
;"Hello World" for Linux on Intel 80x86 using nasm (Intel syntax). ;Enter this into "hello.asm" then type: ;"nasm -f elf hello.asm" ;"ld hello.o -o hello" ;"./hello" section .data ;data section declaration msg db 'Hello World!',0AH len equ $-msg ;string length section .text ;code section declaration global _start ;entry point (start of execution) _start: mov edx,len ;string length mov ecx,msg ;string start mov ebx,1 ;file handle: stdout mov eax,4 ;sys_write int 80h ;kernel system call mov ebx,0 ;return value mov eax,1 ;sys_exit int 80h ;kernel system call
[編集] 680x0 MPU, OS-9, r68
nam HelloWorld ttl OS-9/68000 example assembly program use defsfile Edition equ 1 Typ_Lan equ (Prgrm<<8)+Object Atr_Rev equ (ReEnt<<8)+0 psect nam,Typ_Lan,Atr_Rev,Edition,512,hello StdOut equ 1 Str dc.b "Hello, World!",C$LF,C$CR string to print Len equ *-Str hello: moveq #StdOut,d0 specify Standard Output lea Str(pc),a0 pointer to strings move.l #Len,d1 length of strings os9 I$WriteLn moveq #0,d1 os9 F$Exit ends
[編集] PowerPC CPU, Mac OS, Fantasm
lwz r3,hello(rtoc) Xcall DrawString blr hello: pstring "Hello, world!"
[編集] ASP,JSPでの例
<%= "Hello, world!" %>
[編集] AWKでの例
BEGIN { print "Hello, world!" }
[編集] Bでの例
main( ) { putchar('Hello, world!*n'); }
[編集] BASICでの例
古いBASIC(N88-BASICなど)
10 PRINT "Hello, world!" 20 END
現在のBASIC(Visual BASICなど)
print "Hello, world!"
[編集] BCPLでの例
GET "LIBHDR" LET START () BE $( WRITES ("Hello, world!*N") $)
[編集] Befungeでの例
"!dlrow olleH">v ,: ^_@
[編集] Brainfuckでの例
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<< +++++++++++++++.>.+++.------.--------.>+.>.
[編集] Cでの例
#include <stdio.h> int main(void) { printf("Hello, world!"); return 0; }
[編集] C++での例
#include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; }
[編集] C#での例
class HelloWorldApp { public static void Main() { System.Console.WriteLine("Hello, world!"); } }
[編集] COBOLでの例
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. DISPLAY "Hello, world!". STOP RUN.
[編集] Common Lispでの例
(format t "Hello world!~%")
[編集] Dでの例
private import std.stdio; int main(char[][] args) { writefln("Hello, world!"); return 0; }
[編集] Eiffelでの例
class HELLO_WORLD creation make feature make is local io:BASIC_IO do !!io io.put_string("%N Hello, world!") end -- make end -- class HELLO_WORLD
[編集] Erlangでの例
-module(hello). -export([hello_world/0]). hello_world() -> io:fwrite("Hello, World!\n").
[編集] Forthでの例
." Hello, world!" CR
[編集] FORTRANでの例
WRITE(*,10) 10 FORMAT('Hello, World!') STOP END
[編集] Haskellでの例
main = putStrLn "Hello,World!"
[編集] HQ9+での例
H
[編集] HSPでの例
mes "Hello World" stop
[編集] Iconでの例
procedure main (args) write ("Hello, World!") end
[編集] Ioでの例
"Hello, world!" print
[編集] INTERCALでの例
PLEASE DO ,1 <- #13 DO ,1 SUB #1 <- #238 DO ,1 SUB #2 <- #112 DO ,1 SUB #3 <- #112 DO ,1 SUB #4 <- #0 DO ,1 SUB #5 <- #64 DO ,1 SUB #6 <- #238 DO ,1 SUB #7 <- #26 DO ,1 SUB #8 <- #248 DO ,1 SUB #9 <- #168 DO ,1 SUB #10 <- #24 DO ,1 SUB #11 <- #16 DO ,1 SUB #12 <- #158 DO ,1 SUB #13 <- #52 PLEASE READ OUT ,1 PLEASE GIVE UP
[編集] Javaでの例
public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } }
[編集] Java Servletでの例
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.println("<html><head>"); out.println("<title>Hello, world!</title>"); out.println("</head><body>"); out.println("Hello, world!"); out.println("</body></html>"); } }
[編集] KEMURIでの例
`|
[編集] LOGOでの例
TO HELLO PRINT [Hello, world!] END
[編集] Luaでの例
print "Hello, world!"
[編集] Malbolgeでの例
(=<`@?>~6Z:z2VU/.R?10/.-,+*)('&%$#"!~}|{z]Kwvut3EqpiAmlONi
[編集] Manaでの例
print("Hello, world!")
[編集] Mathematicaでの例
Print["Hello, world"]
[編集] MIXALでの例
TERM EQU 19 the MIX console device number ORIG 1000 start address START OUT MSG(TERM) output data at address MSG HLT halt execution MSG ALF "MIXAL" ALF " HELL" ALF "O WOR" ALF "LD " END START end of the program
[編集] Mindでの例
挨拶とは、 「ようこそ、世界へ!」と表示して、改行すること。 メインとは、 挨拶すること。
[編集] Modula-2での例
MODULE HellowWorld. FROM InOut IMPORT WriteString, WriteLn; BEGIN WriteString('Hello, world!');WriteLn; END HellowWorld.
[編集] MONAmonaでの例
NNNNNNNNNNnMNNNNNNNMNNNNNNNNNNMNNNMNOOOOAaMNNoMNoNNNNNNNoo NNNoMNNoOONNNNNNNNNNNNNNNoMoNNNoAAAAAAoAAAAAAAAoMNoMo
[編集] Mopsでの例
: hello ( -- ) ." Hello Forth-World!" cr ;
[編集] MS-DOSバッチファイルでの例
@echo off echo Hello, world!
もしくは
@echo Hello, world!
MS-DOS 3.0以前では
echo off cls echo Hello, world!
[編集] OCamlでの例
print_endline "Hello, world!";;
[編集] OoK!での例
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook.
[編集] Pascalでの例
program Hello; begin writeln('Hello, world!') end.
[編集] Perlでの例
print "Hello, world!\n";
[編集] PHPでの例
<?php print("Hello, world!"); ?>
[編集] Pikeでの例
int main() { write("Hello, world!\n"); return 0; }
[編集] PL/Iでの例
Test: procedure options(main); declare My_String char(20) varying initialize('Hello, world!'); put skip list(My_String); end Test;
[編集] Prologでの例
goal write("hello, world!").
[編集] Pythonでの例
print "Hello, world!"
[編集] REXXでの例
/* A comment line at topmost of the script is not a part of program, but telling the shell that this is a REXX program, not a batch. */ say "Hello, world!"
[編集] Rubyでの例
puts "Hello, world!"
[編集] Schemeでの例
(display "Hello, world!") (newline)
[編集] sed での例
実行方法:
- $ sed -f hello.sed tmp.txt
(以下のスクリプトをhello.sed, 1byte以上の任意のファイルをtmp.txt)
#n 1i\ hello, world!
[編集] Seed7での例
$ include "seed7_05.s7i"; const proc: main is func begin writeln("Hello, world!"); end func;
[編集] Smalltalkでの例
Transcript show: 'Hello, world!'
[編集] SNOBOLでの例
OUTPUT = "Hello, world!" END
[編集] Soopyでの例
println "Hello, world!";
[編集] SQLでの例
print 'hello world'
[編集] Standard ML
print "Hello,world!";
[編集] Tclでの例
puts "Hello, world!"
[編集] Turingでの例
put "Hello, world!"
[編集] UNIX シェルスクリプトでの例
echo 'Hello, world!'
[編集] Unlambdaでの例
`r`````````````.H.e.l.l.o.,. .w.o.r.l.d.!.a
[編集] VisualBasic.NETでの例
Public Class HelloWorldApp Shared Sub Main() System.Console.WriteLine("Hello, World!") End Sub End Class
[編集] Whitespaceでの例
上記をスペースをS, タブをTで表現した場合は以下のようになる。
SSSTSSTSSS T SSSSSTTSSTST T SSSSSTTSTTSS T SSSSSTTSTTSS T SSSSSTTSTTTT T SSSSSTSTTSS T SSSSSTSSSSS T SSSSSTTTSTTT T SSSSSTTSTTTT T SSSSSTTTSSTS T SSSSSTTSTTSS T SSSSSTTSSTSS T SSSSSTSSSST T SS
[編集] Windows Script Hostでの例
以下の内容を拡張子が.wsfのファイルに保存しWindows Script Hostを使って実行する。Windows Based Script Hostを用いればGUIで実行することも可能である。
[編集] JScript
<?xml version="1.0"?> <job> <script language="JScript"> <![CDATA[ WScript.Echo("Hello, World!"); ]]> </script> </job>
[編集] VBScript
<?xml version="1.0"?> <job> <script language="VBScript"> <![CDATA[ WScript.Echo("Hello, World!") ]]> </script> </job>
[編集] PerlScript
<?xml version="1.0"?> <job> <script language="PerlScript"> <![CDATA[ &WScript->Echo("Hello, World!"); ]]> </script> </job>
[編集] MSILでの例
.assembly helloworld{} .method public static void hoge() cil managed { .entrypoint ldstr "Hello, World" call void [mscorlib]System.Console::WriteLine(string) ret }
[編集] Pulseでの例
クラス HelloWorld。 プロシージャ メイン。 "Hello, World"を書く。 プロシージャ終了。 クラス終了。
[編集] Tenemsでの例
<hello> extends object { <Main> static public routine int () { Console.WriteLine("Hello, world!"); return 0; } }
[編集] GUI
[編集] AppleScriptでの例
英語
display dialog "Hello, world!"
日本語
“Hello, world!”を表示する
[編集] Microsoft Windows・C言語での例
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox(NULL, "Hello, world!", "Hello, world!", MB_OK); return 0; }
[編集] C#での例
class HelloWorldApp { public static void Main() { System.Windows.Forms.MessageBox.Show("Hello, world!"); } }
[編集] Delphiでの例
program HelloWorld; uses Dialogs; begin ShowMessage('Hello, World!'); end.
[編集] FutureBASICでの例
dim quit as boolean end globals window #1, "hello, world!", (20,50)-(300,400), _docNoGrow call drawstring("hello, world!") local fn initMenu menu 1, 0, _enable, "File" menu 1, 1, _enable, "/QQuit" end fn local fn doMenu dim as integer menuID, itemID menuID = menu(_menuID) itemID = menu(_itemID) if menuID = 1 and itemID = 1 then quit = _ztrue menu end fn fn initMenu on menu fn doMenu do handleevents until quit
[編集] HSPでの例
mes "Hello, world!" stop
[編集] Javaでの例
import java.awt.*; import java.awt.event.*; public class HelloFrame extends Frame { HelloFrame(String title) { super(title); } public void paint(Graphics g) { super.paint(g); Insets ins = this.getInsets(); g.drawString("Hello, World!", ins.left + 25, ins.top + 25); } public static void main(String[] args) { HelloFrame fr = new HelloFrame("Hello"); fr.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); fr.setResizable(true); fr.setSize(500, 100); fr.setVisible(true); } }
[編集] Java appletでの例
Java appletはHTMLファイル内に組み込まれて使用される。
<HTML> <HEAD> <TITLE>Hello World</TITLE> </HEAD> <BODY> HelloWorld Program says: <APPLET code="HelloWorld.class" width="600" height="100"> </APPLET> </BODY> </HTML>
import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello, world!", 100, 50); } }
[編集] JavaScriptでの例
JavaScriptはHTML文書に埋め込まれて使われるスクリプト言語である。以下のソースをHTMLに埋め込めば、動作する。
<script type="text/javascript" language="javascript"> function helloWorld() { alert("Hello World!"); } </script> <a href="javascript:helloWorld();">Hello World Example</a>
[編集] Mopsでの例
scon hello "Hello, World!" :CLASS MsgWin super{ window } :m DRAW: ( -- ) set: self 0 tmode 20 tfont 48 tsize 5 60 gotoXY hello type ;m :m close: ( -- ) close: super bye ;m ;CLASS MsgWin myWin RECT WinBounds : go ( -- ) ['] BYE -> ByeVec -curs 50 50 600 150 put: WinBounds addr: WinBounds " Hello, world!" docWind false false new: myWin show: myWin eventloop ; : crash Bye ;
[編集] PostScriptでの例
/font /Courier findfont 24 scalefont def font setfont 100 100 moveto (Hello World!) show showpage
[編集] Scalable Vector Graphicsでの例
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="6.4cm" height="4.8cm" viewBox="0 0 639 479" xmlns="http://www.w3.org/2000/svg" version="1.1"> <desc>Hello, World!</desc> <text x="320" y="250" font-family="Verdana" font-size="1cm" text-anchor="middle"> Hello, world! </text> </svg>
[編集] Tcl/Tkでの例
button .b -text "Hello, World!" -command exit pack .b
[編集] Tonyu Systemでの例
コンソールウインドウに表示する例:
extends Object; print("Hello, World!");
メインウインドウに表示する例:
extends TextChar; text="Hello, World!"; wait();
[編集] Visual BasicおよびREALbasicでの例
MsgBox "Hello, world!"
[編集] VisualBasic.NETでの例
Public Class HelloWorldApp Shared Sub Main() System.Windows.Forms.MessageBox.Show("Hello, World!") End Sub End Class
[編集] XHTMLでの例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> <title>Hello, World!</title> </head> <body> <p>Hello, World!</p> </body> </html>
[編集] XULでの例
以下の内容をテキストエディタで作成してhello.world.xul等の.xulの付いたファイル名で保存し、Mozilla Firefox等で開く。
<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box align="center" pack="center" flex="1"> <description>Hello, world</description> </box> </window>
[編集] X Window Systemでの例
シェルから実行する例
xmessage 'Hello, world!'
gtkmm2 (gtk--) を使ったC++での実装
#include <iostream> #include <gtkmm/main.h> #include <gtkmm/button.h> #include <gtkmm/window.h> class HelloWorld : public Gtk::Window { public: HelloWorld(); virtual ~HelloWorld(); protected: Gtk::Button m_button; virtual void on_button_clicked(); }; HelloWorld::HelloWorld() : m_button("Hello, world!") { set_border_width(10); m_button.signal_clicked().connect(SigC::slot(*this, &HelloWorld::on_button_clicked)); add(m_button); m_button.show(); } HelloWorld::~HelloWorld() {} void HelloWorld::on_button_clicked() { std::cout << "Hello, world!" << std::endl; } int main(int argc, char *argv[]) { Gtk::Main kit(argc, argv); HelloWorld helloworld; Gtk::Main::run(helloworld); }
[編集] ひまわりでの例
「Hello, World!」と、表示。 ’母艦(メインフォーム)に表示。 「Hello, World!」と、言う。 ’ダイアログボックスで表示。
[編集] Technology Terminal Scriptでの例
「Hello[改行]World!」を表示
または
「Hello[エンター]World!」を表示
※[改行]の"["は全角で記述する。
[編集] なでしこでの例
「Hello, World」を表示。 ’母艦(メインフォーム)に描画。 「Hello, World」を言う。 ’ダイアログボックスを表示。
[編集] Pulseでの例
クラス HelloWorld。 プロシージャ メイン。 "Hello, World"を表示。 プロシージャ終了。 クラス終了。
[編集] Tenemsでの例
<hello> extends object { <Main> static public routine int () { System.Windows.Forms.MessageBox.Show("Hello, world!"); return 0; } }
[編集] TeX, LaTeXでの例
\documentclass{jarticle} \begin{document} Hello, world! \end{document}
[編集] 外部リンク
- A Tutorial Introduction to the Language B - Hello, world!の初出とされるB.カーニハンによるB言語チュートリアル(1973)
- The Evolution of a Programmer - プログラミング技術向上による変化(冗談サイト)