多种语言的Hello World


72

任务

创建在多种编程语言中有效的程序或函数,并在将其编译/解释为其他语言时输出“ Hello,World!”。用另一种自然语言

例如,一个有效的解决方案Hello World!在编译并以C语言运行时可能会输出(英语),Hallo Welt!在编译并以C ++身份运行时可能会(德语),而在你好世界!Python时则输出(中文)。

规则

为了避免对答案的有效性产生歧义,下面列出了几种语言允许的短语版本。该列表包含这些短语,其中Google Translate对该短语进行了社区验证的翻译(截至撰写本文时)。*

这些翻译的准确性值得商,,但这正是挑战所要使用的。打印的字符串必须完全遵循以下格式(开头或结尾的空格除外)。

Afrikaans:    Hello Wêreld!
Albanian:     Përshendetje Botë!
Amharic:      ሰላም ልዑል!
Arabic:       مرحبا بالعالم!
Armenian:     Բարեւ աշխարհ!
Basque:       Kaixo Mundua!
Belarussian:  Прывітанне Сусвет!
Bengali:      ওহে বিশ্ব!
Bulgarian:    Здравей свят!
Catalan:      Hola món!
Chichewa:     Moni Dziko Lapansi!
Chinese:      你好世界!
Croatian:     Pozdrav svijete!
Czech:        Ahoj světe!
Danish:       Hej Verden!
Dutch:        Hallo Wereld!
English:      Hello World!
Estonian:     Tere maailm!
Finnish:      Hei maailma!
French:       Bonjour monde!
Frisian:      Hallo wrâld!
Georgian:     გამარჯობა მსოფლიო!
German:       Hallo Welt!
Greek:        Γειά σου Κόσμε!
Hausa:        Sannu Duniya!
Hebrew:       שלום עולם!
Hindi:        नमस्ते दुनिया!
Hungarian:    Helló Világ!
Icelandic:    Halló heimur!
Igbo:         Ndewo Ụwa!
Indonesian:   Halo Dunia!
Italian:      Ciao mondo!
Japanese:     こんにちは世界!
Kazakh:       Сәлем Әлем!
Khmer:        សួស្តី​ពិភពលោក!
Kyrgyz:       Салам дүйнө!
Lao:          ສະ​ບາຍ​ດີ​ຊາວ​ໂລກ!
Latvian:      Sveika pasaule!
Lithuanian:   Labas pasauli!
Luxemburgish: Moien Welt!
Macedonian:   Здраво свету!
Malay:        Hai dunia!
Malayalam:    ഹലോ വേൾഡ്!
Mongolian:    Сайн уу дэлхий!
Myanmar:      မင်္ဂလာပါကမ္ဘာလောက!
Nepali:       नमस्कार संसार!
Norwegian:    Hei Verden!
Pashto:       سلام نړی!
Persian:      سلام دنیا!
Polish:       Witaj świecie!
Portuguese:   Olá Mundo!
Punjabi:      ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ!
Romanian:     Salut Lume!
Russian:      Привет мир!
Scots Gaelic: Hàlo a Shaoghail!
Serbian:      Здраво Свете!
Sesotho:      Lefatše Lumela!
Sinhala:      හෙලෝ වර්ල්ඩ්!
Slovenian:    Pozdravljen svet!
Spanish:      ¡Hola Mundo!         // Leading '¡' optional
Sundanese:    Halo Dunya!
Swahili:      Salamu Dunia!
Swedish:      Hej världen!
Tajik:        Салом Ҷаҳон!
Thai:         สวัสดีชาวโลก!
Turkish:      Selam Dünya!
Ukrainian:    Привіт Світ!
Uzbek:        Salom Dunyo!
Vietnamese:   Chào thế giới!
Welsh:        Helo Byd!
Xhosa:        Molo Lizwe!
Yiddish:      העלא וועלט!
Yoruba:       Mo ki O Ile Aiye!
Zulu:         Sawubona Mhlaba!

因此,可以使用74种语言。

获奖标准

可以输出最多语言版本的短语的解决方案将获胜。如果出现平局,则以较短的解决方案(以字节为单位)为准。


*马达加斯加语和马耳他语的翻译标记为经过社区验证,但显然不正确(一个只是“ Hello World!”,另一个是“ Hello dinja!”,但仅“ Hello!”就翻译为“ Bongu!”)。这些被排除在外。另外,某些语言(阿拉伯语,希伯来语,普什图语,波斯语和意第绪语)在Google翻译中从右到左读取,但是在此处复制时,它们从左到右读取。我希望可以。


