Hello, World!
Традиционная первая программа при изучении языка программирования.
Вывод программы должен выглядеть следующим образом: Hello, World!
Пример для версий Seed7 2007-06-07, Seed7 2012-01-01
$ include "seed7_05.s7i";
const proc: main is func
begin
writeln("Hello, World!");
end func;
Пример для версий boo 0.7.6.2237, boo 0.8.2
print("Hello, World!")
Пример для версий Scala 2.5.1-final, Scala 2.7.7-final
object HelloWorld {
def main(args: Array[String]) {
println("Hello, World!")
}
}
Пример для версий gpcp 1.3.4-JVM, gpcp 1.3.4-NET 1.1, gpcp 1.3.9-NET
MODULE Hello;
IMPORT CPmain, Console;
BEGIN
Console.WriteString("Hello, World!");
END Hello.
Пример для версий BlackBox Component Builder 1.5
О том как запустить программу на выполнение — см. Как запустить Блэкбокс и выполнить первую программу. Для запуска после конца описания модуля добавляется строка с коммандером и действием Hello.Do (см. скриншот). При нажатии на коммандер действие выполняется.
MODULE Hello;
IMPORT StdLog;
PROCEDURE Do*;
BEGIN
StdLog.String("Hello World");
END Do;
END Hello.
Запуск программы в BlackBox
Пример для версий Euphoria 3.1.1
puts(1,"Hello, World!")
Пример для версий Python 2.x
print "Hello world"
Пример для версий Python 3.x
print ("Hello, world!")
Пример для версий gmcs 2.0.1
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Пример для версий Borland C++ Builder 6, g++ 3.4.5, g++ 4.x, Microsoft Visual C++ 6, Microsoft Visual C++ 9 (2008)
#include <iostream>
int main(void)
{
std::cout << "Hello, World!" << std::endl;
return 0;
}
Пример для версий Oracle 10g SQL, Oracle 11g SQL
Строка ‘Hello, World!’ выбирается из встроенной таблицы dual
, используемой для запросов, не требующих обращения к настоящим таблицам.
select 'Hello, World!'
from dual;
Пример для версий clisp 2.47, Corman Common Lisp 3.0, gcl 2.6.6, SBCL 1.0.1, SBCL 1.0.29
Результат выполнения этого кода в интерактивном режиме имеет следующий вид:
Hello, World!
NIL
Первая строка содержит стандартный поток вывода, вторая — значение, возвращаемое кодом (в данном случае — его отсутствие).
(format t "Hello, World!~%")
Пример для версий gcj 3.4.5, Groovy 1.7, Sun Java 6
Для Java приведенный код должен находиться в файле HelloWorld.java.
public class HelloWorld {
public static void main(String[] args)
{
System.out.println("Hello, World!");
}
}
Пример для версий Free Pascal 2.2.0, Free Pascal 2.2.4, gpc 20070904, PascalABC.NET 1.8, Turbo Pascal 1.0, Turbo Pascal 2.0, Turbo Pascal 3.0, Turbo Pascal 4.0, Turbo Pascal 5.0, Turbo Pascal 5.5, Turbo Pascal 6.0, Turbo Pascal 7.0
program helloworld;
begin
writeln('Hello, World!');
end.
Пример для версий Microsoft Visual Basic 6
Microsoft Visual Basic предназначен для разработки приложений с оконным интерфейсом, поэтому создание простейшего консольного приложения является нетривиальной задачей. В примере показаны: импорт нужных функций из стандартной библиотеки, создание консоли, получение указателя на ее стандартный поток вывода, собственно вывод сообщения в этот поток и освобождение использованных объектов.
Option Explicit
Declare Function AllocConsole Lib "kernel32" () As Long
Declare Function FreeConsole Lib "kernel32" () As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" _
(ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal _
nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, _
lpReserved As Any) As Long
Declare Function Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) As Long
Private Sub Main()
'create a console instance
AllocConsole
'get handle of console output
Dim hOut As Long
hOut = GetStdHandle(-11&)
'output string to console output
Dim s As String
s = "Hello, World!" & vbCrLf
WriteConsole hOut, ByVal s, Len(s), vbNull, vbNull
'make a pause to look at the output
Sleep 2000
'close the handle and destroy the console
CloseHandle hOut
FreeConsole
End Sub
Пример для версий bwBASIC 2.50, QBasic 1.1, QuickBasic 4.50
PRINT "Hello, World!"
Пример для версий EsCo 0.511 (Brainfuck), Müller's Brainfuck 2.0, weave.rb
Существует много способов сказать “Hello, World!” на Brainfuck. Ниже приведен самый простой из них: использовать только одну ячейку памяти и последовательно изменять ее значение на ASCII-код каждой буквы сообщения. Каждая строка примера выводит один символ.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+++++++++++++++++++++++++++++.
+++++++.
.
+++.
-------------------------------------------------------------------.
------------.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++.
++++++++++++++++++++++++.
+++.
------.
--------.
-------------------------------------------------------------------.
Пример для версий EsCo 0.511 (Brainfuck), Müller's Brainfuck 2.0, weave.rb
В этом примере используется три основные ячейки памяти — первая для прописных букв ‘H’ и ‘W’, вторая для строчных букв и третья для знаков препинания ‘,’, ‘ ‘ и ‘!’ — и три дополнительные индексные ячейки для сокращения записи изменений ASCII-кодов. Использованная память выглядит следующим образом:
(индексная ячейка 1) (ячейка прописных букв) (индексная ячейка 2) (ячейка строчных букв) (индексная ячейка 3) (ячейка знаков препинания)
++++++[>++++++++++++<-]>.
>++++++++++[>++++++++++<-]>+.
+++++++.
.
+++.
>++++[>+++++++++++<-]>.
<+++[>----<-]>.
<<<<<+++[>+++++<-]>.
>>.
+++.
------.
--------.
>>+.
Пример для версий Microsoft SQL Server 2005, Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012, MySQL 5, PostgreSQL 8.4, PostgreSQL 9.1, sqlite 3.7.3
select 'Hello, World!';
Пример для версий iconc 9.4
procedure main ()
write ("Hello, world!")
end
Пример для версий Visual Prolog 7.2
Visual Prolog создает проекты автоматически. Для запуска примера следует создать новый проект, выбрав “Console” в качестве UI Strategy, перейти к редактированию файла main.pro
и заменить его содержимое приведенным кодом.
implement main
open core
constants
className = "main".
classVersion = "".
clauses
classInfo(className, classVersion).
clauses
run():-
console::init(),
stdio::write("Hello, World!"),
programControl::sleep(1000),
succeed().
end implement main
goal
mainExe::run(main::run).
Пример для версий ARIBAS 1.53
writeln("Hello, World!");
Пример для версий VB.NET 9 (2008), vbnc 2.4.2
Module Module1
Sub Main()
Console.WriteLine("Hello, World!")
End Sub
End Module
Пример для версий EsCo 0.511 (Brainfuck)
Этот пример является переводом на Ook! этого примера на Brainfuck.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook?
Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook! Ook! Ook? Ook!
Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook?
Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
Пример для версий EsCo 0.511 (Brainfuck)
Этот пример является переводом на Spoon этого примера. Отметим, что Spoon позволяет не разделять отдельные команды пробелами, но текущая версия EsCo требует, чтобы команды разделялись пробелами.
1111110010001011111111111101100000110100010100101111111111001000101111111111011000001101
0100101011111110010100010101110010100101111001000101111111111101100000110100010100111110
0100010000000000000011000001101000101001101101101101111100100010111110110000011010001010
0100100010101110010100000000000000000000010100000000000000000000000000010100100101001010
Пример для версий PHP 5.2.4, PHP 5.3.2
<?php
echo("Hello, World!\n");
?>
Пример для версий Oracle 10g SQL, Oracle 11g SQL
В этом примере используется анонимный блок PL/SQL, который выводит сообщение в стандартный поток вывода с помощью пакета dbms_output
.
begin
dbms_output.put_line('Hello, World!');
end;
Пример для версий g95 0.93, gfortran 4.5.0, Intel Visual Fortran 11.1
Этот пример написан в свободном формате, поддерживаемом Fortran 90 и последующими стандартами, а также диалектом F.
! Fortran 90-style comment
program HelloWorld
print *, "Hello, World!"
end program HelloWorld
Пример для версий B-Prolog 7.4-3, ECLiPSe CLP 6.0 #188, gprolog 1.3.0, Poplog 15.5 (Prolog), swipl 5.6.x
Этот пример не требует загрузки фактов или правил. Запрос выполняется в интерактивном режиме, и его результат выглядит следующим образом:
Hello, World!
yes
Первая строка является собственно выводом предиката write
, вторая — результат оценивания запроса.
Следует отметить, что замена одинарных кавычек на двойные выводит строку как массив ASCII-кодов отдельных символов:
| ?- write("Hello, World!").
[72,101,108,108,111,44,32,87,111,114,108,100,33]
yes
write('Hello, World!'), nl.
Пример для версий Poplog 15.5 (POP-11)
=>
— оператор вывода.
'Hello, World!' =>
Пример для версий Lua 5.0
print("Hello, World!")
Пример для версий SpiderMonkey (Firefox 3.5)
JavaScript может применять для вывода сообщений различные команды в зависимости от того, в какой среде он используется:
-
print
: при использовании интерпретатора с интерфейсом командной строки выводит сообщение в стандартный поток вывода, при использовании браузера — вызывает диалог печати для текущего документа; -
document.write
: при использовании браузера — записывает текст на страницу; -
console.log
: команда плагина Firebug, предназначенная для вывода отладочных сообщений в консоль плагина; -
alert
: при использовании браузера — создает всплывающее окно информации с этим текстом.
print('Hello, World!');
document.write('Hello, World!');
console.log('Hello, World!');
alert('Hello, World!');
Пример для версий GHC 6.10.4
module Main where
main = do
putStrLn "Hello, World!"
Пример для версий Furry Paws
~x
— функция-константа (обозначенная как % в Interactive FP). emit
— стандартная функция, выводящая свой аргумент в стандартный поток вывода. main
— функция, наличие которой в программах на Furry Paws обязательно, т.к. при выполнении программы она вызывается первой.
main = emit.(return ~"Hello, World!\n")
Пример для версий gnat 3.4.5
with Ada.Text_IO;
procedure HelloWorld is
begin
Ada.Text_IO.Put_Line("Hello, World!");
end HelloWorld;
Пример для версий UCBLogo 6.0
print [Hello, World!]
Пример для версий gawk 3.1.6, Jawk 1.02, mawk 1.3.3
Печать выполняется шаблоном BEGIN
, т.е. перед обработкой входных данных. Сами данные не обрабатываются.
BEGIN { print "Hello, World!" }
Пример для версий S-lang 2.2.2
message ("Hello, World!");
Пример для версий Hanoi Love
Этот пример является фактически переводом примера на Brainfuck. Все стеки пусты, и все вычисления проводятся в регистре. Стек A используется как источник константы 1: поскольку он пуст, примененная к нему операция pop
возвращает значение 1. Таким образом, команды ;
и backtick
становятся командами “увеличить значение в регистре на 1” и “уменьшить значение в регистре на 1”, соответственно, и эквивалентны командам +
и -
на Brainfuck. Пара команд "'
записывает содержимое регистра в стандартный поток вывода, и эквивалентна команде .
на Brainfuck.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; "'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; "'
;;;;;;; "'
"'
;;; "'
``````````````````````````````````````````````````````````````````` "'
```````````` "'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; "'
;;;;;;;;;;;;;;;;;;;;;;;; "'
;;; "'
`````` "'
```````` "'
``````````````````````````````````````````````````````````````````` "'
Пример для версий J602, J701
'Hello, World!'
Пример для версий Müller's Brainfuck 2.0
Этот пример является переводом на Brainloller этого примера. Поскольку Brainloller — язык чисто графический, в роли исходного кода выступают изображения.
"Hello, World!" на Brainloller
"Hello, World!" на Brainloller (увеличение 10x)
Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4
В этом случае создается временная строковая переменная. В конце строки нет символа “;”, и значение этой переменной выводится отдельным Out
, что не всегда удобно.
"Hello, World!"
Пример для версий Mathics 0.4, Wolfram Mathematica 7.0.1.0, Wolfram Mathematica 8.0.4
Функция Print
выводит свои аргументы в основной выходной поток. Потоки могут быть вложенными, и для удобства копирования результатов лучше пользоваться для вывода одним потоком.
Print["Hello, World!"];
Пример для версий Mercury 10.04
:- module hello.
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.
:- implementation.
main(!IO) :-
io.write_string("Hello, World!\n", !IO).
Пример для версий Bash 4.0.35, Bash 4.1.5
В этом примере используется инструмент Bash — dc (Desktop Calculator), нестандартный, но часто встречающийся инструмент, позволяющий работать с числами произвольной точности. Команда P (последний символ строки перед | dc
) выводит на печать верхний элемент стека. Число до команды в шестнадцатиричном виде выглядит как 0x48656C6C6F2C20576F726C64210A, и пары соседних цифр образуют ASCII-коды символлв строки “Hello, World!”: 0x48 = H, 0x65 = e, 0x6c = l и.т.д. Таким образом, при выводе на печать это число воспринимается как строка.
echo 1468369091346906859060166438166794P | dc
Пример для версий Интерпретатор ПРОФТ-5.52
Пример с английскими, а не русскими ключевыми словами (использование английского в Профт не рекомендуется).
Action Begin().
Message("Hello, world!"; 64; "Simplest program").
End.
EndAction.
Пример для версий guile 1.8.5, JScheme 7.2, MIT/GNU Scheme 7.7.9
Вывод строки на печать — побочный эффект выполнения этой команды. В зависимости от выбранной реализации, команда вернет либо выведенный текст, либо Unspecified return value
.
(write "Hello, World!")
Пример для версий Whitespacers (Ruby)
Для простоты понимания код откомментирован: буква означает, что следующий фрагмент кода добавляет в стек ASCII-код этой буквы, а после print
следует команда вывода верхнего элемента стека на печать как символа. Последовательности символов, задающие ASCII-коды, заключены в фигурные скобки (за исключением перевода строки).
H { }
print
e { }
print
l { }
print
l { }
print
o { }
print
, { }
print
space { }
print
W { }
print
o { }
print
r { }
print
l { }
print
d { }
print
! { }
print
\n { }
print
end
Пример для версий erl 5.7.3
Первая строка задает имя модуля и указывает на то, что он должен находиться в файле prog.erl. Вторая строка экспортирует 0-арную (не имеющую параметров) функцию main. Третья описывает саму функцию, которая выводит “Hello, World!”.
-module(prog).
-export([main/0]).
main() -> io:format("Hello, World!~n").
Пример для версий GDC 0.24
Функция writef
примерно эквивалентна printf
в C++ и выводит на печать строку определенного формата.
module hello;
import std.stdio;
int main()
{
writefln( "Hello, World!" );
return 0;
}
Пример для версий Perl 5.12.1, rakudo-2010.08
print "Hello, World!\n";
Пример для версий rakudo-2010.08
Команда say
доступна только в Perl 6.
say 'Hello, World!';
Пример для версий Ruby 1.8.5, Ruby 1.9.0, Ruby 1.9.2
puts "Hello, World!"
Пример для версий Borland C++ Builder 6, g++ 3.4.5, gcc 3.4.5, gcc 3.4.5 (Objective-C), TCC 0.9.25
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
Пример для версий Scratch 1.4
Летучая мышь — спрайт, ассоциированный скрипт которого состоит из единственного блока — вывода “Hello, World!”. Приведены две версии примера — для англоязычного интерфейса и локализованная.
say Hello, World!
Hello, World! на Scratch
Hello, World! на Scratch (рус.)
Пример для версий Sanscript 2.2
Диаграмма функций для этого примера состоит из двух функций — константы “Hello, World!” и “Display Message”, которая выводит эту константу на экран.
Hello, World! на Sanscript
Пример для версий gc-2010-07-14
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Пример для версий LabVIEW 10.0
Диаграмма блоков (эквивалент программы на G) для этого примера состоит из единственного узла — “Display Message to User”, с заданным заранее сообщением.
Чтобы выполнить этот пример, создайте новый проект и новый VI в нем. Переключитесь на диаграмму блоков нового VI. Перейдите в Functions -> Programming -> “Dialog and User Interface” — это список узлов, из которых можно строить программу. Выберите узел “Display Message To User” и перетащите его на диаграмме. После этого появится диалог конфигурации узла; введите “Hello, World!” в качестве сообщения, которое следует выводить. Сохраните проект и нажмите Run — сообщение появится во всплывающем окне. Скриншот показывает и диаграмму блоков, и результат выполнения программы.
Hello, World! на G/LabVIEW
Пример для версий GNU bc 1.06
print "Hello, World!\n";
Пример для версий gnuplot 4.2.2
print 'Hello, World!'
Пример для версий gforth 0.7.0
Команда ."
считывает строку, заключенную в двойные кавычки, и присоединяет ее к текущему определению, поэтому эта строка будет выведена при выполнении. Один пробел, отделяющий ."
от Hello
, не является частью строки, а требуется для того, чтобы распознать ."
как команду.
Команда cr
в конце программы выводит следующий за ней текст с новой строки, являясь эквивалентом nl
в Prolog и endl
в C++.
." Hello, World!" cr
Пример для версий C-INTERCAL 28.0, J-INTERCAL 0.11, J-INTERCAL 0.12
INTERCAL — один из тех языков, в которых даже вывод “Hello, World!” — пытка. C-INTERCAL использует метод вывода строк под названием лента Тьюринга. На вход команды READ OUT
подается массив чисел (в данном случае ,1
), который обрабатывается слева направо, по одному элементу за раз, следующим образом:
-
8 бит ASCII-кода предыдущего выведенного символа отображаются зеркально —
rev(i)
. Если выводится первый символ,rev(i)
принимается равным 0. -
array(i)
— i-ый элемент массива. -
rev(i) = rev(i-1) -- array(i)
-
Биты
rev(i)
снова отображаются зеркально, и получаем ASCII-код следующего символа для вывода.
Также следует отметить использование модификатора PLEASE
: в этой программе он должен встретиться 4 или 5 раз, в произвольных местах. 3 и меньше вызовут ошибку “ICL079I PROGRAMMER IS INSUFFICIENTLY POLITE”, 6 и больше — “ICL099I PROGRAMMER IS OVERLY POLITE”.
Остальные команды и выражения сравнительно обычны: # — префикс константы, <- — присвоение, SUB — индекс массива. Первая строка примера создает массив 16-битных целых из 13 элементов.
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
PLEASE DO ,1 SUB #7 <- #48
DO ,1 SUB #8 <- #26
DO ,1 SUB #9 <- #244
PLEASE DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP
Пример для версий CLC-INTERCAL 1.-94.-2
CLC-INTERCAL использует механизм текстового ввода-вывода, основанный на кодах Бадо. Это 5-битная кодировка, в которой код каждого символа состоит из двух частей — сдвиг и собственно код. Сдвиг может принимать значения от 1 до 4, переключения между сдвигами делается специальными кодами 31 (из 1|2 в 2 или 3|4 в 1) и 27 (из 1|2 в 3 или из 3|4 в 4). Таким образом, выводящийся массив интерпретируется как последовательность кодов символов и переключателей сдвига. Массив обычно длиннее, чем сообщение, из-за переключателей сдвига.
В этом примере, сообщение начинается с H, код Бадо “1 0x14”. Изначально сдвиг равен 1, его менять не нужно, поэтому первый элемент массива — код символа 20. Следующий символ — e, код Бадо “2 0x01”, приходится переключаться на сдвиг 2 (код 31) и только потом печатать символ (код 1), и т.д.
Следует отметить, что CLC-INTERCAL не слишком беспокоится о вежливости программиста: этот пример работает с гораздо меньшим количеством PLEASE
, чем потребовал бы C-INTERCAL.
DO ,1 <- #18
DO ,1 SUB #1 <- #20
DO ,1 SUB #2 <- #31
DO ,1 SUB #3 <- #1
DO ,1 SUB #4 <- #19
DO ,1 SUB #5 <- #19
DO ,1 SUB #6 <- #24
DO ,1 SUB #7 <- #27
DO ,1 SUB #8 <- #12
DO ,1 SUB #9 <- #4
DO ,1 SUB #10 <- #31
DO ,1 SUB #11 <- #18
DO ,1 SUB #12 <- #31
DO ,1 SUB #13 <- #24
DO ,1 SUB #14 <- #10
DO ,1 SUB #15 <- #19
DO ,1 SUB #16 <- #9
DO ,1 SUB #17 <- #27
DO ,1 SUB #18 <- #13
PLEASE READ OUT ,1
PLEASE GIVE UP
Пример для версий Mozart 1.4.0
functor
import
Application
System
define
{System.showInfo 'Hello, World!'}
{Application.exit 0}
end
Пример для версий gst 3.1
'Hello, World!' printNl.
Пример для версий Müller's Brainfuck 2.0
Этот пример является переводом на Unary этого примера. Сам код слишком обширен, чтобы приводить его полностью, поэтому указана только его длина.
A string of
708184005756841022918598670049178934705323143517361395031673227349803938380
119378597780037353721967636097362645175347036417214959141923667629285233360
306016978751166690464736541968556 zeroes (approximately 7*10^182).
Пример для версий Ellsässer's HQ9+ 0.8
Любая программа на HQ9+, содержащая один символ H и не содержащая Q и 9, выводит это сообщение.
H
Пример для версий ActiveTcl 8.5, JTcl 2.1.0, Tcl 8.4, Tcl 8.5.7
puts "Hello, World!"
Пример для версий Bash 3.0, Bash 4.0.35, Bash 4.1.5
MESSAGE='Hello'
TARGET='World'
echo "$MESSAGE, $TARGET!"
Пример для версий Miller's Hack VM (JavaScript), Miller's Hack VM (Python)
Программа работает довольно очевидным образом — ASCII-коды символов сообщения вычисляются и выводятся один за другим. Вычислять их приходится из-за того, что сразу помещать в стек можно только числа от 0 до 9, большие числа приходится комбинировать из меньших. Единственным нетривиальным приемом является обработка символа l
— когда его ASCII-код вычисляется, он утраивается в стеке командой 0^
и выводится на печать два раза сразу же и один раз позднее.
89*P 45*99*+P 39*99*+0^0^PP 56*99*+P 29+4*P 48*P 92+8*1-P 56*99*+0^P 3+P P 25*0^*P 56*3+P
Пример для версий agda 2.2.6
Простой вывод строк на печать — неестественное для Agda занятие, поэтому требует установки дополнительных пакетов. Этот пример следует сохранить в файл “helloworld.agda”. Понадобится установить стандартную библиотеку agda-stdlib; этот пример был проверен для agda 2.2.6 и agda-stdlib 0.3. Чтобы скомпилировать пример, используйте команду agda -i [library path] -i . -c helloworld.agda
, где [library path] — путь к директории, в которой установлена библиотека. Эта команда компилирует исходный код Agda в код Haskell, и затем — в исполняемый файл.
module helloworld where
open import IO.Primitive using (IO; putStrLn)
open import Data.String using (toCostring; String)
open import Data.Char using (Char)
open import Foreign.Haskell using (fromColist; Colist; Unit)
open import Data.Function
fromString = fromColist . toCostring
main : IO Unit
main = putStrLn (fromString "Hello, World!")
Пример для версий Onyx 5.1.2
#!/usr/bin/onyx
`Hello world!\n' print
Пример для версий Roco 20071014
В программе используется одна сопрограмма — главная. Она выводит сообщение посимвольно, используя ASCII-коды символов, и останавливается.
cout 72
cout 101
cout 108
cout 108
cout 111
cout 44
cout 32
cout 87
cout 111
cout 114
cout 108
cout 100
cout 33
ac
Пример для версий fsharp 2.0.0
printfn "Hello, World!"
Пример для версий MLton 20070826, Moscow ML 2.01, SML/NJ 110.69
Отметим, что в Objective Caml этот код работать не будет, так как в нем не определена функция print
.
print "Hello, World!\n";
Пример для версий Groovy 1.7
println "Hello, World!"
Пример для версий Müller's Brainfuck 2.0
Этот пример является переводом на Pi этого примера.
3.141592653589793238462623382272502824197169299275107820904924592337816406386238
99262833482534311206728234808621328230264709314460935058223872535941812844111745
00841022019385311055296426229289549302819244388109726652334471204756422337867231
65221231909345628566933460342610454226248213391607264249148273720587036656315582
17288153092396282225439171532436789559536003133023024882044652108412695192151163
94330573703656595909530921261173839326137921051125420742623799227495273538857227
24892227938133011749109833675362442656243086321294946795024737130702479860343702
77453921711629317375838467480846766440513202056822724526351082178577132275778260
91736271767204684409312229532301462492853110307922896892089235450199501120290219
65862034218129813624774731309964518707241349993993372978039951049734732816036348
59504445345544690330263252250825304468003522193158817101
Пример для версий Factor 0.94
Первая строка импортирует библиотеку io
, содержащую слово print
. Вторая строка добавляет на стек строку-сообщение и затем вызывает слово print
, которое выводит верхний элемент стека на печать.
USE: io
"Hello, World!" print
Пример для версий ncc 0.9.3
Пример в стиле C#. Более простая запись не требует оформления в класс:
System.Console.WriteLine("Hello, World!");
class Hello {
static Main () : void {
System.Console.WriteLine ("Hello, World!");
}
}
Пример для версий Web2c 2009
Hello, World!
\bye
Пример для версий Harder's Omgrofl
Сообщение выводится посимвольно, с использованием ASCII-кодов символов. Затем программа останавливается.
rofl 72
rofl 101
rofl 108
rofl 108
rofl 111
rofl 44
rofl 32
rofl 87
rofl 111
rofl 114
rofl 108
rofl 100
rofl 33
stfu
Пример для версий EsCo 0.511 (Brainfuck)
Пример для Boolfuck.
H ;;;+;+;;+;+;
e +;+;+;+;;+;;+;
l ;;+;;+;+;;+;
l ;;+;;+;+;;+;
o +;;;;+;+;;+;
comma ;;+;;+;+;+;;
space ;;;;;+;+;;
W +;;;+;+;+;+;+;
o +;;;;+;+;;+;
r ;+;+;;+;;;+;
l ;;+;;+;+;;+;
d ;;+;+;;+;;+;
! +;+;;;;+;+;;
\n ;+;+;+;
Пример для версий weave.rb
Пример использования диалекта pbrain. Первая строка определяет процедуру номер 0, которая, будучи вызвана в некоторой ячейке, копирует в нее содержимое соседней слева ячейки и прибавляет к нему 10. Вторая строка заполняет первые 14 ячеек значениями от 0 до 130 с шагом 10. Затем значения в нужных ячейках изменяются на ASCII-коды нужных символов.
(++++++++++<[>+>+<<-]>>[<<+>>-])
>::::::::::::::
<<<<<<<--------.>>>---------.+++++++..>---------.<<<<<<
<------.<--------.>>>>>---.>>>.+++.<.--------.<<<<<<<+.
Пример для версий EsCo 0.511 (Brainfuck)
Пример на COW.
MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MOO moO MoO moO MoO MoO moO MoO MoO MoO
moO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO moO MoO
MoO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO
MoO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO moO MoO MoO MoO
MoO MoO MoO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO
MoO moO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO mOo mOo mOo mOo mOo
mOo mOo mOo mOo mOo mOo mOo mOo MOo moo moO moO moO moO moO moO moO moO MOo MOo
MOo MOo MOo MOo MOo MOo Moo moO moO moO MOo MOo MOo MOo MOo MOo MOo MOo MOo Moo
MoO MoO MoO MoO MoO MoO MoO Moo Moo moO MOo MOo MOo MOo MOo MOo MOo MOo MOo Moo
mOo mOo mOo mOo mOo mOo mOo MOo MOo MOo MOo MOo MOo Moo mOo MOo MOo MOo MOo MOo
MOo MOo MOo Moo moO moO moO moO moO MOo MOo MOo Moo moO moO moO Moo MoO MoO MoO
Moo mOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo mOo mOo mOo mOo mOo mOo mOo MoO
Moo
Пример для версий Baltie 3
Программа состоит из двух иконок: первая — literal
— содержит сообщение, которое следует вывести, вторая — read key or mouse button (wait for pressing)
— приостанавливает выполнение программы до того, как пользователь нажмет любую клавишу (иначе окно результатов закроется до того, как можно будет прочитать сообщение).
"Hello, World!" на Baltie 3
Пример для версий npiet 1.2
В этом примере используются только две команды — push
и out(char)
. Для того, чтобы вывести на печать один символ, нужно сначала создать блок произвольного цвета из количества пикселей, равного ASCII-коду символа, затем справа от него создать блок цвета, на один темнее, из произвольного количества пикселей (команда push
), и наконец, справа от него создать блок цвета, на один левее исходного, из произвольного количества символов (команда out(char)
). После этого цикл повторяется.
Для того, чтобы закончить работу программы, используется петля — блок одного цвета, окруженный черными пикселями. Когда указатель инструкций попадает в этот блок, он не может его покинуть ни в каком направлении.
Декоративная версия примера демонстрирует, что форма блоков может быть любой, даже с пикселями других цветов внутри.
Hello, World! на Piet (базовый вариант)
Hello, World! на Piet (базовый вариант, увеличение 5x)
Hello, World! на Piet (декоративный вариант)
Hello, World! на Piet (декоративный вариант, увеличение 5x)
Пример для версий Io-2008-01-07
Эта команда создает символ “Hello, World!” (символ — неизменная последовательность, наподобие строки в Java) и отправляет ему сообщение println
(эквивалент вызову метода println
в других языках).
"Hello, World!" println
Пример для версий Objective Caml 3.10.2
print_endline "Hello, World!"
Пример для версий APS APLAN
Эта программа не требует использования правил переписывания и выполнена в процедурном стиле. Модуль std.ap
позволяет использовать арифметические операции, предикаты сравнения, логические операции, императивные элементы и ряд специальных функций; его включение необходимо во всех программах. При запуске в онлайн-интерпретаторе все модули подключены автоматически, поэтому в явном виде их можно не подключать.
Вместо функции put
можно использовать эквивалентную ей prn
.
INCLUDE <include/std.ap>
task := put("Hello, World!");
Пример для версий Miranda 2.042
"Hello, World!"
Пример для версий Online Cat 1.3
Первая строка программы добавляет строку “Hello, World!” в стек, вторая — выводит верхний элемент стека на печать. Команды языка не обязательно писать в отдельных строках; эту же программу можно было бы написать как "Hello, World!" writeln
.
"Hello, World!"
writeln
Пример для версий Regina 3.3
say 'Hello, World!'
Пример для версий Интерпретатор ПРОФТ-5.52
Действие Начало().
Сообщить("Hello, World!"; 64; "Простейшая программа: Здравствуйте, Мир!").
Конец.
КонецДействия.
Пример для версий FOCAL15 V6B
PDP-15 поддерживает только прописные буквы.
Вместо команды TYPE
можно написать просто T
.
Второй восклицательный знак используется для печати символа перевода строки.
1.10 TYPE "HELLO, WORLD!"!
Пример для версий OpenCOBOL 1.0, TinyCOBOL 0.65.9
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY 'Hello, World!'
STOP RUN.
Пример для версий David Pitts' FOCAL 1.0.0
Вместо команды type
можно написать просто t
.
Второй восклицательный знак используется для печати символа перевода строки.
1.10 type "Hello, World!"!
Пример для версий befungee 0.2.0
Первая часть примера (до пробела) размещает в стеке нужные значения. 25*
помещает в стек значение 10 (ASCII-код перевода строки), затем "
переводит программу в строковый режим: каждый следующий символ (до вторых кавычек) добавляет в стек свой ASCII-код.
Вторая часть примера — цикл, выводящий на печать все значения в стеке, начиная с самых верхних. >
возвращает указатель инструкций к движению вправо (после конца одной итерации). :
копирует верхний элемент стека (т.е. текущий символ), из-за моста #
выполняется только при движении вправо. ,
выводит верхний элемент стека (выполняется только при движении влево). _
пропускает указатель инструкций к @
(концу программы), если верхний элемент стека — 0, и отражает его влево в противном случае. Последовательность действий в одной итерации следующая:
- скопировать верхний элемент стека,
- проверить, равен ли он 0; если равен, выйти из цикла (при этом в любом случае копия элемента удаляется из стека),
- напечатать верхний элемент стека.
25*"!dlroW ,olleH" >:#,_@
Пример для версий 64-bit BCPL Cintcode System (1 Nov 2006)
*n
служит для печати символа перевода строки
GET "libhdr"
LET start() = VALOF
$( writes("Hello, World!*n")
RESULTIS 0
$)
Пример для версий Acme-Chef-1.01
Каждый ингредиент соответствует ASCII-коду одного из использующихся символов; для удобства названия ингредиентов начинаются с соответствующих букв. Коды размещаются в миску в порядке, обратном порядку символов в сообщении. Затем команда Liquify
(старое написание команды) уточняет, что все значения в миске следует выводить как символы, а не как числа. Наконец, содержимое миски переносится в форму для запекания и командой Serves 1
выводится на печать.
Lobsters with Fruit and Nuts.
This recipe prints "Hello, World!" in a most delicious way.
Ingredients.
72 g hazelnuts
101 eggs
108 g lobsters
111 ml orange juice
44 g cashews
32 g sugar
87 ml water
114 g rice
100 g durian
33 passion fruit
10 ml lemon juice
Method.
Put lemon juice into the mixing bowl.
Put passion fruit into the mixing bowl.
Put durian into the mixing bowl.
Put lobsters into the mixing bowl.
Put rice into the mixing bowl.
Put orange juice into the mixing bowl.
Put water into the mixing bowl.
Put sugar into the mixing bowl.
Put cashews into the mixing bowl.
Put orange juice into the mixing bowl.
Put lobsters into the mixing bowl.
Put lobsters into the mixing bowl.
Put eggs into the mixing bowl.
Put hazelnuts into the mixing bowl.
Liquify contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Serves 1.
Пример для версий Gwydion Dylan 2.4.0
Первая строка — заголовок, задающий модуль, к которому принадлежит файл.
module: hello-world
format-out("Hello, World!\n");
Пример для версий EsCo 0.511 (Brainfuck)
Этот пример является переводом на Blub этого примера на Brainfuck.
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub! Blub? Blub. Blub?
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub.
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub? Blub. Blub! Blub! Blub? Blub! Blub. Blub?
Blub! Blub. Blub. Blub? Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub.
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub! Blub? Blub. Blub? Blub. Blub. Blub. Blub.
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub.
Blub? Blub. Blub! Blub! Blub? Blub! Blub. Blub? Blub. Blub. Blub! Blub. Blub. Blub. Blub. Blub.
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub! Blub. Blub! Blub. Blub. Blub.
Blub. Blub. Blub. Blub. Blub! Blub. Blub. Blub? Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub.
Blub! Blub? Blub. Blub? Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub.
Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub? Blub. Blub! Blub! Blub? Blub!
Blub. Blub? Blub! Blub. Blub? Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub! Blub? Blub. Blub?
Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub? Blub. Blub! Blub! Blub? Blub! Blub. Blub?
Blub! Blub. Blub? Blub. Blub? Blub. Blub? Blub. Blub? Blub. Blub? Blub. Blub. Blub. Blub. Blub.
Blub. Blub. Blub! Blub? Blub. Blub? Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub. Blub.
Blub? Blub. Blub! Blub! Blub? Blub! Blub. Blub? Blub! Blub. Blub. Blub? Blub. Blub? Blub! Blub.
Blub. Blub. Blub. Blub. Blub. Blub. Blub! Blub. Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub!
Blub! Blub! Blub! Blub! Blub! Blub. Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub!
Blub! Blub! Blub! Blub! Blub! Blub! Blub! Blub. Blub. Blub? Blub. Blub? Blub. Blub. Blub! Blub.
Пример для версий Clojure 1.0.0, Clojure 1.1.0
(printf "Hello, World!")
Пример для версий Bash 3.0, Bash 3.2.39, Bash 4.0.35, Bash 4.1.5, Foma 0.9.17, mksh R40
echo Hello, World!
Пример для версий Falcon 0.9.6.6
printl('Hello, World!')
Пример для версий befungee 0.2.0
Этот пример более прямолинеен — ASCII-коды символов заносятся в стек в численном виде, и символы выводятся на печать сразу после попадания кодов в стек, так что цикл не нужен.
89*,45*99*+,39*99*+::,,56*99*+,29+4*,48*,92+8*1-,56*99*+:,3+,,25*:*,56*3+,25*,@
Пример для версий Progopedia Grocery List
Используются команды v
(добавить ASCII следующего символа), n
(добавить длину текущей команды), c
(скопировать верхний элемент — дли символов o и l), p
(вывести символ на печать) и w
(добавить 100); остальные пункты списка пропускаются, т.к. их первые символы используются командой v
.
Hello, World! supermarket
Vanilla Ice Cream
Honey & Mint Ice Cream
pizza, mushroom and salami
vinegar
eggs, 10
pie with any berries, see what kinds there are
vegetable frozen mix
lamb leg
chicken if no lamb
cod
plaice if no cod
pork steak if you want it
veggie soup
onions
carrots
peas
no more mustard, please! got plenty of it!!!
pair of socks
noodles, I think, with meat, ok?
pasta
Venetian cake
Wax Polish
potato
pumpkin juice
violet onion
rice
popcorn
pudding
watermelon
poultry
Nescafe to take to the office x10
pumpkin
Пример для версий Inferno Limbo 20100115
implement Hello;
include "sys.m";
sys: Sys;
include "draw.m";
Hello: module {
init: fn(nil: ref Draw->Context, argv: list of string);
};
init(nil: ref Draw->Context, argv: list of string)
{
sys = load Sys Sys->PATH;
sys->print("Hello, World!\n");
}
Пример для версий Pike 7.6, Pike 7.8
int main() {
write("Hello, World!\n");
return 0;
}
Пример для версий Morphett's FALSE, Wouter's FALSE 1.2.CF
Строка эквивалентна команде вывода ее содержимого на печать.
"Hello, World!"
Пример для версий Objeck 2.0.3
bundle Default {
class Hello {
function : Main(args : String[]) ~ Nil {
"Hello, World!"->PrintLine();
}
}
}
Пример для версий Lingua::Shakespeare 1.00
Для вывода сообщения используется самый простой метод: ASCII-код каждого символа вычисляется заново как сумма степеней двойки, присутствующих в его двоичной записи.
use Lingua::Shakespeare;
Shakespeare-style Encoded Message.
Desdemona, the talker.
Pericles, a shut-pan with notable patience.
Act I: Message output.
Scene I: Letter by letter.
[Enter Desdemona and Pericles]
Desdemona:
You honest reddest gentle loving sweet brave rose!
You are as bottomless as the sum of yourself and a rural red purple hamster!
Speak your mind!
You bold cunning peaceful proud good sweetest hero!
You are as pretty as the sum of thyself and a warm cunning cute fine delicious kingdom!
You are as bottomless as the sum of yourself and a rural white morning!
You are as small as the sum of yourself and a grandfather!
Speak your mind!
You sweetest proud happy prompt cunning loving joy!
You are as embroidered as the sum of yourself and a reddest loving beautiful cunning handsome happiness!
You are as reddest as the sum of yourself and a peaceful cunning beautiful pony!
You are as rural as the sum of yourself and a white tiny sky!
Speak your mind!
Speak your mind!
You healthy amazing loving clearest trustworthy good happiness!
You are as brave as the sum of yourself and a cunning golden loving peaceful mighty pony!
You are as delicious as the sum of thyself and a mighty rich gentle plum!
You are as embroidered as the sum of yourself and a fine bold hero!
You are as old as the sum of yourself and a tiny cat!
You are as green as the sum of thyself and a stone wall!
Speak your mind!
You bottomless big blue purple huge horse!
You are as lovely as the sum of thyself and a gentle prompt delicious Heaven!
You are as red as the sum of yourself and a bottomless big moon!
Speak your mind!
You tiny red furry rural bottomless sky!
Speak your mind!
You rural bluest large bottomless little purple cow!
You are as sweet as the sum of yourself and a embroidered cute trustworthy rich rose!
You are as bottomless as the sum of yourself and a green normal cow!
You are as proud as the sum of thyself and a handsome summer's day!
You are as happy as the sum of thyself and a flower!
Speak your mind!
You tiny bluest large huge hard normal uncle!
You are as warm as the sum of yourself and a pretty rich charming reddest mighty Heaven!
You are as small as the sum of yourself and a huge green little morning!
You are as sweetest as the sum of yourself and a beautiful sweet kingdom!
You are as warm as the sum of yourself and a proud happiness!
You are as hard as the sum of yourself and a roman!
Speak your mind!
You warm cute happy pretty golden loving Lord!
You are as huge as the sum of thyself and a little furry small green yellow brother!
You are as peaceful as the sum of thyself and a honest brave happy fine flower!
You are as small as the sum of yourself and a yellow purse!
Speak your mind!
You normal purple rural old white big morning!
You are as blossoming as the sum of yourself and a charming cunning gentle lovely amazing happiness!
You are as normal as the sum of thyself and a large red big animal!
You are as charming as the sum of yourself and a healthy delicious hero!
Speak your mind!
You large old bluest green red rural lantern!
You are as sweet as the sum of yourself and a beautiful loving sunny mighty reddest summer's day!
You are as lovely as the sum of yourself and a bold clearest happiness!
Speak your mind!
You golden loving fair charming lovely King!
You are as rural as the sum of thyself and a squirrel!
Speak your mind!
[Exeunt]
Пример для версий npiet 1.2
Этот пример сгенерирован автоматически, при помощи транслятора, написанного Сергеем Льюисом (Sergei Lewis). В комплект входят транслятор с C-подобного языка на ассемблер и с ассемблера — в изображение Piet. Так, в данном случае исходная программа выглядела следующим образом:
main()
{
asm{ @"Hello, World!\r\n" }
}
Hello, World! на Piet, сгенерированный автоматически
Hello, World! на Piet, сгенерированный автоматически (увеличение 5x)
Пример для версий GNU Octave 3.2.3
Первая функция аналогична printf
в C. Вторая — специфична для MATLAB.
printf("Hello, World!\n");
disp("Hello, World!");
Пример для версий ci01_
Программа состоит из одного определения. hw
— функция, которая запускается в начале выполнения программы (имя символа функции должно совпадать с именем файла, в котором находится программа). Функция запускается без параметров-паттернов. Справа от =
находится выражение, которое оценивается при запуске функции. Оно состоит из единственной константы (в общем случае константа должна завершаться символом _
, но если в константе есть биты и за ней не следует другая константа, этот символ можно не писать). На печать выводится эта константа — ее биты разбиваются на группы по 8 и переводятся в ASCII-коды символов.
hw=0100100001100101011011000110110001101111001011000010000001010111011011110111001001101100011001000010000100001010.
Пример для версий Whirl
Программа написана Kang Seonghoon.
110011100111000001111100000001000011111000011111100000000010
000011001111100001100010000010011111000100000000000001001111
100000111110001000000000000000001000111110010000001100001111
100011000000000100111110011100111000111000001000111000001111
100000111110010000011111000110011111100001111000001111000001
110011111100001111000110011100000111000100011111000001111100
100000110000000111000001110001111100011111000111000001000001
000011000111110001000001000000011100000111001000111110001111
000001111000011111100001111110000011110000000000000000011110
000011100111000011110011111000111110001111100000100000000000
000000000000111110001110000001110000011100011100111110001000
100000000011100001111100110000000010011111000111100000111100
111100010011100000111110000011111001100111100010001111000000
000001000111110010000010011110011001110001000111110001100000
100011111000011110011100111111000111100000111100011111000000
011110000011100100001111000100011111001100011111000111100000
111001110001100111100100000000000000011111000001111100010010
000011100001111100100000100011100000111000110011110001001111
110001100000111100011111000111100000111001000011110001001111
100000111110000000011110000011110000000000000000111000001110
000011000001100000111000111000001100111110000111111001001110
000011111000001100011000001001111110000011100110011111000000
000111000001110000111100001100
Пример для версий PureBasic 4.60
“Hello, World!” с выводом в консоль.
OpenConsole() ; Создание консольного окна.
Print("Hello, World!") ; Вывод текста в консоль.
Input() ; Ожидание нажатия Enter.
Пример для версий PureBasic 4.60
“Hello, World” в окне программы.
OpenWindow(0, 0, 0, 200, 100, "Hello, World", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
TextGadget(0, 10, 40, 180,16, "Hello, World", #PB_Text_Center)
Repeat
Event = WaitWindowEvent() ; ID события программы.
Until Event = #PB_Event_CloseWindow ; Если получено событие закрытия окна, то прерываем цикл.
Пример для версий Alef (Plan 9, edition 2)
Этот пример иллюстрирует использование процессов и каналов. Основной процесс создает канал, который передает адреса строк. Затем он запускает дочерний процесс с аргументом-каналом, передает в канал адрес строки и прекращает работу. Второй процесс ожидает получения сообщения, выводит его на печать и также прекращает работу.
#include <alef.h>
void
receive(chan(byte*) c)
{
byte *s;
s = <-c;
print("%s\n", s);
terminate(nil);
}
void
main(void)
{
chan(byte*) c;
alloc c;
proc receive(c);
c <-= "Hello, World!";
terminate(nil);
}
Пример для версий Rust 0.1
use std;
import std::io;
fn main() {
io::println("Hello, World!");
}
Пример для версий Ceylon M1
Допустим, эта программа принадлежит модулю helloworld.progopedia.com
. Тогда сам код программы должен находиться в файле /source/com/progopedia/helloworld.ceylon
(относительно главной директории программы, из которой она будет запускаться). Кроме того, в файле /source/com/progopedia/module.ceylon
должно находиться описание модуля, например, такое:
Module module {
name = 'com.progopedia.helloworld';
version = '1.0.0';
by = {"Mariia Mykhailova"};
dependencies = {};
doc = "Hello, World!";
license = 'Public domain';
}
После этого программу можно скомпилировать командой ceylonc com.progopedia.helloworld
и запустить командой ceylon com.progopedia.helloworld/1.0.0
(указание версии при запуске обязательно).
void run() {
print("Hello, World!");
}
Пример для версий loljs 1.1
HAI
CAN HAS STDIO?
VISIBLE "Hello, World!"
KTHXBYE
Пример для версий Cool 2008
-- Hello World in Cool
class Main inherits IO{
main():Object{
out_string("Hello, world!\n")
};
};
Пример для версий G-code
CNC machines.
%
O1000
(PROGRAM NAME - HELLOWORLD)
(DATE=DD-MM-YY - 30-06-05 TIME=HH:MM - 19:37)
N10G20
N20G0G17G40G49G80G90
/N30G91G28Z0.
/N40G28X0.Y0.
/N50G92X0.Y0.Z0.
( 1/16 FLAT ENDMILL TOOL - 1 DIA. OFF. - 1 LEN. - 1 DIA. - .0625)
(CONTOUR)
N60T1M6
N70G0G90X0.Y1.A0.S5000M3
N80G43H1Z.5
N90Z.25
N100G1Z-.005F2.
N110Y0.F20.
N120G0Z.5
N130X.5
N140Z.25
N150G1Z-.005F2.
N160Y1.F20.
N170G0Z.5
N180Y.6106
N190Z.25
N200G1Z-.005F2.
N210X0.F20.
N220G0Z.5
N230X.6157Y.4712
N240Z.25
N250G1Z-.005F2.
N260X.6039Y.4135F20.
N270X.6Y.351
N280X1.1
N290G3X1.0098Y.6202R.4333
N300X.8941Y.6971R.2625
N310X.7255Y.6538R.1837
N320X.6157Y.4712R.332
N330G0Z.5
N340X.6Y.351
N350Z.25
N360G1Z-.005F2.
N370X.6039Y.2885F20.
N380G3X.7255Y.0481R.385
N390X.9745R.1853
N400X1.0843Y.2308R.332
N410G0Z.5
N420X1.2039Y0.
N430Z.25
N440G1Z-.005F2.
N450Y1.F20.
N460G0Z.5
N470X1.3098
N480Z.25
N490G1Z-.005F2.
N500Y0.F20.
N510G0Z.5
N520X1.4706Y.125
N530Z.25
N540G1Z-.005F2.
N550X1.502Y.0817F20.
N560G3X1.6176Y.0048R.2625
N570X1.7863Y.0481R.1837
N580X1.9118Y.351R.3957
N590X1.8216Y.6202R.4333
N600X1.7059Y.6971R.2625
N610X1.5373Y.6538R.1837
N620X1.4157Y.4135R.358
N630X1.4706Y.125R.4611
N640G0Z.5
N650X1.9853Y0.
N660Z.25
N670G1Z-.005F2.
N680X2.0422Y.1442F20.
N690G0Z.5
N700X2.5706Y1.
N710Z.25
N720G1Z-.005F2.
N730X2.6961Y0.F20.
N740X2.8216Y1.
N750X2.9451Y0.
N760X3.0706Y1.
N770G0Z.5
N780X3.2961Y.6538
N790Z.25
N800G1Z-.005F2.
N810X3.2608Y.6202F20.
N820G3X3.1745Y.2885R.4408
N830X3.2961Y.0481R.385
N840X3.5451R.1853
N850X3.6706Y.351R.3957
N860X3.5804Y.6202R.4333
N870X3.4647Y.6971R.2625
N880X3.2961Y.6538R.1837
N890G0Z.5
N900X3.7461Y.7019
N910Z.25
N920G1Z-.005F2.
N930Y0.F20.
N940G0Z.5
N950Y.3654
N960Z.25
N970G1Z-.005F2.
N980X3.7637Y.4663F20.
N990G2X3.8422Y.6587R.4948
N1000X3.9167Y.7019R.0929
N1010G1X4.0755
N1020G2X4.15Y.6587R.0929
N1030X4.1951Y.5769R.246
N1040G0Z.5
N1050X4.3255Y1.
N1060Z.25
N1070G1Z-.005F2.
N1080Y0.F20.
N1090G0Z.5
N1100X4.9275
N1110Z.25
N1120G1Z-.005F2.
N1130Y1.F20.
N1140G0Z.5
N1150X5.0314
N1160Z.25
N1170G1Z-.005F2.
N1180Y.2981F20.
N1190G0Z.5
N1200X4.9275Y.274
N1210Z.25
N1220G1Z-.005F2.
N1230X4.8941Y.1731F20.
N1240G2X4.7627Y.0192R.3255
N1250X4.5529Y.0481R.1862
N1260X4.4314Y.2885R.358
N1270X4.5176Y.6202R.4408
N1280X4.6333Y.6971R.2625
N1290X4.802Y.6538R.1837
N1300X4.8941Y.5288R.3457
N1310G1X4.9275Y.4279
N1320G0Z.5
N1330X5.0314Y.149
N1340Z.25
N1350G1Z-.005F2.
N1360Y0.F20.
N1370G0Z.5
N1380M5
N1390G91G28Z0.
N1400G28X0.Y0.A0.
N1410M30
%
Hello World! G-CODE
Пример для версий Intel x86 (IA32)
MSDOS
mov ax,cs
mov ds,ax
mov ah,9
mov dx, offset Hello
int 21h
xor ax,ax
int 21h
Hello:
db "Hello World!",13,10,"$"
Пример для версий AmigaE v3.3a
PROC main()
WriteF('Hello, World!')
ENDPROC
Пример для версий Amiga
move.l #DOS
move.l 4.w,a6
jsr -$0198(a6) ;OldOpenLibrary
move.l d0,a6
beq.s .Out
move.l #HelloWorld,d1
A) moveq #13,d2
jsr -$03AE(a6) ;WriteChars
B) jsr -$03B4 ;PutStr
move.l a6,a1
move.l 4.w,a6
jsr -$019E(a6) ;CloseLibrary
.Out rts
DOS dc.b 'dos.library',0
HelloWorld dc.b 'Hello World!',$A,0
Пример для версий Olmstead's Malbolge
Эта программа отображает «Hello world!»
('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>
Пример для версий Processing 1.5.1
Один из способов “красиво” вывести Hello World! на экран.
Можно сделать и короче.
text(“Hello World!”,10,100); //Вывод текста
PFont font; //Объявление объекта типа PFont
void setup() {
size(200,200); //Размер окошка
font = loadFont("CharterBT-Roman-48.vlw"); //Загрузка шрифта
}
void draw() {
background(255); //Белый фон
textFont(font,20); //Шрифт и размер
fill(0); //Цвет текста
text("Hello World!",10,100); //Вывод текста
}
Пример для версий H6070 B
Пример из “A tutorial introduction to the language B”, написанного Керниганом. Демонстрирует использование и инциализацию глобальных переменных.
main( ) {
extrn a, b, c;
putchar(a);
putchar(b);
putchar(c);
putchar('!*n');
}
a 'Hell';
b 'o, W';
c 'orld';
Пример для версий Dyalog APL 13.1
'Hello, World!'
Пример для версий AtariST
move.l #helloworld,-(A7)
move #9,-(A7)
trap #1
addq.l #6,A7
move #0,-(A7)
trap #1
helloworld:
dc.b "Hello World!",$0d,$0a,0
Пример для версий Intel x86 (IA32)
NASM Linux , используется Intel синтаксис. Компиляция и линковка:
- nasm –f elf –o hello.o hello.asm
- ld -o hello hello.o
SECTION .data
msg db "Hello, world!",0xa
len equ $ - msg
SECTION .text
global _start
_start: ; Точка входа в программу
mov eax, 4 ; 'write' системный вызов
mov ebx, 1
mov ecx, msg ; Указатель на данные
mov edx, len ; Количество данных
int 0x80 ;Вызов ядра
mov eax, 1 ; '_exit' системный вызов
mov ebx, 0 ; Возвращаем 0 (все хорошо)
int 0x80 ; Вызов ядра
Пример для версий GCC 4, gcc 4.4.3
X11,чистый Xlib. Компилируется : gcc test.c -o test -lX11
Программа создает с помощью функции XOpenDisplay соединение с X-Server. Функция DefaultScreen выбирает текущий экран, XCreateSimpleWindow создает окно, а XSelectInput определяет события, на которые окно должно реагировать. XMapWindow выводит окно на экран, а XNextEvent выбирает из очереди событие, которое выше было определено. При событии Expose в окне выводится “Hello World!”. При нажатии клавиши на клавиатуре программа завершает работу.
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
extern int errno;
int main(void) {
Display *display;
Window window;
XEvent e;
char *msg = "Hello, World!";
int s;
/* Соединиться с X сервером */
if ((display = XOpenDisplay(getenv("DISPLAY"))) == NULL)
{
printf("Can't connect X server: %s\n", strerror(errno));
exit(1);
}
s = DefaultScreen(display);
/* Создать окно */
window = XCreateSimpleWindow(display, RootWindow(display, s), 10, 10, 200, 100, 1, BlackPixel(display, s), WhitePixel(display, s));
/* На какие события будем реагировать */
XSelectInput(display, window ,ExposureMask | KeyPressMask);
XMapWindow(display, window); /* Вывести окно на экран */
/* Бесконечный цикл обработки событий */
while (1)
{
XNextEvent(display, &e);
/* Перерисовать окно */
if (e.type == Expose)
{
XDrawString(display, window, DefaultGC(display, s), 50, 50, msg, strlen(msg)); /*Вывод текста*/
}
if (e.type == KeyPress)
break;
}
XCloseDisplay(display); /* Закрыть соединение с X сервером */
return 0;
}
Пример для версий CPL
В общем случае команда Write
принимает на вход список значений, но можно выводить и строковую константу, как здесь.
Write(‘Hello, World!’)
Пример для версий SAP R/3
REPORT HELLOWORLD. "HELLOWORLD - имя программы-отч
WRITE: 'Hello world'. "Вывод строки Hello World
Пример для версий Microsoft Cω compiler 1.0.2
using System;
class Programm
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
Пример для версий A+ 4.18
Строковые литералы можно заключать как в одинарные, так и в двойные кавычки.
"Hello, World!"
'Hello, World!'
Пример для версий PDP-8
/ — комментарии.
/ Hello World на ассемблере для DEC PDP-8
*200
hello, cla cll
tls / tls устанавливает флаг печати.
tad charac / создает индексный регистр
dca ir1 / для получения символов
tad m6 / настроить счетчик для
dca count / ввода символов.
next, tad i ir1 / получить символ.
jms type / его тип.
isz count / сделать что нибудь еще?
jmp next / нет, ввести другой символ
hlt
type, 0 / подпрограмма type
tsf
jmp .-1
tls
cla
jmp i type
charac, . / используется в качестве начального значения ir1.
310 / H
305 / E
314 / L
314 / L
317 / O
254 / ,
240 /
327 / W
317 / O
322 / R
314 / L
304 / D
241 / !
m6, -15
count, 0
ir1 = 10
$
Пример для версий PDP-11
Программа написана на макроассемблере MACRO-11 Для компиляции и запуска этой программы в ОС RT-11 командуем:
. MACRO HELLO
ERRORS DETECTED: 0
. LINK HELLO -- Линкуем
. RUN HELLO -- Запускаем
Hello, world!
.TITLE HELLO WORLD ; Название
.MCALL .TTYOUT,.EXIT
HELLO:: MOV #MSG,R1 ; Начальный адрес строки
1$: MOVB (R1)+,R0 ; Получаем следующий символ
BEQ DONE ; Если ноль, выходим из цикла
.TTYOUT ; Иначе печатаем символ
BR 1$ ; Повтор цикла
DONE: .EXIT
MSG: .ASCIZ /Hello, world!/ ; Строка Hello, world!
.END HELLO ; Конец программы HELLO
Пример для версий System/360, System/370
IBM System/360/370/390 Basic Assembler Language .
// EXEC ASSEMBLY
START
MAIN BALR 2,0
USING *,2
OPEN PRINT
MVC BUF,HW
PUT PRINT
CLOSE PRINT
EOJ
HW DC CL132'HELLO WORLD'
BUF DS CL132
PRINT DTFPR IOAREA1=BUF,DEVADDR=SYSLST,BLKSIZE=132, *
DEVICE=3203,CONTROL=YES,PRINTOV=YES
END MAIN
/*
// EXEC LNKEDT
// EXEC
/*
/&
Пример для версий Apple II
********************************
* HELLO WORLD FOR 6502 APPLE ][ *
********************************
STROUT EQU $DB3A
LDY #>HELLO
LDA #<HELLO
JMP STROUT
HELLO ASC "HELLO WORLD!",00
Пример для версий PDP-10
CHTTYO — весь ввод/вывод осуществляется с помощью каналов ввода/вывода. Лучше всего сделать символические имена для тех каналов, которые вы используете, и начинать их с CH. Определите эти имена с помощью MIDAS оператора == .
.CALL — это символическое обозначение для вызова системного вызова. Его формат: .CALL [SETZ ? SIXBIT/callname/ ? arguments ((SETZ))] .
OPEN открывает канал ввода/вывода для использования. Требует два параметра — номер канала и имя устройства в SIXBIT.
.LOSE %LSFIL — системный вызов, который печатает сообщение об ошибке ввода/вывода, если вдруг она произошла.
.IOT — системный вызов, который фактически занимается вводом/выводом. В качестве параметра нужно указать канал и адрес, содержащий код символа для вывода. Например, “H представляет H .
TITLE PRINTHELLO
A=1
CHTTYO==1 ;Канал для вывода.
START: ;Открытие TTY канала.
.CALL [SETZ ? SIXBIT/OPEN/
[.UAO,,CHTTYO] ? [SIXBIT/TTY/] ((SETZ))]
.LOSE %LSFIL
.IOT CHTTYO,["H] ;Печать HELLO WORLD посимвольно.
.IOT CHTTYO,["E]
.IOT CHTTYO,["L]
.IOT CHTTYO,["L]
.IOT CHTTYO,["O]
.IOT CHTTYO,[^M] ;Символ новой строки
.IOT CHTTYO,["W]
.IOT CHTTYO,["O]
.IOT CHTTYO,["R]
.IOT CHTTYO,["L]
.IOT CHTTYO,["D]
.VALUE ;Программка, остановись :)
END START
Пример для версий AMOS Professional, Easy AMOS
Print "Hello World"
Пример для версий Nimrod 0.8.8
echo "Hello, World!"
Пример для версий Entropy 1.1.1
Программа может выдать правильное сообщение или текст, несколько отличающийся от него за счет ветшания строки “Hello, World!”.
Program Hello HelloWorld
[
print "Hello, World!";
]
Пример для версий VBA 6.3, VBA 6.5
Этот код создает макрос под названием “Hello”, выполнение которого выводит окно с сообщением “Hello, World!” и единственной кнопкой “OK”.
Sub Hello()
MsgBox ("Hello, World!")
End Sub
Пример для версий VBScript 5.7, VBScript 5.8
Программа выводит сообщение в консоль и запускается командой cscript.exe
.
WScript.Echo("Hello, World!")
Пример для версий bwBASIC 2.50
В программах номера строк проставляются, при вводе команд в интерактивном режиме интерпретатора — нет.
10 PRINT "Hello, World!"
Пример для версий X10 Release 2.2.2.2
import x10.io.Console;
public class HelloWorld
{
public static def main(argv:Array[String])
{
Console.OUT.println("Hello, World");
}
}
Пример для версий A++ Interpreter
Вывод программы имеет следующий вид:
-->Hello, World!
void
(print "Hello, World!")
Пример для версий f2c 20090411, g95 0.93, gfortran 4.5.0
Этот пример написан в фиксированном формате (стиль FORTRAN 77); первые шесть символов каждой строки зарезервированы под служебную информацию — отметки о том, что строка является комментарием или продолжением предыдущей, метки и номера строк. Стандартный набор символов Fortran не содержит символов нижнего регистра, поэтому все программы пишутся в верхнем регистре. Исключением из этого правила являются символьные константы — они могут содержать любые символы, которые поддерживаются системой.
Первая строка дает этому фрагменту кода имя HELLO
и указывает на то, что он является основной программой. Имя программы подчиняется тем же правилам, что и любые имена идентификаторов, т.е. должно начинаться с буквы и содержать не более 6 символов.
Команда WRITE
реализует вывод на печать. В скобках передается список управляющих параметров, настраивающих вывод: UNIT
выбирает файл вывода (по умолчанию — консоль), FMT
— формат вывода. Звездочки означают параметры по умолчанию. Имена параметров передавать не обязательно, сокращенно эта же команда выглядела бы как WRITE (*, *) ...
.
В большинстве реализаций строковая константа может заключаться как в одинарные кавычки, так и в двойные.
! A simple Hello, World! program
PROGRAM HELLO
WRITE (UNIT=*, FMT=*) 'Hello, World!'
END
Пример для версий R 2.10.1
R позволяет заключать строки как в одинарные кавычки, так и в двойные, хотя при выводе использует только двойные.
print("Hello, World!")
Пример для версий E-on-Java 0.9.3
println("Hello, World!")
Пример для версий Picat 0.1 (beta-1), Picat 0.7
main =>
print("Hello, World!\n").
Пример для версий Picat 0.1 (beta-1), Picat 0.7
main =>
println("Hello, World!").
Пример для версий GAP 4.4.12
Команда для запуска в режиме скрипта: gap -q < filename.gap
Print("Hello, Wolrd!\n");
Пример для версий Dart 1.1.1
=> expr
— сокращение для { return expr; }
main() => print("Hello, World!");
Пример для версий Snap! 4.0
В отличие от Scratch, скрипты в Snap! должны начинаться с блока-“шляпы”, определяющего условие их запуска. В данном случае скрипт выполняется при запуске презентации.
Hello, World! на Snap!
Пример для версий Rust 1.0.0-alpha.2
fn main() {
println!("Hello, World!");
}
Пример для версий LabVIEW 13.0
Hello World - LabVIEW
Пример для версий Vala 0.30
Класс необязательно держать в файле с таким же названием. В файле может находиться сразу несколько классов.
Во всей программе не может находиться больше одного метода с тем или иным названием.
Для запуска метода main() через ООП, необходимо унаследовать главный класс от класса GLib.Object
Класс не может называться “main”
//Как в С
void main(){
stdout.printf("Hello, world!\n");
}
//То же через ООП и с возможностями Vala
class ClassMain : GLib.Object {
void main(){
print("Hello, world!\n")
}
}
Пример для версий Windows PowerShell 5.0
Echo "Hello, World!"
Пример для версий Clarion C7
PROGRAM
MAP
END
CODE
MESSAGE('Hello World!','Clarion')
RETURN