{{위키데이터 속성 추적}}
{{다른 뜻 넘어옴|헬로 월드}}
[[파일:Hello World Perl GTk2.png|섬네일|224px|[[펄]]로 작성된 GTK2기반 [[그래픽 사용자 인터페이스|GUI]] 형태의 헬로 월드 프로그램]]
[[파일:Hello World c.jpg|섬네일|[[C (프로그래밍 언어)|C언어]]로 만들어진 '''Hello World 프로그램''']]

'''"Hello, World!" 프로그램''' (세상아, 안녕!)은 "Hello, world!"를 화면에 출력하는 [[컴퓨터 프로그램]]이다. 이 프로그램은 [[프로그래밍 언어]]를 연습하는 데에 많이 쓰이고, 많은 프로그래밍 언어 서적에서 가장 처음 만들어보는 기본 예제로 나온다.<ref>{{서적 인용|url=https://books.google.com/books?id=y51NAgAAQBAJ&pg=PA74|제목=Professional Embedded ARM Development|성=James A. Langbridge|출판사=Wrox|쪽=74|언어=En|isbn=9781118788943}}</ref>

"Hello, World!" 프로그램은 프로그래밍 언어로 할 수 있는 간단한 것 중 하나이다. 그러나, [[그래픽 사용자 인터페이스|GUI]]를 사용할 때를 비롯하여, 어떤 경우에는 코드가 대단히 복잡해질 수 있다. 또 다른 경우에는 프로그램 자체는 간단하지만 CLI [[셸]]에서 입력해야 하는 파라미터가 많아 복잡한 경우도 있다. 또 [[임베디드 시스템]]에서는 글자들이 한정된 한두 줄의 [[액정 디스플레이|LCD]]에 표시될 것이다. 더욱 심한 경우에는 글자를 표시할 수 없어 "Hello world!" 대신에 간단하게 [[발광 다이오드|LED]] 점 등을 할 수도 있다.

또한, "Hello, World!" 프로그램은 언어의 [[컴파일러]], [[통합 개발 환경]], [[런타임 환경]]이 정상적으로 작동하는지를 확인하는 [[새너티 테스트]]로써 쓸모가 있다. 개발환경 구축에 필요한 [[툴체인]]을 바닥부터 구축하여 가장 간단한 프로그램을 컴파일하고 실행하기까지에는 상당한 작업이 필요하다. 따라서 새로운 툴체인을 테스트할 때에는 될 수 있는 한 간단한 프로그램을 쓴다.

프로그래밍 할 수 있는 컴퓨터 개발에 있어서 작고 간단한 테스트용 프로그램이 이전에도 존재했으나, "Hello world!"가 사용된 것은 1978년에 출판된 [[브라이언 커니핸]]과 [[데니스 리치]]가 쓴 책 "The C Programming Language"에서 비롯한다. 이 책에서 첫 번째 예제 프로그램으로 hello, world 라는 문장을 출력했다. 모두 소문자이고, 느낌표도 없었다. 이 프로그램은 1974년에 [[벨 연구소]]에서 커니핸이 써서 연구소 내에서 사용한 작은 매뉴얼인 〈Programming in C: A Tutorial〉의 것을 물려받았다.

{| class="wikitable"
|-
!커니핸의<br/>코드
|
<syntaxhighlight lang="c">
main( ) {
    printf("Hello, world!");
}
</syntaxhighlight>
|-
!ANSI C<br/>코드
|
<syntaxhighlight lang="c">
#include <stdio.h>

int main()
{
    printf("Hello, world!\n");
    return 0;
}
</syntaxhighlight>
|}
하지만, 처음으로 "hello"와 "world"를 같이 사용한 경우는 브라이언 커니핸이 1973년도에 쓴 〈A Tutorial Introduction to the Language B〉에 등장한다.<ref>{{웹 인용 |url=http://cm.bell-labs.com/cm/cs/who/dmr/bintro.html |제목=The Programming Language B<!-- 봇이 따온 제목 --> |확인날짜=2007-08-08 |보존url=https://web.archive.org/web/20070808110320/http://cm.bell-labs.com/cm/cs/who/dmr/bintro.html |보존날짜=2007-08-08 |url-status=dead }}</ref>

구두 방식이나 단락 방식에 따라서 여러 가지 방법이 존재하고, 출력 문장에서 몇몇 차이가 발생한다. 쉼표나 느낌표가 생략되는 경우도 있고, 'H'만이 대문자로 되거나 혹은 모두 소문자가 되는 경우도 있다. 원래 것과는 좀 달라졌지만, 가장 일반적인 문장은 "Hello, world!"이다. 몇몇 언어에서는 모든 문자를 대문자로 출력하여, "HELLO WORLD!"와 같은 결과가 나오기도 하고, 많은 [[난해한 프로그래밍 언어]]에서는 약간 변형된 문장을 출력하기도 한다. "Hello world" 프로그램은 보통은 스트링 끝이 개행 문자의 출력도 포함한다. (ASCII 코드 10 혹은 13,10)

"hello world" 프로그램의 여러 가지 언어로 쓰인 코드들의 모음은 여러 프로그래밍 언어들을 배우고 비교하는 데에 도움을 주는, 간단한 "[[로제타석]]"으로 사용할 수도 있다.

프로그래밍 언어를 처음 접하거나 처음 프로그래밍을 하는 사람들이 많이 사용하는 것이 이 Hello World!이다.

== 다양한 언어들의 Hello World ==
=== [[ABAP]] ===
<syntaxhighlight lang="abap">
write: 'Hello, World!'.
</syntaxhighlight>

=== [[에이다 (프로그래밍 언어)|Ada]] ===

<syntaxhighlight lang="ada">
with Ada.Text_IO;
use Ada.Text_IO;
procedure Hello is
begin
   Put_Line ("Hello, world!");
end Hello;
</syntaxhighlight>

=== [[ALGOL 60]] ===

{{sxhl|2=m2|1= BEGIN DISPLAY("HELLO WORLD!") END.}}

=== [[ALGOL 68]] ===

 '''begin'''
   printf(($gl$,"Hello, world!"))
 '''end'''

=== [[애플스크립트|AppleScript]] ===

한 주요 출력 모드인 TTS를 이용한 프로그램:
<syntaxhighlight lang="AppleScript">
say "Hello, world!"
</syntaxhighlight>
대체적으로, "확인" 버튼이 표시될 수 있는 경고창을 띄우는 프로그램:
<syntaxhighlight lang="AppleScript">
display alert "Hello, world!"
</syntaxhighlight>

=== [[BASIC]] ===

<syntaxhighlight lang="basic">
10 PRINT "Hello, World!"

</syntaxhighlight>

=== [[배치 파일]] ===

<syntaxhighlight lang="batch">
@echo off
echo Hello, World!
</syntaxhighlight>

=== [[유닉스 셸]] ===

<syntaxhighlight lang="bash">
echo "Hello, World!"
</syntaxhighlight>

=== [[C (프로그래밍 언어)|C]] ===

<syntaxhighlight lang="c">
#include <stdio.h>

int main()
{
    printf("Hello, World!\n");
}
</syntaxhighlight>

=== [[C++]] ===

<syntaxhighlight lang="c++">
#include <iostream>

int main()
{
  std::cout << "Hello, World!\n";
  return 0;
}
</syntaxhighlight>

=== [[C 샤프|C#]] ===

<syntaxhighlight lang="c#">
using System;
Console.WriteLine("Hello, World!");
</syntaxhighlight>

=== [[Clojure]] ===

<syntaxhighlight lang="clojure">
(println "Hello, World!")
</syntaxhighlight>

=== [[COBOL]] ===

<syntaxhighlight lang="cobolfree">
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
    DISPLAY 'Hello, World!'.
    STOP RUN.
</syntaxhighlight>

=== [[D (프로그래밍 언어)|D]] ===

<syntaxhighlight lang="d">
import std.stdio;

void main() {
    writeln("Hello, World!");
}
</syntaxhighlight>

=== [[다트 (프로그래밍 언어)|Dart]] ===

<syntaxhighlight lang="dart">
void main() {
  print('Hello, World!');
} 
</syntaxhighlight>

=== [[Elixir]] ===

<syntaxhighlight lang="elixir">
IO.puts("Hello, World!")
</syntaxhighlight>

=== [[Ezhil (프로그래밍 언어)|Ezhil]] ===

<syntaxhighlight lang="ezhil">
பதிப்பி "உலகே வணக்கம்"
பதிப்பி "Hello, World!"
exit()
</syntaxhighlight>

=== [[F 샤프|F#]] ===

<syntaxhighlight lang="f#">
printfn "Hello world!"
</syntaxhighlight>

=== [[포스 (프로그래밍 언어)|Forth]] ===

<syntaxhighlight lang="forth">
." Hello, World!" CR
</syntaxhighlight>

=== [[Fortran]] ===

<syntaxhighlight lang="fortran">
program Hello
  print *, "Hello, World!"
end program Hello
</syntaxhighlight>

=== [[Go (프로그래밍 언어)|Go]] ===

<syntaxhighlight lang="go">
package main
import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
</syntaxhighlight>

=== [[아파치 그루비|Groovy]] ===

<syntaxhighlight lang="groovy">
println "Hello, World!"
</syntaxhighlight>

=== [[하스켈]] ===

<syntaxhighlight lang="haskell">
main :: IO ()
main = putStrLn "Hello, World!"
</syntaxhighlight>

=== [[자바 (프로그래밍 언어)|자바]] ===

<syntaxhighlight lang="java">
public class Main {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}
</syntaxhighlight>

=== [[JavaScript]] ===

브라우저 콘솔에서:<syntaxhighlight lang="javascript">
console.log("Hello, World!");
</syntaxhighlight>HTML 문서에서:<!-- Do not remove this! -->

<syntaxhighlight lang="javascript">
document.write("Hello, World!");
</syntaxhighlight>또는<syntaxhighlight lang="javascript">
alert("Hello, World\n");
</syntaxhighlight>

=== [[줄리아 (프로그래밍 언어)|Julia]] ===

<syntaxhighlight lang="julia">
println("Hello, World!")
</syntaxhighlight>

=== [[코틀린 (프로그래밍 언어)|Kotlin]] ===

<syntaxhighlight lang="kotlin">
fun main() {                       
    println("Hello, World!")        
}
</syntaxhighlight>

=== [[리스프|Lisp]] ===

<syntaxhighlight lang="Lisp">
(print "Hello, World!")
</syntaxhighlight>

=== [[로고 (프로그래밍 언어)|Logo]] ===

 print [Hello, World!]

=== [[LOLCODE]] ===

<syntaxhighlight lang="text">
HAI 1.2
CAN HAS STDIO?
VISIBLE "Hello World!"
KTHXBYE
</syntaxhighlight>

=== [[루아 (프로그래밍 언어)|루아]] ===

<syntaxhighlight lang="lua">
print("Hello, World!")
</syntaxhighlight>

=== [[오브젝티브-C]] ===

<syntaxhighlight lang="objective-c">
#import <stdio.h>

int main() {
        printf("Hello, world!\n");
}
</syntaxhighlight>

또는 [[NeXTSTEP]] 프레임워크를 이용해,

<syntaxhighlight lang="objective-c">
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSLog(@"Hello, World!");
    }
    return 0;
}
</syntaxhighlight>

=== [[OCaml]] ===

<syntaxhighlight lang="ocaml">
print_endline "Hello, World!"
</syntaxhighlight>

=== [[파스칼 (프로그래밍 언어)|파스칼]] ===

<syntaxhighlight lang="pascal">
program Hello;
begin
  writeln ('Hello, World!');
end.

</syntaxhighlight>

=== [[펄]] ===

<syntaxhighlight lang="perl">
print "Hello, World!\n";
</syntaxhighlight>

=== [[PHP]] ===

<syntaxhighlight lang="php">
Hello, World!
</syntaxhighlight>

또는

<syntaxhighlight lang="php">
<?php

echo 'Hello, World!';
</syntaxhighlight>

=== [[파워셸]] ===

<syntaxhighlight lang="powershell">
'Hello, World!'
</syntaxhighlight>

=== [[프롤로그 (프로그래밍 언어)|프롤로그]] ===

<syntaxhighlight lang="prolog">
main() :- write("Hello, World!"), nl.
</syntaxhighlight>

=== [[파이썬]] ===
파이썬 2<syntaxhighlight lang="python2" start="1">
print "Hello, World!"
</syntaxhighlight>파이썬 3<syntaxhighlight lang="python3">print("Hello, World!")</syntaxhighlight>

=== [[R (프로그래밍 언어)|R]] ===

<syntaxhighlight lang="r">
print("Hello, World!")
</syntaxhighlight>

=== [[래킷 (프로그래밍 언어)|래킷]] ===

<syntaxhighlight lang="racket">
#lang racket
(displayln "Hello, World!")
</syntaxhighlight>

=== [[루비 (프로그래밍 언어)|루비]] ===

<syntaxhighlight lang="ruby">
puts "Hello, World!"
</syntaxhighlight>

=== [[러스트 (프로그래밍 언어)|러스트]] ===

<syntaxhighlight lang="rust">
fn main() {
    println!("Hello, World!");
}
</syntaxhighlight>

=== [[시뮬라]] ===

 '''Begin'''
    '''OutText''' ("Hello, World!");
    '''Outimage''';
 '''End''';

=== [[스몰토크]] ===

<syntaxhighlight lang="smalltalk">
Transcript show: 'Hello, world!'.
</syntaxhighlight>

=== [[표준 ML]] ===

<syntaxhighlight lang="sml">
print "Hello, World!\n"
</syntaxhighlight>

=== [[스위프트 (프로그래밍 언어)|스위프트]] ===

<syntaxhighlight lang="swift">
print("Hello, World!")
</syntaxhighlight>

=== [[Tcl]] ===

<syntaxhighlight lang="Tcl">
puts "Hello, world!"
</syntaxhighlight>

=== [[TI-BASIC]] ===

<syntaxhighlight lang="basic">
:Disp "HELLO, WORLD!"
</syntaxhighlight>

=== [[VB스크립트]] ===

<syntaxhighlight lang="vbscript">
WScript.Echo "Hello, World!"
</syntaxhighlight>

=== [[웹어셈블리]] ===

<syntaxhighlight lang="wat">
(module
  (import "console" "log" (func $log (param i32) (param i32)))
  (import "js" "mem" (memory 1))
  
  (data (i32.const 0) "Hello World") ;; 값 전역 메모리에 저장됨
  (func (export "helloWorld")
      i32.const 0
      i32.const 11
      call $log
  )
)
</syntaxhighlight>

=== [[X86|x86 어샘블리]] ===
<syntaxhighlight lang="nasm">
SECTION .data
Msg: db "Hello world!", 10
Len: equ $-Msg

global _start
_start:
    mov eax,4
    mov ebx,1
    mov ecx,Msg
    mov edx,Len
    int 80H

    mov eax,1
    mov ebx,0
    int 80H
</syntaxhighlight>

== 같이 보기 ==
{{위키책|en:List of hello world programs}}
{{위키공용분류}}
* [[프로그래밍 언어 목록]]
* [[피보나치 수 프로그램]]
* [[99병의 맥주]]

== 각주 ==
{{각주}}

[[분류:코드 예시에 관한 문서]]