Hello, world

(пренасочване от 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>

Източници