Программа Hello, world!

Программа Hello, world!
Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl.

Программа «Hello world» — программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй, мир!»). Обычно это первый пример программы в учебниках по программированию, и для многих студентов такая программа является первым опытом при изучении нового языка.

Такая постановка задачи обращает внимание учащегося сразу на несколько ключевых моментов языка программирования, главным из которых является базовая структура программы.

Хотя небольшие тестовые примеры использовались с тех самых пор как появились компьютеры, традиция использования фразы «Hello, world!» в качестве тестового сообщения была введена в книге «The C Programming Language» («Язык программирования Си») Брайана Кернигана и Денниса Ричи, опубликованной в 1978 году.

Содержание

Примеры

Бейсик

PRINT "Hello, world!"

C

#include <stdio.h>
 
int main (void)
{
    printf("Hello, world!\n");
    return 0;
}

C++

#include <iostream>
using namespace std;
 
int main()
{
 cout << "Hello, World!" <<endl;
 return 0;
}

C#

public class ExampleClass
{
   public static void Main()
   {
       System.Console.WriteLine("Hello, world!");
   }
}

print("Hello, world!")

Pascal

program HelloWorld;
begin
  WriteLn('Hello, world!');
end.

print 'Hello, world!';

puts "Hello, world!"

(begin
   (display "Hello, world!")
   (newline))

<?php echo 'Hello, world!';?>

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, world!");
  }
}

Ассемблер

Пример программы Hello world для x86 на диалекте

 
.MODEL TINY
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
ORG 100h
START:
        mov ah,9
        mov dx,OFFSET Msg
        int 21h
        int 20h
        Msg DB 'Hello World',13,10,'$'
CODE ENDS
END START

JScript

document.write('Hello, world!');

Маргинальные примеры

Данная группа примеров обычно призвана демонстрировать громоздкость технологий.

C++ с использованием Component Object Model

[
    uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
    // bring in the master library
    importlib("actimp.tlb");
    importlib("actexp.tlb");
    // bring in my interfaces
#include "pshlo.idl"
    [
        uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
    ]
    cotype THello
    {
        interface IHello;
        interface IPersistFile;
    };
};
[
    exe,
    uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
    // some code related header files
    importheader();
    importheader();
    importheader();
    importheader("pshlo.h");
    importheader("shlo.hxx");
    importheader("mycls.hxx");
    // needed typelibs
    importlib("actimp.tlb");
    importlib("actexp.tlb");
    importlib("thlo.tlb");
    [
        uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
        aggregatable
    ]
    coclass CHello
    {
        cotype THello;
    };
};
#include "ipfix.hxx"
extern HANDLE hEvent;
class CHello : public CHelloBase
{
public:
	IPFIX(CLSID_CHello);
	CHello(IUnknown *pUnk);
	~CHello();
	HRESULT __stdcall PrintSz(LPWSTR pwszString);
private:
	static int cObjRef;
};
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
int CHello:cObjRef = 0;
CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
    cObjRef++;
    return;
}
HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
    printf("%ws\n", pwszString);
    return(ResultFromScode(S_OK));
}
CHello::~CHello(void)
{
    // when the object count goes to zero, stop the server
    cObjRef--;
    if( cObjRef == 0 )
        PulseEvent(hEvent);
    return;
}
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"
HANDLE hEvent;
int _cdecl main(int argc, char * argv[]) {
    ULONG ulRef;
    DWORD dwRegistration;
    CHelloCF *pCF = new CHelloCF();
    hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
    // Initialize the OLE libraries
    CoInitiali, NULL);
    // Initialize the OLE libraries
    CoInitializeEx(NULL, COINIT_MULTITHREADED);
    CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
        REGCLS_MULTIPLEUSE, &dwRegistration);
    // wait on an event to stop
    WaitForSingleObject(hEvent, INFINITE);
    // revoke and release the class object
    CoRevokeClassObject(dwRegistration);
    ulRef = pCF->Release();
    // Tell OLE we are going away.
    CoUninitialize();
    return(0); 
}
extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;
CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
    0x2573F891,
        0xCFEE,
        0x101A,
    { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
    0x2573F890,
        0xCFEE,
        0x101A,
    { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"
int _cdecl main( int argc, char * argv[]) {
    HRESULT hRslt;
    IHello *pHello;
    ULONG ulCnt;
    IMoniker * pmk;
    WCHAR wcsT[_MAX_PATH];
    WCHAR wcsPath[2 * _MAX_PATH];
    // get object path
    wcsPath[0] = '\0';
    wcsT[0] = '\0';
    if( argc 1) {
        mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
        wcsupr(wcsPath);
    }
    else {
        fprintf(stderr, "Object path must be specified\n");
        return(1);
    }
    // get print string
    if(argc 2)
        mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
    else
        wcscpy(wcsT, L"Hello World");
    printf("Linking to object %ws\n", wcsPath);
    printf("Text String %ws\n", wcsT);
    // Initialize the OLE libraries
    hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    if(SUCCEEDED(hRslt)) {
        hRslt = CreateFileMoniker(wcsPath, &pmk);
        if(SUCCEEDED(hRslt))
            hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
        if(SUCCEEDED(hRslt)) {
            // print a string out
            pHello->PrintSz(wcsT);
            Sleep(2000);
            ulCnt = pHello->Release();
        }
        else
            printf("Failure to connect, status: %lx", hRslt);
        // Tell OLE we are going away.
        CoUninitialize();
    }
    return(0);
}

Другие программы

В учебниках по программированию используются и другие программы:

  • Пустая программа — ничего не делает, но корректно запускается и выгружается из памяти.
  • «99 бутылок пива» демонстрирует простейшее применение циклов, печатает стишок:
99 бутылок пива на стене!
99 бутылок пива!
Возьми одну и выпей её —
98 бутылок пива на стене!
98 бутылок пива!
<…>
1 бутылка пива на стене!
1 бутылка пива!
Возьми одну и выпей её —
Нет больше бутылок пива на стене!
  • Программы вычисления факториала и чисел Фибоначчи.
  • Quine — программа, печатающая сама себя.
  • Ссылки

    Юмор
    Художественные работы

    Wikimedia Foundation. 2010.

    Полезное


    Смотреть что такое "Программа Hello, world!" в других словарях:

    • Программа Hello world — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

    • Программа Hello — Программа Hello, world! Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане GVim с исходным кодом на Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы… …   Википедия

    • Hello, world! — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане gedit с исходным кодом на Perl …   Википедия

    • Hello — Hello, world! Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане GVim с исходным кодом на Perl …   Википедия

    • Компьютерная программа — Эта статья или раздел описывает ситуацию применительно лишь к одному региону. Вы можете помочь Википедии, добавив информацию для других стран и регионов. Для термина «программа» см. другие …   Википедия

    • 4DL — Программа «Hello, World!» на языке 4DL 4DL (4D Language) эзотерический язык программирования, созданный Клиффом Биффлом. Весь язык базируется вокруг стека байтов. Операторами 4DL являются отдельные символы 4DL имеет очень скромный набор команд (p …   Википедия

    • Здравствуй, мир! — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

    • Здравствуй, мир — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

    • Здравствуй мир — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

    • Здравствуй мир! — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия


    Поделиться ссылкой на выделенное

    Прямая ссылка:
    Нажмите правой клавишей мыши и выберите «Копировать ссылку»