「Perl」一个brainfuck 语言解释器的混乱代码版本
2014-04-16 21:42
836 查看
RT,下面代码出自没写过几行Perl 的吾辈之手,不过效果还不错——乱的一塌糊涂。
估计你已经明白为什么有“国际C语言混乱代码大赛”而没有“国际Perl语言混乱代码大赛”了=。=
如果不清楚brainfuck 的解释器是什么可以看看这篇文章,这是一个相同的C++ 版本 =w=
下面的测试代码出自ArchWiki 的Arch is the best 项目,用于输出"Arch is the best!"
Perl 是唯一的一门在RSA 加密前后看起来一样的语言。
-- Keith Bostic
估计你已经明白为什么有“国际C语言混乱代码大赛”而没有“国际Perl语言混乱代码大赛”了=。=
如果不清楚brainfuck 的解释器是什么可以看看这篇文章,这是一个相同的C++ 版本 =w=
@_=@ARGV;exit if @_<1;open FILE,shift; undef$/;$_=<FILE>;s/\h|\n//g ;@_=split//;$_=$~=0;@~=();while ($_<@_){$_[$_]=~/>/&&++$~;$_ [$_]=~/</&&--$~;$_[$_]=~ /\+/&&++$~[$~];$_[$_] =~/-/?--$~[$~]:1; $_[$_]=~/\./ &&printf'%c',$~ [$~];$_[$_]=~/,/?$~ [$~]=getc:1;if($_[$_] =~/\[/){$__=1;$~[$~]?++ $_&&next:1;while($__){++$_;$_ [$_]=~/\[/?++$__:1;$_[$_]=~ /\]/&&--$__;print$_[$_ ],$_;}--$_;next;}if ($_[$_]=~/\]/){ $__=1;$~[$~]?( /\/\/\/\/\/\/\/\//, qw.enjoy brainfuck ;p., <<___________________________ %%%%%%%%%By iSpeller%%%%%%%%%%% ___________________________ ):++$_&&next;while($__){-- $_;$_[$_]=~/\]/&&++$__; $_[$_]=~/\[/&&--$__ ;}next;}++$_;}
下面的测试代码出自ArchWiki 的Arch is the best 项目,用于输出"Arch is the best!"
++>++++++>+++++<+[>[->+<]<->++++++++++<]>>.<[-]>[-<++>] <----------------.---------------.+++++.<+++[-<++++++++++>]<. >>+.++++++++++.<<.>>+.------------.---.<<.>>---. +++.++++++++++++++.+.<<+.[-]++++++++++.
Perl 是唯一的一门在RSA 加密前后看起来一样的语言。
-- Keith Bostic
相关文章推荐
- 写一个brainfuck语言的解释器
- 一个cdecl 程序的混乱版本 150行的代码用15行解决
- 对于获取客户端语言版本,判断客户端是什么系统的方法(附带 代码与国家地区对照表 )
- perl是一个有意思的语言
- 遇到一个代码混乱不堪的Android项目该怎么办?
- 去除代码行号的一个小程序(控制台版本)
- 转载:VC在一个工程中实现多语言版本
- 50行Python代码写一个语言检测器
- 想找一个java版本的twitter的IdWorker的代码
- 分享:用四十种语言分别写一个MD5算法 之27 Perl语言MD5算法
- 使用Python编写一个最基础的代码解释器的要点解析
- 1602静态显示一个数字--汇编语言版本
- 汇编语言基础之五- 一个源代码与反汇编代码对照的例子
- myeclipse中项目名称改掉,造成cvs版本混乱问题解决(有很多代码未提交)
- <转> amazon的一个大牛谈各种语言 c c++ java python ruby lisp perl
- 一个简单的echo服务模型(最原始版本,代码没有优化)
- VC在一个工程中实现多语言版本(转)
- VC在一个工程中实现多语言版本
- 分享:用四十种语言分别写一个MD5算法 之28 Perl 6语言MD5算法
- 使用Python编写一个最基础的代码解释器的要点解析