Программа Hello, world!
Программа «Hello world» — программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй, мир!»). Обычно это первый пример программы в учебниках по программированию, и для многих студентов такая программа является первым опытом при изучении нового языка.
Такая постановка задачи обращает внимание учащегося сразу на несколько ключевых моментов языка программирования, главным из которых является базовая структура программы.
Хотя небольшие тестовые примеры использовались с тех самых пор как появились компьютеры, традиция использования фразы «Hello, world!» в качестве тестового сообщения была введена в книге «Язык программирования Си» Брайана Кернигана и Денниса Ричи, опубликованной в 1978 году.
Примеры
Ассемблер
Пример программы Hello world для MS-DOS для архитектуры x86 на диалекте TASM:
.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
Бейсик
PRINT "Hello, world!"
C
#include <stdio.h>
int main (void)
{
printf("Hello, world!\n");
return 0;
}
C++
В более старых версиях языка (без namespaces):
#include <iostream.h>
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
В более новых версиях:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
}
C#
public class ExampleClass
{
public static void Main()
{
System.Console.WriteLine("Hello, world!");
}
}
Common Lisp
(princ "Hello, world!")
Haskell
main = print "Hello, world!"
Java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
JavaScript
document.write('Hello, world!');
Python
Начиная с версии интерпретатора 3.0[1]:
print("Hello, world!")
В более ранних версиях аналогичная программа имела следующий вид:
print "Hello, world!"
Pascal
Program Hello_world;
Begin
WriteLn('Hello, world!');
End.
Perl
#!/usr/bin/perl
print "Hello, world!\n";
PHP
<?php
echo "Hello, world!";
?>
Ruby
puts "Hello, world!"
Scheme
(display "Hello, world!")
Маргинальные примеры
Данная группа примеров призвана показать громоздкость некоторых технологий.
[
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 — программа, печатающая сама себя.
- JAPH.
Примечания
- ↑ What’s New In Python 3.0(англ.)
Ссылки
- Коллекция «The Hello World» — более 400 программ, включая «Hello World» на 60+ реальных языках
- Hello world на многих языках (проект заморожен)
- Юмор
- Художественные работы
ar:برنامج أهلا بالعالم az:Salam dünya proqramı (Hello World) bar:Servus-Woid-Programm bg:Hello, world bs:Hello world program ca:Hola món cs:Hello world da:Hello world-program de:Hallo-Welt-Programm el:Πρόγραμμα hello world en:Hello world program eo:Saluton, mondo! es:Hola mundo et:Hello world eu:Kaixo mundua fi:Hei maailma -ohjelma fr:Hello world he:תוכנית Hello world hu:„Helló, világ!” program ia:Hello World id:Hello world it:Hello world ja:Hello world ka:გამარჯობა სამყარო (პროგრამა) ko:Hello world 프로그램 mk:Hello World ml:ഹലോ വേൾഡ് (കമ്പ്യൂട്ടർ പ്രോഗ്രാം) ms:Hello world nl:Hello world (computerprogramma) nn:Hello World no:Hello, world pl:Hello world pt:Programa Olá Mundo ro:Program Hello, world! sah:Hello world sh:Hello World simple:Hello World program sk:Hello world sl:Pozdravljen, svet sq:Njatjeta Botë (programi) sr:Hello World sv:Hello World th:เฮลโลเวิลด์ tr:Merhaba dünya programı uk:Hello world! (програма) vi:Hello world zh:Hello World
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....