我们是否可以使用一种一致的计数字节的方法,而该方法却不被所使用的任何编程语言所使用?
扎卡里

@Zacharý我猜任何一个可以表示答案中所有字符的编码都可以用来计算字节数。还是每个答案的字节数都应该以UTF-8计数?
Steadybox

1
如果我使用的语言与所有其他语言使用的编码不同,是否应该将代码转换为该语言的代码页或使用相同的字节表示形式?(这会很困难,因为某些字节会导致不正确的UTF-8)
NieDzejkob

2
@NieDzejkob我认为多语言的规则是具有一个可测量字节大小的文件,并且可以由多个解释器/编译器运行。(示例
user202729

4
请注意,中文和日语的感叹号(,U + FF01)与其他感叹号(!,U + 0021)不同。
alephalpha

Answers:


32

23个Befunges,713个字节

我真正了解的唯一语言是Befunge,因此我不再使用多种语言,而是使用了Befunge的多种实现。我相信这在PPCG规则下仍然有效,该规则考虑了由其实现定义语言

8023/# !-1401p680p88+79*6+1p238*7+0pg90p$#v0';1';+>9%80p$$$$"ph~s"+3vv
vv_2#!>#-/\#21#:+#:>#\<0/-2*3`0:-/2g01g00p>#< 2#0 ^#1/4*:*9"9"p00***<<
>>$:2%3*-4/3g68*-70p1-0`02-3/-03-2%1+2/-70g+80g65+70g`7++3g68*-70g9`*v
0168:0>0133?45130120340200v00:<+8*+76%4p00+5/4:+-*86g3++98/2%+98g09+<<
                         @>gg#^:#+,#$"!"-#1_@
       !Helo Byd!!!!!Hai dunia!!!!Ciao mondo!!!Hallo Wereld!!!!
       !Hallo Welt!!!Halo Dunia!!!Halo Dunya!!!Bonjour monde!!!
       !Hei Verden!!!Hej Verden!!!Moien Welt!!!Labas pasauli!!!
       !Molo Lizwe!!!Salut Lume!!!Hei maailma!!Sveika pasaule!!
       !Hello World!!Salom Dunyo!!Tere maailm!!Sawubona Mhlaba!
       !Kaixo Mundua!Salamu Dunia!Sannu Duniya!!!!!!!!!!!!!!!!!

关于Befunge的令人沮丧的事情是,尽管有一个开源参考实现,并且语言本身非常简单,但没有一个完全与参考行为完全匹配的第三方解释器(我知道)。每个实现都以不同的方式失败。

从好的方面来说,这使我们有机会开发单个代码,这几乎在每个解释器中都会产生不同的结果。这就是我在上面的程序中所尝试的。

如果有人对验证结果感兴趣,我会根据其实现和运行的容易程度(例如,某些人可能无法运行Windows二进制文件,或者可能不愿意这样做)将各种实现方式分为几类。从源代码构建,但每个人都应该能够测试在线口译员)。

在线口译员

无需安装。通常只需粘贴代码并单击一个或两个按钮即可。但是请注意,其中一些速度非常慢,因此可能需要一些时间才能完成执行。

ALEXIOS' Befunge Playground -萨拉姆杜尼娅!

单击Clear...按钮,然后将代码粘贴到输入字段中。拨动Edit开关以激活解释器,然后单击Run按钮开始执行。
请注意,该网站可能无法在Chrome浏览器以外的浏览器中运行。

Befungius - Molo Lizwe!

将代码粘贴到输入字段中,确保覆盖现有代码。然后单击Run按钮执行。

大卫·克利克的Befunge 93口译 - Sannu Duniya!

将代码粘贴到Playfield输入字段中,然后单击Run按钮开始执行。

伊恩·奥斯古德的Befunge-93口译 -萨吕卢梅!

将代码粘贴到Show按钮下方的输入字段中,确保覆盖@已存在的代码。单击Show按钮导入代码,然后单击Run按钮开始执行。

jsFunge IDE - Hej Verden!

首先关闭“ 帮助”对话框,然后单击“ 打开/导入”工具栏按钮(从左数第二个),粘贴代码,然后单击“确定” OK。要执行,请单击“ 运行模式”按钮(左第四),然后单击“启动”(左第五)。

另请注意,TIO上实际上有一些基于控制台的解释器,因此尽管从技术上讲它们不是在线解释器,但可以在线对其进行测试。对于受支持的程序(当前为BEF,FBBI,MTFI和PyFunge),我提供了在线试用!他们条目旁边的链接。

Java IDE

您需要为此安装Java运行时,但是从理论上讲,它们应该可以在任何平台上运行。不过仅在Windows上进行了测试。

阿什利·米尔斯(Ashley Mills)的视觉小程序 -蒙恩·威尔特 Moien Welt)!

最初,这是一个在线小程序,很抱歉,它不再可用,但是您仍然可以下载jar并将其作为桌面应用程序在本地运行。您需要将代码粘贴到“ 程序编辑器”窗口中,然后单击Convert按钮,然后单击Run按钮。

芥末:芥末的上好愚蠢Befunge解释 -喂世界报!

要粘贴代码,请右键单击编辑器窗口的左上角(它必须位于左上角),然后选择“ 粘贴”菜单项。然后启用Full Speed全速)复选框(否则它将永久保留),然后单击Run!按钮开始执行。

YABI93:另外Befunge93解释 -晕杜尼娅!

Ctrl+ ACtrl+ V将代码粘贴到编辑器窗口中,确保覆盖默认源。然后单击Start按钮开始执行。

Windows IDE

尽管有时在某些情况下可能会有二进制文件可用于其他操作系统,但通常需要Windows。我不能保证代码可以在其他平台上使用。

BefunExec -世界您好!

您无法将代码粘贴到编辑器中,因此首先需要将其保存到磁盘上的某个位置。然后在IDE中,使用“ 文件”>“打开”菜单从磁盘加载代码,然后选择“ 仿真”>“运行/暂停”菜单以运行它。

BeQunge - Labas paasauli!

Ctrl+ V粘贴代码,然后单击“ 调试”工具栏按钮(蓝色齿轮)开始执行。出现“ 调试器”面板后,您需要将“ 速度”设置为最大-滑块右侧的按钮-否则将需要很长时间才能完成。

真菌 -特雷maailm!

Ctrl+ V粘贴代码,然后按F5运行。

Visbef:视觉Befunge '93为Windows -喂Wereld!

您无法将代码粘贴到编辑器中,因此首先需要将其保存到磁盘上的某个位置。然后在IDE中,按Ctrl+ O打开文件浏览器并从磁盘加载代码,然后按F5运行它。

Windows控制台应用程序

同样,尽管可能使用其他平台,但这些通常都需要Windows,但不能保证可以使用。

在所有情况下,都需要将代码保存到磁盘上的文件中,并将文件名作为命令行参数(在下面给出的示例命令行中为source.bf)传递给解释器。还要注意,其中一些从技术上讲是Befunge-98解释器,并且必须与特定的命令行选项一起运行才能强制使用Befunge-93兼容模式。如果不这样做,将不会获得正确的结果。

BEFI:Rugxulo的Befunge-93口译 -喜韦登!

命令行: bef93w32 -q source.bf

建银国际:符合并发Befunge-98口译 - Sveika pasaule!

命令行: ccbi --befunge93 source.bf

MTFI:法师铁三角Funge解释 -海杜尼娅!

命令行:mtfi -3 source.bf在线试试吧!

Python和PHP控制台应用程序

这些要求安装适当的脚本语言-Python或PHP。

Befungee - Helo Byd

命令行: befungee.py source.bf

PyFunge - Halo Dunya!

命令行:pyfunge -v 93 source.bf在线试试吧!

Bephunge - Bonjour世界!

命令行: php bephunge.phps source.bf

仅源控制台应用程序

这些将需要从源代码构建,并且通常在类似* nix的环境中最简单。在Windows上,我将Windows子系统用于Linux

BEF:Befunge-93中指代词的分布 -侨盟!

命令行:bef -q source.bf在线试试吧!

cfunge - Sawubona Mhlaba!

命令行: cfunge -s 93 source.bf

FBBI:Flaming Bovine Befunge-98 Intepreter - Hei maailma!

命令行:fbbi -93 source.bf在线试试吧!

真菌 - Kaixo Mundua!

命令行: fungi source.bf

RC / Funge-98 - Salom Dunyo!

命令行: rcfunge -93 source.bf

这个怎么运作

面临的挑战是找到最少的测试,以使口译员之间的区别最大。最后,它归结为四个主要测试序列:

  1. 第一个是从偏移量-1,1读取的越界内存。理论上,它应该总是返回32(ASCII空间),但实际上实际上有10种变化。该测试由于以下事实而变得复杂:两个解释器在越界读取时崩溃,因此需要进行一些特殊情况测试(除法取整和空间桥接)以将这两个解释器逼入边界。

  2. 第二个顺序是对Befunge-98功能的测试-特别是说明;'。几乎所有的解释器都是Befunge-93,或在Befunge-93兼容模式下运行,因此他们应该忽略这些指令。实际上,有6种不同的方式可以解释该顺序。

  3. 第三次测试检查存储单元的范围。在参考解释器中,存储单元是带符号的8位,但其他实现的范围也有所不同,从8位到无界,有符号的和无符号的。但是,出于测试目的,我们仅需区分这些变体中的5个。

  4. 第四个也是最后一个序列是下溢测试和负分配测试的组合。解释器有很多方法会导致下溢错误,并且至少有3种不同的方法可以实现除法和模指令,但在这里我们只关心3种组合。

这些序列中的每个序列都返回一个数字,然后将这四个数字组合起来(通过一些基本的算术和转换表),以产生0到22范围内的最终值。该值随后可以用作查找实际消息的索引。显示。


很便宜的方法,但是我无法击败它。现在我们可能可以调整它并在其中挤压BrainFuck变体。
扎卡里

10
我向您保证,这并不像您想象的那么容易。仅在不超过20个有问题的解释器崩溃的情况下运行代码,这是一个挑战。如果我想便宜一点,我会用Befunge-98并简单地查询实现手印(3y)。
James Holderness

2
我指的是便宜,因为您使用真菌,但这实际上非常令人印象深刻。
扎卡里

这是令人难以置信的令人印象深刻,但是有可能解释为什么不同的口译员会以不同的方式对待吗?也许不是全部23个版本,但至少是您正在利用的行为差异的一些示例?
杰克·布劳恩斯坦

1
@JackBrounstein我在答案的末尾添加了一些解释。
James Holderness

64

16种语言,1363字节

 #define ip"MemuL tulaS",,,,,,,,,,"!",@++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.@,kc"Kaixo Mundua!"v#!
#define print(A,B,C)main(){printf("Helo Byd!");}//ss                                                                          ;ooooooooooooooooooo"Moni Dziko Lapansi!"<  
#ifdef __cplusplus//p                                                                                                                                 ;;];;
#include<cstdio>//ffffffffff?
#define print(A,B,C)int main(){printf("Halo Dunya!");}//ssp
#endif//;  [;;;;;;;;;     "!etejivs vardzoP"]
#ifdef __OBJC__//;;;;;
#define print(A,B,C)main(){printf("Hallo Welt!");}//ss
#endif//\
"""echo" "Salom Dunyo!";"exit";puts"Moien Welt!";\
__END__
#define B//\
"""#;;;;;
print(["Hai dunia!","Hej Verden!","Halo Dunia!"][(int(1>0)is 1)+~int(-1/2)*2])
#define s eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejiiiiiiiijeeeeeeeeeeeeeejiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiijeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejeejijiiiiiiiiiijeeeeeeeeeeejiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiij
#define U   !"!dlereW ollaH"<           ;
#define T@,kc"Sannu Duniya!?%?"

在线尝试!

(使用“切换语言”更改语言)

  • Python 3 = Halo Dunia!(印度尼西亚)

  • Python 2 = Hej Verden!(丹麦文)

  • Python 1 = Hai dunia!(马来语)

  • C(gcc)= Helo Byd!(威尔士语)

  • C ++(gcc)= Halo Dunya!(Sun语)

  • 目标C(c声)=哈罗·韦尔特!(德语)

  • Brainfuck =你好世界!(显然是英语)

  • Befunge-93 = Salut Lume!(罗马尼亚语)

  • Ruby = Moien Welt!(卢森堡语)

  • Bash = Salom Dunyo!(乌兹别克语)

  • Befunge-98(PyFunge)= Kaixo Mundua!(巴斯克)

  • Unefunge-98(PyFunge)= Sannu Duniya!(豪萨)

  • 红衣主教=哈洛·韦雷德!(荷兰人)

  • Alphuck = Ciao mondo!(意大利语)

  • > <> = Moni Dziko Lapansi!(奇切瓦)

  • 裂变= Pozdrav svijete!(克罗地亚)

欢迎任何打高尔夫球的技巧(尤其是在Brainfuck上)!!

感谢@JonathanFrech -1个字节!另外,感谢@ovs -40个字节!

怎么样(一般的想法,我实际上忘记了细节)?

这些语言可以分为四类:

  • 巨集:C,C ++,目标C
  • 注释:Python3,Python2,Python1,Ruby,Bash
  • 尺寸:Befunge-93,Befunge-98,Unefunge-98,Cardinal,> <>,​​裂变
  • 粗俗:Brainfuck,Alphuck

宏语言被#视为预处理器指令的开始。出于以下三个原因使用它们:容纳其他组的代码,区分宏语言以及实际定义宏。这三个都//用作注释,因此之后,我们存储其他组的代码。此外,反斜杠将继续使用这些语言进行注释。

注释语言被#视为注释的开始。这里的怪癖是三引号,将Python与Ruby与Bash区别开来。为了将Python 1与2与3区别开来,我们在所有三个中都使用了区别功能以及一系列输出。哦,是的,还有那个__END__。这用于结束某些(不记得确切的)注释语言的代码。

维度语言的区分方式难以解释。必须知道每种语言的细节才能解决。例如,#在fungeoids中只是一个跳过,而在其他语言中它会做各种不同的事情。这些代码遍地都是这些语言。

最后,我们介绍了俗语。这两个忽略所有不在其有效字符集中的内容。必须平衡使用这些语言和其他语言,因为代码已经在字符集中包含字符。


您可以将Python提交中的字符串组合成一个大字符串,然后使用字符串切片对其进行索引吗?例如"abcabcabc"[n::3] -> "aaa" for n = 0, "bbb" for n = 1。我觉得可能有一种方法可以对其进行切片并通过以某种方式在切片中包含重复的字符(例如H和!)来保存字节。
科尔

2
凉!用括号括["Hai dunia!","Hej Verden!","Halo Dunia!"]住逗号!
Uriel's

3
他们不需要,我滥用TIO大脑操默认为0(或者我什么都不知道)的事实,如果它用完了用户的输入。还有9个其他未屏蔽的逗号滥用了这一事实。
扎卡里

2
您有没有+[++[<+++>->+++<]>+++++++]<<<--.<.<--..<<---.<+++.<+.>>.>+.>.>-.<<<<+.将BF部分不使用的原因吗?(来源
硕果累累

1
我已经为想要查看的任何人添加了解释。
扎卡里

38

15种语言,532字节

# ;"!audnuM oxiaK">:#,_@R"Hej Verden!";;@,kb"Tere maailm!";# w"!amliaam ieH"ck,@oooooooooo"Hai dunia!"
`true #{puts'Hola món!'}` \
__END__
"Hola Mundo!" puts
case `ps -p$$ -oargs=` in \
b*)echo Hallo Welt!;;k*)echo Ndewo Ụwa!;;d*)echo Ciao mondo!;;z*)echo Moien Welt!;;a*)echo Hei Verden!;;esac
true; 
#xx
#x%"Olá Mundo!"x
#xx+++[++[<+++>->+++<]>+++++++]<<<--.<.<--..<<---.<+++.<+.>>.>+.>.>-.<<<<+.
   	  	   
	
     		  	 	
	
     		 		  
	
     		 				
	
     	     
	
     	    	 
	
     				  	
	
     		  	  
	
     	    	
	
  

