史上最「奇葩」的十大编程语言,最后一个有毒……

关注「实验楼」,每天分享一个项目教程   

当你看到这些编程语言时,你的反应应该是「这人一定很闲」、「同是九年义务教育,他为什么这么优秀」、「这人有毒吧」……

正文共:2220 字 

预计阅读时间:7 分钟

以下就是整理的史上最「奇葩」的十大编程语言:

10.反向脑洞之Whenever

某程序员不喜欢每次给电脑下达一个命令后它在几毫秒内就执行了,他觉得节奏太快。于是他就设计了Whenever来解决这个问题。

Whenever就像一只宠物猫,没什么压力和紧张感,只在想做的时间做想做的事。代码行不是按顺序执行的。它们更像“待办事项”名单,语言翻译可以按照它喜欢的任何顺序处理。

设计原则 :

  • 代码行最终会被被执行(除非决定不要它们),但是它们的执行顺序不会按照指定的顺序进行。

  • 变量? 我们甚至没有流量控制,我们不需要任何变量!

  • 数据结构?你一定是在开玩笑。

>小编评价:这很程序员!可以随便设定程序就是任性!


9.名字真是简单粗暴之Brainfuck

Brainfuck是一种非常深奥的编程语言,它的名字就叫“fuck with your brain”。它于1993年由Urban Müller创立,以极简主义著称。Brainfuck可以由一个很小的编译器实现。该语言仅使用8个命令和一个指令指针,每个命令都由一个字符组成。

下面的程序输出“Hello World!”

>小编评价:这个名字不会被打马赛克吗?


8. 不知怎么形容之LOLCODE

LOLCODE是使用lolcats语言设计的,也称为lolspeak。例如,“HAI”用于引入程序,“KTHXBYE”用于终止。

该语言是2007年由兰开斯特大学计算机系的研究员Adam Lindsay创建的。下面是LOLCODE中的“Hello World”程序。

HAI CAN HAS STDIO? VISIBLE "Hello World!" KTHXBYE

>小编评价:没有小编评价


7. 莎士比亚的语言之Shakespeare

正如伟大的诗人兼剧作家莎士比亚曾经写道:“世界上所有的节目,所有的男人和女人都只是变数。”

好吧,也许这不是他写的,但这是对Shakespeare编程语言的精确总结。

Shakespear的设计目标是使源代码像莎士比亚戏剧。 剧中的角色是变数。 如果你想分配一个角色,比如说哈姆雷特,一个负值,你把他和另一个角色放在舞台上,并让这个角色羞辱哈姆雷特。

输入和输出是通过让某人告诉一个角色来倾听他们的心声并说出他们的想法来完成的。。
该语言包含条件,角色询问对方的问题,跳转,他们决定去哪些具体的行为或场景。

以下是一个“Hello World”程序示例。 The Infamous Hello World Program. Romeo, a young man with a remarkable patience. Juliet, a likewise young woman of remarkable grace. Ophelia, a remarkable woman much in dispute with Hamlet. Hamlet, the flatterer of Andersen Insulting A/S.                    Act I: Hamlet's insults and flattery.                    Scene I: The insulting of Romeo. [Enter Hamlet and Romeo] Hamlet: You lying stupid fatherless big smelly half-witted coward! You are as stupid as the difference between a handsome rich brave hero and thyself! Speak your mind! You are as brave as the sum of your fat little stuffed misused dusty old rotten codpiece and a beautiful fair warm peaceful sunny summer's day. You are as healthy as the difference between the sum of the sweetest reddest rose and my father and yourself! Speak your mind! You are as cowardly as the sum of yourself and the difference between a big mighty proud kingdom and a horse. Speak your mind. Speak your mind! [Exit Romeo]                    Scene II: The praising of Juliet. [Enter Juliet] Hamlet: Thou art as sweet as the sum of the sum of Romeo and his horse and his black cat! Speak thy mind! [Exit Juliet]                    Scene III: The praising of Ophelia. [Enter Ophelia] Hamlet: Thou art as lovely as the product of a large rural town and my amazing bottomless embroidered purse. Speak thy mind! Thou art as loving as the product of the bluest clearest sweetest sky and the sum of a squirrel and a white horse. Thou art as beautiful as the difference between Juliet and thyself. Speak thy mind! [Exeunt Ophelia and Hamlet]                    Act II: Behind Hamlet's back.                    Scene I: Romeo and Juliet's conversation. [Enter Romeo and Juliet] Romeo: Speak your mind. You are as worried as the sum of yourself and the difference between my small smooth hamster and my nose. Speak your mind! Juliet: Speak YOUR mind! You are as bad as Hamlet! You are as small as the difference between the square of the difference between my little pony and your big hairy hound and the cube of your sorry little codpiece. Speak your mind! [Exit Romeo]                    Scene II: Juliet and Ophelia's conversation. [Enter Ophelia] Juliet: Thou art as good as the quotient between Romeo and the sum of a small furry animal and a leech. Speak your mind! Ophelia: Thou art as disgusting as the quotient between Romeo and twice the difference between a mistletoe and an oozing infected blister! Speak your mind! [Exeunt]

