【编者按】本文作者为 Deepak Karanth,主要介绍世上最怪异、最难用的5种编程语言。文章系国内 ITOM 管理平台 OneAPM 编译呈现。
最难学编程语言有哪些?很多人都用过Java,C,C++之类的编程语言编写代码。再早几年,很多人会使用Pascal,Fortran,COBOL等编程。在学习这些语言的过程中,会遇到足够的挑战,让你抓狂。但是最终,当你投入足够的时间和精力之后,一切也变得顺利起来。
但是,也的确有些难到极致的编程语言。这些语言被称为极品编程语言。创造它们的原因通常是为了测试编程语言设计的临界,或者只是一个玩笑。好消息是,它们永远不会成为主流,所以你不需要学习它们!
闲话少说,最难的(或最怪异的?)编程语言是……
Brainf*ck由Urban Müller在1993年创建的, 目的是为Amiga OS 2.0版本打造使用最小的编译器的语言。
Brainf * ck主要操纵内存单元数组,此数组也被称为纸带(the tape),被初始化为0。Brainf * ck只提供了8个指令。
8个指令为 ><+-.,[]
“Hello world” code looks like this:
其“Hello world”代码是这样的:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++ ..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.
参考阅读
对。就是母牛的Cow.
COW编程语言设计时充分考虑了母牛的想法。鉴于母牛的词汇有限,因此只包含了它们仅有的词汇。因此,所有指令都是“moo”的变体,恰好是母牛能理解的唯一词汇。
其他非指令的词汇或符号则被完全忽略。因此,空格可有可无,换行符也可有可无。因此,注释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 OOO 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 OOO 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
参考阅读
全称为The Compiler Language With No Pronounceable Acronym,缩写为INTERCAL。表达式看起来类似线路噪音。而指令构造会让你抓狂,大笑,甚至大骂。
INTERCAL还有许多其他特性,让程序员很难接受:它使用“READ OUT”,“IGNORE”,“FORGET” 之类的声明,“PLEASE”之类的修饰符。使用“PLEASE”时,若遭到编译器的拒绝,原因一般有二:如果没有经常使用“PLEASE”,该程序会被认为不够礼貌,且会有提示信息;如果使用得过于频繁,则会被认为过分礼貌。
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 DO ,1 SUB #7 <- #48 PLEASE DO ,1 SUB #8 <- #22 DO ,1 SUB #9 <- #248 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
参考阅读
发布于2003年4月1日,大多数人认为这是一个愚人节玩笑;但它不是。在Whitespace语言中,只可使用空格,制表符和换行符。Whitespace解释器忽略任何其他非空白字符。不过,有趣之处在于,Whitespace程序可以轻易隐藏在其他语言的空白符中。
参考阅读
Chef是一个基于栈的语言,程序看起来就像菜谱。
根据Chef的主页,Chef的设计原则是:
其“Hello world”是这样的!
Ingredients. 72 g haricot beans 101 eggs 108 g lard 111 cups oil 32 zucchinis 119 ml water 114 g red salmon 100 g dijon mustard 33 potatoes Method. Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish. Serves 1.
参考阅读一与参考阅读二
其实,还有更多难到极致的奇怪语言。请访问此处,获得更多信息!
本文系 OneAPM 工程师整理呈现。OneAPM 能为您提供端到端的应用性能解决方案,我们支持所有常见的框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,性能监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
原文地址:https://dzone.com/articles/most-difficult-and-strangest-programming-languages