在线尝试!

  1. Kaixo Mundua! 在Befunge-93
  2. Hej Verden! 在裂变中
  3. Tere maailm! 在Unefunge-98中
  4. Hei maailma!! 在Befunge-98
  5. Hai dunia! 在> <>中
  6. Hola món! 在Ruby中
  7. Hola Mundo! 在GolfScript中
  8. Hallo Welt! 猛扑
  9. Ndewo Ụwa! 在ksh
  10. Ciao mondo! 破折号
  11. Moien Welt! 在zsh中
  12. Hei Verden! 灰烬中
  13. Olá Mundo! 在红衣主教
  14. Hello World!出于礼貌由primo提供
  15. Helo Byd! 在空白

说明

第1行区分了5个2D的esolang:

  1. ><>#为一面镜子,向左环绕,打印"Hai dunia!"并崩溃(@)。所有的Funges都将其视为蹦床并向右行驶。
  2. Befunge-93忽略;,打印Kaixo Mundua!并退出(@)。
  3. '98 Funges从第一跳到;第二,然后从第三跳到;第四。w是Befunge-98印刷的NOP Hei maailma!
  4. w在Unefunge-98中反映指令指针,打印Tere maailm!
  5. 裂变根本不在左上角开始。R"Hej Verden!";被执行。(另一个指令指针从Din 开始__END__,但是它什么也没做就死于;in true;。)

