Hello, world
Hello, world (от англ. „Здравей, свят“) е компютърна програма – стандартен пример за програмиране в много учебници и ръководства. Широката му употреба се дължи на краткостта, съчетана с показването на основните елементи на всяка програма:
- формат на командите в езика
- команди за извеждане на съобщения към потребителя
- заглавна и завършваща част (при някои езици, напр. блоковите процедурни езици)
- извикване на външни модули (при езиците без входно-изходни операции в основната библиотека)
- създаване на класове (при обектно ориентирани езици)
По тези причини това обикновено е първата програма, използвана от начинаещ програмист на даден език за програмиране. По-долу са дадени примери на някои от езиците.
Ada
with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line ("Hello, world!"); end Hello;
ALGOL
begin outstring(1,"Hello, world!") end
Асемблер
„Само-акумулатор“ архитектура: DEC PDP-8, PAL-III асемблер
*10 / Избиране на origin на адрес 10, STPTR, 0 / в авто-инткрементиран регистър (един от осем – 10-17)
*200 / Избиране на origin за текстовата област HELLO, CLA CLL / Изчистване на AC и Link TAD (STRNG-1) / Сетване на низовия указател в PRE-auto-increment регистъра DCA STPTR / : NEXT, CLA CLL / Изчистване на AC и Link още веднъж TAD I STPTR / Взимане на текстов символ недиректно през PRE-auto-increment адрес SNA / Скок ако не е нула (Не е достигнат края на низа) HLT / В противен случай прекъсване при нула (края на низа) TLS / Отпечатване на символа в АС принтиращата машина TSF / Скок ако принтиращата машина е готова JMP .-1 / В противен случай – опитай отначало JMP NEXT / Скок за следващия символ
STRNG, 310 / H 345 / e 354 / l 354 / l 357 / o 254 / , 240 / (интервал) 367 / w 357 / o 362 / r 354 / l 344 / d 241 / ! 0 / Край на низа
Първа сполучлива uP/OS комбинация: Intel 8080/Zilog Z80, CP/M Операционна система, RMAC асемблер
bdos equ 0005H ; BDOS стартова точкаstart: mvi c,9 ; BDOS функция: отпечатване на низ lxi d,msg$ ; адрес на съобщението call bdos ret ; връщане в CCP
msg$: db 'Hello, world!$'end start
Акумулатор + Индексен регистър: MOS Technology 6502, CBM KERNAL, ca65 асемблер
MSG: .ASCIIZ "Hello, world!" LDX #$F3@LP: LDA MSG-$F3,X ; Зареждане на символа JSR $FFD2 ; CHROUT (KERNAL), отпечатване на текущото устройство (екрана) INX BNE @LP ; RTS
Разширена акумулаторна машина: Intel x86, Linux, GAS
.datamsg: .ascii "Hello, world!\n" len = . – msg.text .global _start_start: movl$len,%edx movl$msg,%ecx movl$1,%ebx movl$4,%eax int$0x80 movl$0,%ebx movl$1,%eax int$0x80
RISC процесор: ARM, RISC OS, BBC BASIC's инлайн асемблер
.program ADR R0,message SWI "OS_Write0" SWI "OS_Exit".message DCS "Hello, world!" DCB 0 ALIGN
RISC Процесор: MIPS
.datamsg: .asciiz "Hello, world!" .align 2 .text .globl mainmain: la $a0,msg li $v0,4 syscall jr $ra
bash
echo 'Hello world'
BASIC
Класически BASIC
10 PRINT "Hello, world!" 20 END
Модерен BASIC
PRINT "Hello, World!" END
BCPL
GET "LIBHDR"
LET START () BE$( WRITES ("Hello, world!*N")$)
C
#include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; }
C++
#include <iostream> int main() { std::cout << "Hello, world" << std::endl; return 0; }
C#
using System; class HelloWorldApp { public static void Main() { Console.WriteLine("Hello, world!"); } }
Forth
." Hello, world!" CR
FORTRAN
program hello write (*,*) 'Hello, world!' end program hello
Java
public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } }
Принципно погледнато не е необходимо класът да е публичен. Ако класът е публичен както в примера е необходимо файлът съдържащ кодът на програмата да е със същото име като класът (включително главните и малките букви) и разширение java, т.е. Този пример трябва да се намира във файл Hello.java.
JavaScript
document.writeln('Hello, world!');
LISP
(PRINT "Hello, world!")
MS-DOS batch
@echo Hello, world!
За MS-DOS 3.0 или по стар:
echo off echo Hello, world!
Pascal
Program Hello; begin WriteLn('Hello, world!'); end.
PHP
<?php echo "Hello, world!\n"; ?>
PL/I
Test: proc options(main) reorder; put skip edit('Hello, world!') (a); end Test;
Пролог
write('Hello world'),nl.
Python
print('Hello World!')
Perl
- Perl 5
print "Hello world\n";
- Perl 6
say "Hello world";
Ruby
puts "Hello, world!"
Seed7
$ include "seed7_05.s7i";
const proc: main is func begin writeln("Hello, world!"); end func;
Tex
Hello world\bye
Visual Basic
Sub Main MsgBox "Hello, world!"End Sub
Visual Basic .NET
Module HelloWorldApp Sub Main() System.Console.WriteLine("Hello, world!") End SubEnd Module
XUL
XUL e xml базиран език, разработен от Mozilla.
<?xml-stylesheet href="chrome://global/skin" type="text/css" ?><window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" align="center" pack="center" flex="1"> <description>Hello, world!</description></window>
Източници
- Колекция „Hello, world“ с над 500 примера на различни езици за програмиране и на повече от 70 естествени езици.