>小编评价:创建这个语言的人一定是莎士比亚的小迷弟!追星界的一股清流啊……


6.花式整人之Befunge

Chris Pressey创建Befunge的目的很简单,纯粹为了整人:设计一种编程语言,尽可能难以编译。 Befunge通过其两个主要特征来实现这一点:

  • 自我修改的代码 –指令可以在playfield中写入新的指令

  • 多维代码 - 相同的指令可以在四种不同的上下文中执行(从左到右,从右到左,向上或向下)。

程序被安排在一个二维网格上。“箭头”指令指示控制流向左、向上、向上或向下,并通过在一个循环中发送控制流来构造循环。

该语言最初是在1993年引入的,多年来,一些人成功地为它创建了编译器。这是Befunge的“Hello World”项目样本:

>小编评价:同是程序员,何必互相伤害?


5. 追求艺术之Piet

AsciiDots和Grass与Piet没有任何关系。 Piet是一种编程语言,程序实际上看起来像抽象绘画。 该语言是以皮埃尔蒙德里安(Piet Mondrian)的名字命名的,后者开创了几何抽象艺术领域。

该程序由一个指针编译,该指针将在图像周围移动,从一个部分移动到另一个部分。
代码是有颜色的;编译器读取颜色变成程序。

下面的图片实际上是打印“Hello World”的程序的源代码。

>小编评价:作者一定是个心里阳光的蓝孩纸……


4. 众生平等之Whitespace

遗憾的是,大多数编程语言对不同的空白字符会直接忽略或分配很少的意义。而Whitespace试图纠正这种错误。

大多数现代编程语言都不考虑空白字符(空格、制表符和换行符)语法,直接忽视它们的存在。我们认为这对它们来说非常不公平。难道他们应该被忽视,仅仅因为他们是无形的吗?空白是一种寻求平衡的语言。任何非空白字符都被忽略;只有空格、制表符和换行符被认为是语法。——小编译

由于所有非空白字符都被忽略,所以很容易在用其他语言编写的程序中嵌入空白程序,比如C、c++、Java等。

这里有一个空白的“Hello Program”例子。出于理解的目的,我们采用了一种非白色彩色编码:

>小编评价:真是体贴


3. 为猩猩设计的语言:Ook!

Ook!是基于Brainfuck的深奥编程语言。 David
Morgan-Mar为猩猩设计的语言。OOK!

基本上与Brainfuck是同构的,但是具有更少的语法元素。

它是在我的脑海中创建的,它遵循以下陈述的原则:

  • 编程语言应该是可读写的,并且可以被猩猩读取。

  • 为此,语法应该简单易记,并且不要提到“monkey”这个词。

  • 香蕉很好。

因此Ook!仅由以下3个语法元素组成:

Ook. Ook? Ook!

它们被组合成2个组,给出总共2 ^ 3 = 8个可用的元素,类似于Brainfuck。

由于“ook”这个词可以传达整个思想,情感和抽象思维,这取决于变化的细微差别,Ook!不需要注释。代码本身可以很好地描述它的功能以及它是如何实现的。

这是用Ook编写的“Hello World”程序!:

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

>小编评价:同是九年义务教育,你为什么这么优秀?


2. 第一名就要来了之Malbolge

当一种编程语言以但丁第九圈地狱的名字命名时,你就会知道该期待什么了。Malbolge是由Ben Olmstead在1998年发明的一种公共领域的深奥编程语言。

Malbolge官方网站声明:
Malbolge的理念是,编程应该是困难的。它应该像编程语言一样尽可能地狱。随着时间的推移,它将继续进化,因为更新的、更扭曲的思想会攻击这个问题。Malbolge结合了机器语言、INTERCAL(特别是tril -INTERCAL变体)和BrainF***,以及今天存在的一些最复杂、最扭曲的大脑编程头脑创造的精巧而令人痛苦结构。——小编译

Malbolge很难理解,它历时两年才实现第一个Malbolge程序。事实上,作者本人从来没有写过一个单一的Malbolge程序。第一个程序甚至不是由一个人编写的:它是由Andrew Cooke设计的一个beam搜索算法生成的,并在Lisp中实现。

下面的Malbolge程序显示“Hello World”:

