当前位置:   article > 正文

2021世界上“最猎奇”“最难的”六大编程语言_chicken语言

chicken语言

*普适智能(PUSHI AI)

                                             ——小普奇妙探索系列
  • 1

在这里插入图片描述

尽管有时会感觉头秃,但编程语言通常旨在使我们的生活更轻松。

有些语言设计师会想到其他目标。可以设计一种编程语言来简化数据矢量化,简化多线程或性能。
小普作为科技公司的一员,下面我们一起来看看世界上公认的,奇奇怪怪的令人匪夷所思却又充满迷惑性,想令人“一探究竟”的编程语言

在这里插入图片描述

  • #1、 brainfuck

Brainfuck(有时称为Brainf ___,brainf ***或只是BF)是深奥的编程语言(esolangs)的典型代表。

Brainfuck是一种基于磁带的语言。可以将基于磁带的语言的程序想象成一个非常长的一维数组(最初是零)。有一个指针,该指针最初位于磁带的一端,并且可以一次向前或向后移动一次,一次存储单元。单元格中的值可以递增或递减(将其限制为整数值),并且带有方括号以允许循环。

BF语言规范中有八个命令。指针当前指向的单元格称为“当前单元格”:

在这里插入图片描述
例如:

在BF中打印“ hello world”的程序如下所示:

在这里插入图片描述

把上面这串代码分享给你的程序猿朋友,保证一脸疑惑(狗头
在这里插入图片描述

每个符号都认识,连在一起就不认识了呢~(狗头

引申:

此外,Brainfuck还启发了无数的模仿者:

JSFuck - JavaScript中,一个“神秘的子集”仅使用字符+,!,(,),[,]“!你好,世界”,创造一个BF的语法,其中 该程序需要10,000多个源代码字符。

  • #2、 Chicken

尽管从技术上讲,Chicken可能是最广为人知的单关键字语言,尽管从技术上讲,基于堆栈的Chicken语言中有11条指令,它们对应于11个操作码,编号为0到10。

操作码编号给出了关键字的出现次数(#在下表中chicken由给出),以表示该特定指令:

在这里插入图片描述

  • #3、 legit

执行通常从提交到其父进程(将命令的输出下移git log --graph --oneline)进行。

如果一个提交有多个父级,则它们会形成一个从0开始索引(最老的提交)的命令堆栈,弹出堆栈的顶部,并且值必须是与正确的父级索引相对应的数字。

例如:

在legit中打印“ hello world”的程序如下所示:

在这里插入图片描述

注意,有两行显示“ Hello World”。

在末尾,语言的创建者编写了此程序,然后合并了该更改后的PR。由于legit程序本身就是Git存储库,如果没有legit程序的版本控制,至少没有Git本身的版本控制。可能导致随着所做的更改,程序会很凌乱。

作者寄语:

“编写一个合法程序,打印出创建自己所需的Git命令!“
(小伙子有梦想)

  • #4、 Malbolge

Malbolge以Dante的Inferno的第八个地狱名字命名,是专门为几乎无法使用而设计的语言。Malbolge程序使用base-3算术(因此,使用tritwise运算而不是bitwise运算.

在这里插入图片描述
例如:

在Malbolge中打印“ hello world”的程序如下所示:

在这里插入图片描述
Malbolge很难编写,以至于Olmstead都从未在其中编写过程序,除了“打印’H’并退出的程序”之外。

第一个“hello world!” 因为没有写Malbolge ,所以它是在通过 beam search算法发布该语言八年后才发现的,它探索了所有可能的Malbolge程序的空间,直到发现可以产生正确输出的程序为止。

  • #5、 APL

(APL)是最令人印象深刻的深奥语言之一(如果可以这样称呼的话),主要是因为它比前几个语言早几十年。

在APL时代,仅有的其他主要语言是 COBOL,LISP,FORTRAN和ALGOL,它们是C语言家族的精神先驱。

APL由肯尼斯·艾弗森(Kenneth Iverson)于1960年代初创建,其主要目标是提供简单,简洁的数组,矩阵和高维数据结构操作。矩阵处理在数学,物理学和重计算科学中很常见。提供一种创建和操作这些数据结构的简便方法将使这些科学家的生活更加轻松。

在类似ALGOL(类似C)的语言中,可以定义一个数字数组,例如:

在这里插入图片描述
在APL中是这样的:

在这里插入图片描述

指向左的箭头←用于分配,iota字符⍳用于创建从1到的整数数组N,其中N是⍳字符后的数字。

APL引入了许多执行不同功能的不常见字符。这具有保持代码本身非常紧凑的效果,通常以可读性为代价(对于习惯于ALGOL,FORTRAN,COBOL或LISP等语言的程序员而言)

C代码如下:

在这里插入图片描述
如果通过APL进行大幅压缩:

在这里插入图片描述
APL使用向量化操作将添加3到由创建的数组的每个元素中⍳4。⍳4创建数组[1, 2, 3, 4],并将其3+⍳4添加3到该数组的每个元素中,以获取[4, 5, 6, 7]。然后,“ sum over”运算符+/将对该数组的元素求和4 + 5 + 6 + 7以获得get 22,然后sum通过向左箭头将其分配给。

在这里插入图片描述

  • #6、 Velato

**Velato是一种音乐语言。**Velato源代码写在MIDI文件中-音符的音高和顺序决定了程序的动作。

程序的第一个音符是“根音符”,可以通过从根音符起第二个主要音符间隔演奏音符来进行更改。其他间隔和注释分组确定其他操作;例如,模数运算符%的编码方式是先播放根音的第五个,然后再播放第五个,再播放第六个。

例如:

“ Hello,World!” 在Velato中的程序可能是这样的:

在这里插入图片描述
多优美的乐章,多优美的字符!啊!

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/306277
推荐阅读
相关标签
  

闽ICP备14008679号