zoukankan      html  css  js  c++  java
  • 奇怪的计算机语言

      这个计算机语言我刚刚在网上发现,也不知道是哪个聪明的、爱做出圈事的编程高手发明的。它类似一种机器语言,跟古董,写一个“Hello World”都要写一堆的括号、加减好等等的符号。
    这种计算机语言的编译器你自己也可以写出来,官方给出如下代码(用C语言编写)
    #include <stdio.h>;

    int  p, r, q;
    char a[5000], f[5000], b, o, *s=f;

    void interpret(char *c)
    {
            
    char *d;

            r
    ++;
            
    while*c ) {
                    
    //if(strchr("<>;+-,.[]\n",*c))printf("%c",*c);
                    switch(o=1,*c++{
                    
    case '<': p--;        break;
                    
    case '>;': p++;        break;
                    
    case '+': a[p]++;     break;
                    
    case '-': a[p]--;     break;
                    
    case '.': putchar(a[p]); fflush(stdout); break;
                    
    case ',': a[p]=getchar();fflush(stdout); break;
                    
    case '[':
                            
    for( b=1,d=c; b && *c; c++ )
                                    b
    +=*c=='[', b-=*c==']';
                            
    if(!b) {
                                    c[
    -1]=0;
                                    
    while( a[p] )
                                            interpret(d);
                                    c[
    -1]=']';
                                    
    break;
                            }

                    
    case ']':
                            puts(
    "UNBALANCED BRACKETS"), exit(0);
                    
    case '#':
                            
    if(q>;2)
                                    printf(
    "%2d %2d %2d %2d %2d %2d %2d %2d %2d %2d\n%*s\n",
                                           
    *a,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],3*p+2,"^");
                            
    break;
                    
    default: o=0;
                    }

                    
    if( p<0 || p>;100)
                            puts(
    "RANGE ERROR"), exit(0);
            }

            r
    --;
    //        chkabort();
    }


    main(
    int argc,char *argv[])
    {
            FILE 
    *z;

            q
    =argc;

            
    if(z=fopen(argv[1],"r")) {
                    
    while( (b=getc(z))>;0 )
                            
    *s++=b;
                    
    *s=0;
                    interpret(f);
            }

    }

    之后,把这个程序编译成EXE文件,然后写下如下代码:
    >;+++++++++[<++++++++>;-]<.>;+++++++[<++++>;-]<+.+++++++..+++.[-]>;++++++++[<++++>;-]
    <.#>;+++++++++++[<+++++>;-]<.>;++++++++[<+++>;-]<.+++.------.--------.[-]>;++++++++[
    <++++>;-]<+.[-]++++++++++.
    这就是传说中的“Hello World!”。


  • 相关阅读:
    day04 列表和元组
    Python2和Python3的区别
    Ruby学习笔记2 : 一个简单的Ruby网站,搭建ruby环境
    Patrick Hughes
    Ruby学习笔记1 -- 基本语法和数据类型, Class
    Javascript学习笔记5
    php学习笔记1——使用phpStudy进行php运行环境搭建与测试。
    Linux配置和管理msyql命令
    干净win7要做几步才能运行第一个Spring MVC 写的动态web程序
    The difference between Spring Tool Suite and Spring IDE
  • 原文地址:https://www.cnblogs.com/empty/p/1242398.html
Copyright © 2011-2022 走看看