让程序员最头疼的5种编程语言

世界上的编程语言,按照其应用领域,可以粗略地分成三类。

有的语言是多面手,在很多不同的领域都能派上用场。大家学过的编程语言很多都属于这一类,比如说 C,Java, Python。

有的语言专注于某一特定的领域,甚至只能用在特定的软件中。典型的例子如 Game Maker Language,只用在一个叫 Game Maker 的游戏开发软件中。

然而,有的语言则完全没什么用!它们设计出来根本不是为了实用的目的,而是为了搞笑,为了玩梗,为了开脑洞,为了证明某个概念,为了测试语言设计的界限,或者纯粹是为了让你没法好好编程……

这类编程语言被称为深奥的编程语言,英文称为esoteric programming language,简称esolang。网友评论:怪里怪气的,一看就不是正经的编程语言。

下面是五种最难理解的语言,用这些语言编写程序Hello World,貌似非常有趣的样子,下面和播妞一起来看!

Malbolge
Malbolge 是 Ben Olmstead 在1998年发明的,被认为是最复杂的编程语言。据说,Malbolge 编程语言的作者从来没有用这种语言编写过任何代码,而且Malbolge的 hello world 代码出现在 Olmstead 发明这门语言两年之后。

下面是Malbolge 打印“ Hello World!”的代码片段:
(=《#9]~6ZY32Vx/4Rs+0No-&Jk)“Fh}|Bcy?=*z]Kw%oG4UUS0/@-ejc(:‘8dc

输出结果如下:
在这里插入图片描述

INTERCAL
INTERCAL是“Compiler Language With No Pronounceable Acronym”的缩写,Jim Lyon和Don Woods在1972年发明了INTERCAL,讽刺了当时各种编程语言的很多方面,以及在20世纪60年代拟定的语言结构和注译。

INTERCAL有很多看起来令人无语的设计。例如:它使用诸如“ PLEASE”之类的修饰语,如果代码中不经常使用“ PLEASE” ,编译代码就会报错。它认为这个项目不够礼貌,如果修饰语“ PLEASE”过多,编译器也会报错,他认为你“过分礼貌”。

下面是 INTERCAL 中打印“ Hello,World!”的代码片段:
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 READOUT ,1
PLEASE GIVE UP

输出结果如下:
在这里插入图片描述

Brainfuck
Brainfuck是由 Urban Muller 于1993年开发的,这种语言就是程序员无聊发明的。中文翻译:真他妈的,谷歌给我提供了一个新思路,叫做脑干…

整个语言只包含8个不同的字符,用于实现任何代码,由 Muller 开发的原始编译器只使用了296个字节。

这种语言,是一种按照“Turing complete(图灵完备)”思想设计的语言,它的主要设计思路是:用最小的概念实现一种“简单”的语言。

下面是Brainfuck 打印“ Hello World!”的代码片段:
++++++++++[》+++++++》++++++++++》+++《《《-]》++.》+.+++++++ 。.+++.》++.《《+++++++++++++++.》.+++.------。--------。》+.

输出结果如下:
在这里插入图片描述
COW
Cow是由 Sean Heber在2003年发明的,一旦你看到 hello world 代码,你就会明白为什么这种语言被命名为COW。

Cow在难度水平上与 Brainfuck 相似,与 Brainfuck 相比,它又多了4条命令,也就是说,整个语言中有12条命令。

下面是用 COW 打印“ Hello,World!”的代码片段:

MoO MoOMoO MoO MoO MoO MoO MoO MOO moO MoO MoO MoO MoO MoO moO MoO MoO MoO MoO moO MoOMoO MoO MoO moO MoO MoO MoO MoO MoO MoO MoO
MoO MoO moO MoO MoO MoO MoO mOo mOo mOomOo mOo MOo moo moO moO moO moO Moo moO MOO mOo MoO moO MOo moo mOo MOo MOo MOoMoo MoO MoO
MoO MoO MoO MoO MoO Moo Moo MoO MoO MoOMoo MMM mOo mOo mOo MoO MoO MoO MoO Moo moO Moo MOO moO moO MOo mOo mOo MOo moomoO moO MoO
MoO MoO MoO MoO MoO MoO MoO Moo MMM MMMMoo MoO MoO MoO Moo MMM MOo MOo MOo Moo MOo MOo MOo MOo MOo MOo MOo MOo Moo mOoMoO Moo

输出结果如下:
在这里插入图片描述
Whitespac e
Whitespace是由Chris Morris 和 Edwin Brady 在杜伦大学开发的,而且是在2003年的愚人节发布的。

大部分的现代程式设计语言都不将空白字符视为语法的一部分,但Whitespace却只把空白格、制表符和换行符作为语法的一部分,Whitespace的解释器忽略所有非空白字符,并将其视为代码注释。

在下面的代码中,每个空格、制表符或换行符前面分别加上注释“ s”、“ t”或“ l”。

下面是用空格打印“ Hello World!”的代码片段:
SS S T S S T SS S L
TL
SS S S S T T S S T S T L
TL
SS S S S T T S T T S S L
TL
SS S S S T T S T T S S L
TL
SS S S S T T S T T T T L
TL
SS S S S T S T T SS L
TL
SS S S S T S S S S S L
TL
SS S S S T T T ST T T L
TL
SS S S S T T S T T T T L
TL
SS S S S T T T SS T S L
TL
SS S S S T T S T T S S L
TL
SS S S S T T S S T S S L
TL
SS S S S T S S S S TL
TL
SS L
L
L

输出结果如下:
在这里插入图片描述

以上就是今天播妞为大家分享的5种奇奇怪怪的编程语言,看完真的佩服这些程序员的脑洞,不过还是想说一句,这些程序员应该是工作不饱和吧

热门文章

暂无图片
编程学习 ·

那些年让我们目瞪口呆的bug

程序员一生与bug奋战&#xff0c;可谓是杀敌无数&#xff0c;见怪不怪了&#xff01;在某知识社交平台中&#xff0c;一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读&#xff0c;可见程序员们对一个话题的敏感度有多高。 1、麻省理工“只能发500英里的邮件” …
暂无图片
编程学习 ·

redis的下载与安装

下载redis wget http://download.redis.io/releases/redis-5.0.0.tar.gz解压redis tar -zxvf redis-5.0.0.tar.gz编译 make安装 make install快链方便进入redis ln -s redis-5.0.0 redis
暂无图片
编程学习 ·

《大话数据结构》第三章学习笔记--线性表(一)

线性表的定义 线性表&#xff1a;零个或多个数据元素的有限序列。 线性表元素的个数n定义为线性表的长度。n为0时&#xff0c;为空表。 在比较复杂的线性表中&#xff0c;一个数据元素可以由若干个数据项组成。 线性表的存储结构 顺序存储结构 可以用C语言中的一维数组来…
暂无图片
编程学习 ·

对象的扩展

文章目录对象的扩展属性的简洁表示法属性名表达式方法的name属性属性的可枚举性和遍历可枚举性属性的遍历super关键字对象的扩展运算符解构赋值扩展运算符AggregateError错误对象对象的扩展 属性的简洁表示法 const foo bar; const baz {foo}; baz // {foo: "bar"…
暂无图片
编程学习 ·

写论文注意事项

参考链接 给研究生修改了一篇论文后&#xff0c;该985博导几近崩溃…… 重点分析 摘要与结论几乎重合 这一条是我见过研究生论文中最常出现的事情&#xff0c;很多情况下&#xff0c;他们论文中摘要部分与结论部分重复率超过70%。对于摘要而言&#xff0c;首先要用一小句话引…
暂无图片
编程学习 ·

安卓 串口开发

上图&#xff1a; 上码&#xff1a; 在APP grable添加 // 串口 需要配合在项目build.gradle中的repositories添加 maven {url "https://jitpack.io" }implementation com.github.licheedev.Android-SerialPort-API:serialport:1.0.1implementation com.jakewhart…
暂无图片
编程学习 ·

2021-2027年中国铪市场调研与发展趋势分析报告

2021-2027年中国铪市场调研与发展趋势分析报告 本报告研究中国市场铪的生产、消费及进出口情况&#xff0c;重点关注在中国市场扮演重要角色的全球及本土铪生产商&#xff0c;呈现这些厂商在中国市场的铪销量、收入、价格、毛利率、市场份额等关键指标。此外&#xff0c;针对…
暂无图片
编程学习 ·

Aggressive cows题目翻译

描述&#xff1a; Farmer John has built a new long barn, with N (2 < N < 100,000) stalls.&#xff08;John农民已经新建了一个长畜棚带有N&#xff08;2<N<100000&#xff09;个牛棚&#xff09; The stalls are located along a straight line at positions…
暂无图片
编程学习 ·

剖析组建PMO的6个大坑︱PMO深度实践

随着事业环境因素的不断纷繁演进&#xff0c;项目时代正在悄悄来临。设立项目经理转岗、要求PMP等项目管理证书已是基操&#xff0c;越来越多的组织开始组建PMO团队&#xff0c;大有曾经公司纷纷建造中台的气质&#xff08;当然两者的本质并不相同&#xff0c;只是说明这个趋势…
暂无图片
编程学习 ·

Flowable入门系列文章118 - 进程实例 07

1、获取流程实例的变量 GET运行时/进程实例/ {processInstanceId} /变量/ {变量名} 表1.获取流程实例的变量 - URL参数 参数需要值描述processInstanceId是串将流程实例的id添加到变量中。变量名是串要获取的变量的名称。 表2.获取流程实例的变量 - 响应代码 响应码描述200指…
暂无图片
编程学习 ·

微信每天自动给女[男]朋友发早安和土味情话

微信通知&#xff0c;每天给女朋友发早安、情话、诗句、天气信息等~ 前言 之前逛GitHub的时候发现了一个自动签到的小工具&#xff0c;b站、掘金等都可以&#xff0c;我看了下源码发现也是很简洁&#xff0c;也尝试用了一下&#xff0c;配置也都很简单&#xff0c;主要是他有一…
暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法&#xff0c;在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较&#xff0c;从而确定目标数是在中间数的左边还是右边&#xff0c;将查…
暂无图片
编程学习 ·

项目经理,你有什么优势吗?

大侠被一个问题问住了&#xff1a;你和别人比&#xff0c;你的优势是什么呢? 大侠听到这个问题后&#xff0c;脱口而出道&#xff1a;“项目管理能力和经验啊。” 听者抬头看了一下大侠&#xff0c;显然听者对大侠的这个回答不是很满意&#xff0c;但也没有继续追问。 大侠回家…
暂无图片
编程学习 ·

nginx的负载均衡和故障转移

#注&#xff1a;proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /data0/proxy_temp_dir; #设置Web缓存区名称为cache_one&#xff0c;内存缓存空间大小为200MB&#xff0c;1天没有被访问的内容自动清除&#xff0c;硬盘缓存空间大小为30GB。 pro…
暂无图片
编程学习 ·

业务逻辑漏洞

身份认证安全 绕过身份认证的几种方法 暴力破解 测试方法∶在没有验证码限制或者一次验证码可以多次使用的地方&#xff0c;可以分为以下几种情况︰ (1)爆破用户名。当输入的用户名不存在时&#xff0c;会显示请输入正确用户名&#xff0c;或者用户名不存在 (2)已知用户名。…