红宝石看到`true #{puts'Hola món!'}`,然后__END__

GolfScript看到`,然后是true(NOP),然后是注释;然后__END__(NOP); 然后"Hola Mundo!" puts(执行);然后case(NOP),然后`(空堆栈崩溃)。

外壳程序会看到一个注释,然后是对true(NOP)的调用,然后是对未知命令的调用,__END__以及"Hola Mundo!"(对STDERR的错误,但继续执行),然后是case根据当前进程名称的第一个字母进行区分的语句。

Cardinal是另一个2D esolang,起始于%,向上,向下,向左和向右发送4个IP。他们全部被周围的x命令杀死,但"Olá Mundo!"在临死前打印了一张。

难忘的代码是primo的代码,以++抵消中的破折号为前缀ps -p$$ -oargs=

我的代码中的空格作为空格程序执行

 push 0
 push 0
label_0:
 push 0
 push 0
 drop
 drop
 push 72; printc
 push 101; printc
 push 108; printc
 push 111; printc
 push 32; printc
 push 66; printc
 push 121; printc
 push 100; printc
 push 33; printc

哪个打印 Helo Byd!

编辑:我忘记了添加UDLR字符会破坏Fission程序,因此我更改了字符串以避免这些。


1
我会尽快给你的。
扎卡里

