**Hello world** (u prevodu „Zdravo svete") je ustaljena rečenica koja se prikazuje na izlaznom medijumu prilikom pokretanja demonstrativnih programa nekog programskog jezika. Otuda i ime ovakvih programa. Uobičajeno je da se prilikom prikaza nekog novog programskog jezika na početku priručnika prikaže kako izgleda na tom jeziku štampa jednostavne poruke. Ovo često služi za međusobno poređenje jezika, odnosno njihove kompleksnosti. 

Ovaj primer se prvi put pojavio u knjizi *The C Programming Language*, autora Brajana Kernigana i Denisa Ričija, izdatoj 1978. godine. Na srpski jezik ova knjiga je prevedena pod naslovom „Programski jezik C". Na početku knjige se, u želji da se prikaže odmah kako izgleda taj novi jezik, nalazi kratak primer koji nešto ispisuje na ekran. Primer iz knjige ispisuje "`hello, world`" (bez velikih slova i znaka uzvika). Kasnije se ovaj primer malo prilagodio, a za naše potrebe je i preveden.

Ovaj primer se često koristi da bi se testirao novo instalirani programski jezik, odnosno njegov prevodilac, razvojno ili radno okruženje. Smatra se dovoljno jednostavnim, ali reprezentativnim test-primerom za ovu svrhu.

U nastavku slede primeri programa Hello World na raznim programskim jezicima.

Programski jezici
-----------------

### Ada

```
with TEXT\_IO;
 
 procedure HELLO is
 begin
    TEXT\_IO.PUT\_LINE ("Zdravo svete!");
 end HELLO;

```

### APL

```
'Zdravo svete!'

```

### ASP

**ASP** je skraćenica od **A**ctive **S**erver **P**ages.

```
<%
Response.Write("Zdravo svete!")
%>

```

### AWK

```
BEGIN { print "Zdravo svete!" }

```

### Bash (Bourne Again SHell)

Prvi red koda označava lokaciju izvršne datoteke interpretera, pa može biti različit od sistema do sistema.

```
#!/usr/bin/bash
echo "Zdravo svete!"

```

### BASIC

Sve ANSI/ISO implementacije bejsik prevodioca prepoznaju sledeće instrukcije 

```
10 PRINT "Zdravo svete!"
20 END

```

Od kada se i bejsik prilagodio tendencijama strukturnog programiranja nije neophodno navesti brojne oznake za naredbe, pa prethodni primer na većini modernih prevodilaca može izgledati ovako

```
PRINT "Zdravo svete!"
END

```

Ovde valja naglasiti da END naredba nije neophodna kod svih prevodilaca.

### BeanShell

```
print("Zdravo svete!");

```

### C

```
#include <stdio.h>

int main(void)
{
 printf("Zdravo svete!");

 return 0;
}

```

### C++

```
#include <iostream>
using namespace std;

int main()
{
 cout << "Zdravo svete!";

 return 0;
}

```

U principu nije neophodno naznačiti korišćenje nejmspejsa (namespace) std:

```
#include <iostream>

int main()
{
 std::cout << "Zdravo svete!";
 return 0;
}

```

Premda se korišćenje članica istog može i selektivno naznačiti:

```
#include <iostream>
using std::cout;

int main()
{
 cout << "Zdravo svete!";
 return 0;
}

```

### C++/CLI

```
int main()
{
    System::Console::WriteLine("Zdravo svete!");
}

```

### C#

```
namespace Hi
{
 class Hi
 {
 static void Main(string[] args)
 {
 System.Console.Write("Zdravo svete!");
 }
 }
}

```

### COBOL

```
 identification division.
 program-id.  hello-world.
 procedure division.
     display "Zdravo svete!"
     stop run.

```

### ColdFusion

```
<cfoutput>Zdravo svete!</cfoutput>

```

### FORTRAN

```
PROGRAM HI
PRINT \*, "Zdravo svete!"
END PROGRAM

```

### Haskell

```
main :: IO ()
main = putStr "Zdravo svete!"

```

### Java

Napomena: fajl treba da bude snimljen pod imenom hi.java da bi mogao biti kompajliran.

```
public class hi {
 
 public static void main(String args[])
 {
 System.out.print("Zdravo svete!");
 }
}

```

### JavaScript

Napomena: Tagovi <script>...</script> su prisutni u ovim primerima iako nisu obavezni delovi JavaScript programa, tj. ne pišu se u istom fajlu kao i program prilikom pisanja programa u jednom eksternom JavaScript fajlu (ekstenzija \*.js).

Prvi primer ispisuje tekst direktno na mestu gde se ovaj fragment koda nalazi.

```
<script type="text/javascript">
document.write("Zdravo svete!");
</script>

```

Drugi primer stvara jednu kutijicu za poruke (Message Box) u kojoj ispisuje dati tekst.

```
<script type="text/javascript">
alert("Zdravo svete!");
</script>

```

### LaTeX

```
\documentclass{article}
\begin{document}
Zdravo, svete!
\end{document}

```

### MATLAB

```
fprintf('Zdravo svete!');

```

### Natural

```
WRITE 'Zdravo svete!'
*
END

```

### Objective C

```
#import <stdio.h>
 
int main()
{
 puts("Zdravo svete!");
 return 0;
}

```

### Pascal

```
program Zdravo ( output );
begin
 writeln('Zdravo svete!')
end.

```

### Perl

```
print "Zdravo svete!";

```

### PHP

```
<?php
echo "Zdravo svete!";
?>

```

Ovaj program na PHP ima i ekvivalenata (upoređeno prema izlazu):

```
<?php
print("Zdravo svete!");
?>

```

```
<?="Zdravo svete!"?>

```

### Pike

```
int main() {
    write("Zdravo svete!");
    return 0;
}

```

### Python

```
print "Zdravo svete!"

```

### Ruby

```
puts "Zdravo svete!"

```

### Seed7

```
$ include "seed7_05.s7i";

const proc: main is func
  begin
    writeln("Zdravo svete!");
  end func;

```

### SmallTalk

```
Transcript show: 'Zdravo svete!'

```

### Visual Basic

```
 Sub Main()
 Print "Zdravo svete!"
 End Sub

```

Specifikacije
-------------

### Win32

Sledeći program otvara kutijicu za poruke (engl. ).

```
#include <windows.h>
   
int WINAPI WinMain(
		HINSTANCE hInst,
		HINSTANCE hPrevInstance,
		LPSTR lpCmdLine,
		int nCmdShow
	)
{
	MessageBox(HWND_DESKTOP, "Zdravo svete!", "Zdravo-svete program", MB_OK);
	return 0;
}

```

Sledeći program pravi mali prozor u kome se ispisuje tekst „Zdravo svete!".

```
#include <windows.h>

// Deklaracija procadure
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

const char *szClassName = "GlavniProzor";
HINSTANCE hInstance;

// Glavna funkcija programa
int WINAPI WinMain(
		HINSTANCE hInst,
		HINSTANCE hPrevInstance,
		LPSTR lpCmdLine,
		int nCmdShow
	)
{
	HWND hwnd;
	MSG msg;
	WNDCLASSEX wincl;
      
	hInstance = hInst;
      
      	// --- Definisanje klase prozora ------------------
	
	wincl.cbSize = sizeof(WNDCLASSEX);
	wincl.cbClsExtra = 0;
	wincl.cbWndExtra = 0;
	wincl.style = 0;
	wincl.hInstance = hInstance;
	wincl.lpszClassName = szClassName;
	wincl.lpszMenuName = NULL;
	wincl.lpfnWndProc = WndProc; // dodeljivanje procedure klasi prozora
	wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
	wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
	wincl.hCursor = LoadCursor(NULL, IDC_ARROW);

	// --- Registracija klase prozora -----------------

	if(!RegisterClassEx(&wincl)) return 0;
	
	// --- Stvaranje prozora --------------------------
      
	hwnd = CreateWindowEx(
		0,szClassName,"Zdravo svete",
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		200, 80,
		NULL, NULL, hInstance, NULL
	);

	// --- Prikazivanje prozora -----------------------
	ShowWindow(hwnd, nCmdShow);
      
	// --- Glavna petlja programa ---------------------
	
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return msg.wParam;
}

// Procedura
LRESULT CALLBACK WndProc(
		HWND hwnd,
		UINT message,
		WPARAM wParam,
		LPARAM lParam
	)
{
	PAINTSTRUCT ps;
	HDC hdc;
	
	switch(message)
	{
		case WM_PAINT:
			// ispisivanje poruke
			hdc = BeginPaint(hwnd, &ps);
			TextOut(hdc, 50, 18, "Zdravo svete!", 13);
			EndPaint(hwnd, &ps);
			break;
		
		case WM_DESTROY:
           		PostQuitMessage(0);
           		break;
           		
     		default:
			return DefWindowProc(hwnd, message, wParam, lParam);
	}
	
	return 0;
}

```

| * p
* r
* u
Programski jezici |
| --- |
| Ada • ALGOL • APL • AWK • BASIC • C • C++ • C# • COBOL • ColdFusion • Common Lisp • Delphi • Eiffel • Focus • Forth • FORTRAN • Haskell • IDL • Java • JavaScript • Lisp • Modula • Objective-C • OCaml • Pascal • Perl • PHP • Prolog • Python • Ruby • SAS • Scheme • Smalltalk • SQL • Visual Basic |

***Hello World*** na Wikimedijinoj ostavi