(=<`#9]~6ZY32Vx/4Rs+0No-&Jk)"Fh}|Bcy?`=*z]Kw%oG4UUS0/@-ejc(:'8d

小编评价:和Befunge有得一拼了


1. 大吉大利,今晚吃鸡之Chicken

Chicken是由华盛顿大学的Doug Zonker创建的编程语言。真的可以说,它只包含1个有效的符号 - chicken!

如果你想阅读关于Chicken的论文,请点击这里(https://isotropic.org/papers/chicken.pdf)

视频戳:


下面是用Chicken写的“Hello World”:

准备好了吗?

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken

>小编评价:我我我……我投降!


翻译:sugarain

原文链接:Top 20 Strangest Programming Languages

链接:https://zhuanlan.zhihu.com/p/37254013


学习更多


楼+「 Python实战 」、「 Linux运维与Devops实战 」优惠报名中——来自腾讯、Intel、IBM等互联网大厂的一线大牛,带你12周内打通Python、Linux的任督二脉!

点击下面的链接了解详情:

11周打通 Linux 任督二脉,实验楼技术天团带你飞!

他在一线互联网大厂研发PHP数年,用6周时间带你打通“全宇宙最好的语言


展开阅读全文

史上奇葩的,最难解的SQL Server 疑难杂症

06-17

create FUNCTION [dbo].[fn_TempObjectStringsByInterval]rn (rn @ObjectStrings VARCHAR(max) ,rn @strInterval CHAR(1)rn )rnRETURNS @TempObjectID TABLErn (rn ID_Num111 INT IDENTITY(1, 1) ,rn ObjectString VARCHAR(max)rn )rnAS rn BEGIN rn DECLARE @ObjectString VARCHAR(max) rn rn DECLARE @NowIndex INT rn DECLARE @PreIndex INT rn rn IF SUBSTRING(@ObjectStrings, LEN(@ObjectStrings), 1) <> @strInterval rn SET @ObjectStrings = @ObjectStrings + @strInterval rn rn SET @NowIndex = CHARINDEX(@strInterval, @ObjectStrings) rn rn SET @PreIndex = 1 rn rn WHILE @NowIndex > 0 rn BEGIN rn SET @ObjectString = SUBSTRING(@ObjectStrings, @PreIndex,rn @NowIndex - @PreIndex) rn rn INSERT INTO @TempObjectIDrn ( ObjectString )rn VALUES ( @ObjectString ) rn rn SET @PreIndex = @NowIndex + 1 rn SET @NowIndex = CHARINDEX(@strInterval, @ObjectStrings,rn @PreIndex) rn END rn rn RETURN rn END rnrnGOrncreate PROCEDURE [dbo].test2rn (rn @CostDiff VARCHAR(max) = '' rn )rnAS rn DECLARE @Count AS INT rnrn SELECT IDENTITY( INT, 1,1 ) AS ID_Num ,rn tb.ObjectSTringrn INTO #temp_CostDiff111rn FROM dbo.fn_TempObjectStringsByInterval(@CostDiff, ';') tbrn rn DECLARE @I VARCHAR(max) rn SELECT @I = ObjectSTringrn FROM #temp_CostDiff111rn WHERE ID_Num = 1rn PRINT @Irn DROP TABLE #temp_CostDiff111 ;rnGOrncreate PROCEDURE [dbo].test3rn (rn @CostDiff VARCHAR(max) = '' rn )rnAS rn SELECT *rn INTO #temp_CostDiff2rn FROM dbo.fn_TempObjectStringsByInterval(@CostDiff, ';') rn rn DROP TABLE #temp_CostDiff2rnGOrncreate PROCEDURE [dbo].[test1]rn (rn @BudgetList VARCHAR(MAX)rn )rnAS rn DECLARE @BudgetListOfOne VARCHAR(MAX) rn DECLARE @Count AS INT rn rn BEGIN TRAN rn rn SELECT ID_Num111 AS ID_Num ,rn ObjectSTringrn INTO #temp_BudgetListrn FROM dbo.fn_TempObjectStringsByInterval(@BudgetList, '|') rn rn SELECT @Count = COUNT(*)rn FROM #temp_BudgetList rn rn WHILE @Count > 0 rn BEGIN rn rn SELECT @BudgetListOfOne = ObjectSTringrn FROM #temp_BudgetListrn WHERE ID_Num = @Count ;rnrn EXEC test2 @BudgetListOfOne rnrn DECLARE @dd VARCHAR(MAX)rn rn SET @dd = @BudgetListOfOnern rn EXEC test3 @dd rnrn SET @count = @count - 1rn END rn DROP TABLE #temp_BudgetListrn IF @@error <> 0 rn BEGIN rn ROLLBACK TRAN rn END rn COMMIT TRANrn rnGOrn---------------------------------------------------------------------------rnSET NOCOUNT ONrnEXEC test1 rn rn @BudgetList = 'aaBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|bbBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ccBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ddBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|eeBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ffBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ggBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|hhBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|iiBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|jjBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|kkBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|llBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|mmBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|nnBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|00BB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ppBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|qqBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|rrBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ssBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|ttBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|uuBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|vvBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|wwBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|xxBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4|yyBB16B5-3213-47B4-84C0-D1033B7D87CB;NBYY.aaa.011111111111111111111111;A.01.01.01;4'rnrnGOrn--为什么结果中有一个与众不同列?rn为什么?能解答一下吗??不要修改其中的逻辑,我只求为什么这里会有一条记录与众不同???rnrnrn 论坛

没有更多推荐了,返回首页