1
我想我现在投降了,你做得很棒。
扎卡里

我感到有些不对劲,因为您的解决方案使语言交互的方式更加有趣!我真的只是用容易相互融合的esolangs填充了“ 5个炮弹”答案……>。<;
林恩

1
现在,如果有人可以将这些语言与D结合使用,我将永远敬畏。(#define在D中不是什么东西...造成了很多问题)。另外,我真的需要学习空白。
扎卡里

1
哦,我知道现在还有更多大写字母了。我将通过选择其他“ Hello Worlds”来稍作修复。
林恩


12

7种语言,221字节

<?php echo'مرحبا بالعالم!';die?>h+#;"!dlereW ollaH"ck,@;
;echo Kaixo Mundua!;                        <@,k+4f"ሰላም ልዑል!"

Բարեւ աշխարհ!
@,k+4f"Përshendetje Botë!";XXXX;"Hello Wêreld!"

由于此程序包含一些讨厌的字符,因此这里是xxd:

00000000: 3c3f 7068 7020 6563 686f 27d9 85d8 b1d8  <?php echo'.....
00000010: add8 a8d8 a720 d8a8 d8a7 d984 d8b9 d8a7  ..... ..........
00000020: d984 d985 2127 3b64 6965 3f3e 682b 233b  ....!';die?>h+#;
00000030: 2221 646c 6572 6557 206f 6c6c 6148 2263  "!dlereW ollaH"c
00000040: 6b2c 403b 0a0c 3b65 6368 6f20 4b61 6978  k,@;..;echo Kaix
00000050: 6f20 4d75 6e64 7561 213b 2020 2020 2020  o Mundua !;
00000060: 2020 2020 2020 2020 2020 2020 2020 2020
00000070: 2020 3c40 2c6b 2b34 6622 e188 b0e1 888b    <@,k+4f"......
00000080: e188 9d20 e188 8de1 8b91 e188 8d21 220a  ... .........!".
00000090: 0ad4 b2d5 a1d6 80d5 a5d6 8220 d5a1 d5b7  ........... ....
000000a0: d5ad d5a1 d680 d5b0 210a 402c 6b2b 3466  ........!.@,k+4f
000000b0: 2250 c3ab 7273 6865 6e64 6574 6a65 2042  "P..rshendetje B
000000c0: 6f74 c3ab 2122 3b58 5858 583b 2248 656c  ot..!";XXXX;"Hel
000000d0: 6c6f 2057 c3aa 7265 6c64 2122 0a         lo W..reld!".

为什么不<?='مرحبا بالعالم!';die?>呢?它是有效的PHP(基本上与相同<?php echo ... ?>),
Ismael Miguel

@IsmaelMiguel,因为我忘记了此功能...就这么简单
NieDzejkob

9

5种语言,168字节

  //"!nedreV jeH",,,,,,,,,,,@R"Hello World!"*#x
///"!mliaam ereT">:?v; x"!dyB oleH"           %x
//               ^ o<                         x
// >`Sawubona Mhlaba!`;

我认为二维语言很有趣。

> <>打印Tere maailm!
Befunge-98打印Hej Verden!
蜂蜡打印Sawubona Mhlaba!
基数打印Helo Byd!
裂变打印Hello World!

在线尝试!(红衣主教)


2
我在这里看到了巨大的潜力,因为//有很多语言的评论。
扎卡里

@Zacharý这是大多数人在那里的唯一原因。现在,两个用于> <>,​​一个用于Beeswax。前两列中的内容不执行任何操作。
KSmarts

您能解释蜂蜡的控制流程吗?我想看看它是否适合此挑战
土豆44年

@ Potato44这是一种二维语言,会将代码解释为有界的六边形网格,因此指针可以在6个方向上移动。角色产生了蜜蜂(指针)*/\_,可以按固定方向或通过镜像或旋转将其重定向。看到这里更多。
KSmarts

您可以将其减少1个字节,因为对于蜂蜡部分而言,;不需要第二个反引号之后的内容。蜜蜂刚从蜂窝向右跑。
ML

7

2种语言,16个字符,24个字节

好吧,至少比两个字符串都短。

L"שלום עולם"33ç«

05AB1E -שלום עולם!

求助,WarDoq!--Hello World!

求助,WarDoq!可以加两个数字并测试素数,因此根据此meta post,它被视为有效的编程语言。


IIRC,他们不是在05AB1E一个字节,这只是由于TIO的限制\
扎卡里

您确定@Zacharý吗?我知道希伯来语字符在某些编码中为1字节。可能是重叠的字符代码。
Uriel

在这里看到希伯来语吗?
扎卡里

@Zacharý固定(我认为这将使24个字节)
Uriel

6

3种语言,67 62字节

有资格获得赏金(100代表)。

x:Helo Byd!
O
y:"Hai dunia!"
u?`h;`4$'5^5D+Asi:^:E+IvIvAB*vhm,

Add ++: 在线尝试!

Foo: 在线尝试!

Somme: 在线尝试!

说明

添加++

Add ++看到:

x:Helo Byd!
O

“输出x的字符串”

y:"Hai dunia!"

“将y设置为其他字符串”

u?`h;`4$'5^5D+Asi:^:E+IvIvAB*vhm,

“我有些奇怪,我会出错的”

oo

Foo看到:

x:Helo Byd!
O
y:"Hai dunia!"

“哦,引号,我将其输出。”

u?`h;`4$'5^5D+Asi:^:E+IvIvAB*vhm,

“呃……关于模式的事?Idk,我会出错。”

索姆

索姆看到,这是:

8s+vi:4+vhIvE-Asi:^:E+IvIvAB*vhm,

每列都转换为代码点,然后从中减去32,然后取95为模。这对应于这些字符,并显示“ Hei Verden!”。


好了,一周到了,您是最短(也是唯一)的竞争答案,所以恭喜!
Caird coinheringaahing

@cairdcoinheringaahing谢谢!:D
科纳·奥布莱恩


4

4种语言,115字节

print ((("b" + "0" == 0)and eval('"Hallo Wereld!"'))or(0 and"Hello World!"or(1/2and"Hei Verden!"or"Hej Verden!")));

Perl 5中给出了Hallo Wereld!- TIO

红宝石给Hello World!- TIO

Python 2中给出了Hej Verden!- TIO

Python 3中给出了Hei Verden!- TIO


107字节—print (((“b”+”0"==0)and eval('"Hallo Wereld!"'))or(0and"Hello World!”or((1/2and"Hei"or"Hej")+" Verden!")));
Jollywatt

4

四种语言,多达650个字节

//iiciccepepceaiiiaiaiaicccsascciijceeeeeejccijjccjceaajaajcccjeeejaajaaijcccej
//[
/*
GOTO end
*/
//pis
//p
//p
//\u000Apublic class Main{public static void main(String[]a){System.out.print("Salut Lume!");}}
/*
lblend
print Hola Mundo!
//s
*/
//]
//s
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++++++++++.--------.++++++++++++++.-------------------------------------------------------------------------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++.-.----------.+++++++++++.------------------------------------------------------------------------------.

Java给出“ Salut Lume!” 试试吧!

SILOS给“ Hola Mundo” 试试!

Brainfuck给出“ Ciao mondo!” 试试吧!

(该alphuck代码从上Esolangs页改性Alphuck

阿尔弗克(Alphuck)给了“你好世界!” 试试吧!

\ u000A开头的行是Java代码。第一行的代码是Alphuck代码,它将忽略其余的代码(只要“ p”和“ s”是平衡的。SIL / SILOS的相关行是“ print Hola Mundo”,以及Brainfuck代码)在末尾,将忽略其余代码。


1
我认为您可以使用此页面提供的常量以及此处使用的技术来查看 BF代码。
科尔

@cole当我有更多时间对其进行优化时,我尝试再次查看bf代码。本质上,我认为仅使用常量是不够的,我将不得不定义一个递归关系
Rohan Jhunjhunwala

1
“ Ciao mondo!”的第78个:+>++>+>+++[+++++[>+++++++++++>++++<<-]+++<]>>--.>+.>.>-.>.<--.++.-.<+++.>+.>+.使用字节序列[
69,104,97,112,32

4

5种语言,213字节

我决定尝试自己写下一个小答案。

#include<stdio.h>
#define hint(x)int main(){auto i=.5;puts(i?"Hallo Welt!":"Hei maailma!");}
#define R "Pozdrav svijete!";
#if 0
hint=print
goto=len
s="Tere maailm!"
goto("endif")
s="Hallo Wereld!";
#endif
hint(s)

语言:

C:                                       Hei maailma!      (Finnish)
C++:                                     Hallo Welt!       (German)
Python 3:                                Hallo Wereld!     (Dutch)
Operation Flashpoint scripting language: Tere maailm!      (Estonian)
Fission:                                 Pozdrav svijete!  (Croatian)

C和C ++将代码视为:

#include<stdio.h>
#define hint(x)int main(){auto i=.5;puts(i?"Hallo Welt!":"Hei maailma!");}
#define R "Pozdrav svijete!"; // Unused macro
hint(s)

auto i=.5;(实际上)等于int i=0;C,但等于double i=0.5;C ++。

在线尝试!(作为C)

在线尝试!(作为C ++)

Python 3将代码视为:

hint=print
goto=len
s="Tere maailm!"
goto("endif")         # Calculate string length and discard the result.
s="Hallo Wereld!"
hint(s)

在线尝试!

OFP脚本语言看到:

; (A semicolon at the beginning of a line comments the line in a script.)

; Four labels with strange names.
#include<stdio.h>
#define hint(x)int main(){auto i=.5;puts(i?"Hallo Welt!":"Hei maailma!");}
#define R "Pozdrav svijete!";
#if 0

; Assign a null value to "hint", no practical effect. Same for "goto".
hint=print
goto=len

; Assign the string to variable "s".
; I would like to have used the Czech phrase for OFP (because it's a Czech game),
; but it didn't recognize the 'ě' and printed a '?' instead.
s="Tere maailm!"

; Jump to label "endif".
goto("endif")

; This reassignment of "s" gets skipped.
s="Hallo Wereld!";

; Declare a label called "endif".
#endif

; Print the string "s".
hint(s)

裂变看到:

R "Pozdrav svijete!";

在线尝试!


2

3种语言,184个 181字节

仅工作一次-您必须清除列表才能再次运行。

when gf clicked
add<[]=[]>to[c v
if<(join(item(1 v)of[c v])[d])=[1d
say[Helo Byd!
else
repeat(300000
add[]to[c v
end
if<(length of[c v])>[250000
say[Hello world!
else
say[Hai dunia!

暂存1.4: Helo Byd!

暂存2.0: Hello world!

在此答案发布时,Scratch 3.0 Beta已发布: Hai dunia!

说明

在Scratch 1.4中,将布尔值添加到列表中会添加10,但在2.0及更高版本中,它会添加truefalse,但是在检查项目是否等于1<[] = []>时,如果项目为1或,则返回true。true,因此我们在其中添加了另一个字母并进行了检查。

在Scratch 3.0中,列表的最大大小为200,000个项目,因此我们只添加一堆项目,然后查看列表是否那么长。


1

3种语言,共61个字节

;“,ḷṅḳȦ»Ḋḷ“
x:Hai dunia!
O
y:"Helo Byd!"
;”

添加++输出Hai dunia!

果冻输出Hello World!

Foo输出Helo Byd!

仅仅因为我设置了赏金,并不意味着我不能参加:D(ab)使用了Conor在 Add ++中发现的出色的字符串设置技巧

这个怎么运作

添加++

;“,ḷṅḳȦ»Ḋḷ“     ; A comment. This does nothing
x:Hai dunia!    ; Set the x accumulator to the string "Hai dunia!"
O               ; Output x
y:"Helo Byd!"   ; Set the y accumulator to the string "Helo Byd!"
;”              ; Another comment

果冻

Jelly中的注释可以使用语法来形成ḷ“comment”,这是Add ++和Foo代码被忽略的方式。Jelly实际执行的代码是

;“,ḷṅḳȦ»Ḋ - Main link. Arguments: None
 “,ḷṅḳȦ»  - Yield the string "Hello World!"
;         - Append 0, yielding "0Hello World!"
        Ḋ - Remove the first character, yielding "Hello World!"

oo

Foo忽略此处的所有字符"Helo Byd!",输出时用引号引起来。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.