C指针原理(79)-递归(3)

编译:

dp@dp:~ % gcc bfi.c -o bfi

bfi.c: In function 'interpret':

bfi.c:35: warning: incompatible implicit declaration of built-in function 'exit'

bfi.c:40: warning: incompatible implicit declaration of built-in function 'exit'

dp@dp:~ % 

 

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/

下面的hello.b输出经典的hello,world:

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-]

<.#>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]>++++++++[

<++++>-]<+.[-]++++++++++.

用刚生成的bf语言解释器运行它:

dp@dp:~ % ./bfi hello.b

Hello World!

 

prime.b完成指定整数内质数的计算:

===================================================================

======================== OUTPUT STRING ============================

===================================================================

>++++++++[<++++++++>-]<++++++++++++++++.[-]

>++++++++++[<++++++++++>-]<++++++++++++++.[-]

>++++++++++[<++++++++++>-]<+++++.[-]

>++++++++++[<++++++++++>-]<+++++++++.[-]

>++++++++++[<++++++++++>-]<+.[-]

>++++++++++[<++++++++++>-]<+++++++++++++++.[-]

>+++++[<+++++>-]<+++++++.[-]

>++++++++++[<++++++++++>-]<+++++++++++++++++.[-]

>++++++++++[<++++++++++>-]<++++++++++++.[-]

>+++++[<+++++>-]<+++++++.[-]

>++++++++++[<++++++++++>-]<++++++++++++++++.[-]

>++++++++++[<++++++++++>-]<+++++++++++.[-]

>+++++++[<+++++++>-]<+++++++++.[-]

>+++++[<+++++>-]<+++++++.[-]

 

===================================================================

======================== INPUT NUMBER  ============================

===================================================================

+                          cont=1

[

 -                         cont=0

 >,

 ======SUB10======

 ----------

 

 [                         not 10

  <+>                      cont=1

  =====SUB38======

  ----------

  ----------

  ----------

  --------

 

  >

  =====MUL10=======

  [>+>+<<-]>>[<<+>>-]<     dup

 

  >>>+++++++++

  [

   <<<

   [>+>+<<-]>>[<<+>>-]<    dup

   [<<+>>-]

   >>-

  ]

  <<<[-]<

  ======RMOVE1======

  <

  [>+<-]

 ]

 <

]

>>[<<+>>-]<<

 

===================================================================

======================= PROCESS NUMBER  ===========================

===================================================================

 

==== ==== ==== ====

numd numu teid teiu

==== ==== ==== ====

 

>+<-

[

 >+

 ======DUP======

 [>+>+<<-]>>[<<+>>-]<

 

 >+<--

 

 >>>>>>>>+<<<<<<<<   isprime=1

 

 [

  >+

 

  <-

 

  =====DUP3=====

  <[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<<<

 

  =====DUP2=====

  >[>>+>+<<<-]>>>[<<<+>>>-]<<< <

 

 

  >>>

 

 

  ====DIVIDES=======

  [>+>+<<-]>>[<<+>>-]<   DUP i=div

  

  <<

  [

    >>>>>+               bool=1

    <<<

    [>+>+<<-]>>[<<+>>-]< DUP

    [>>[-]<<-]           IF i THEN bool=0

    >>

    [                    IF i=0

      <<<<

      [>+>+<<-]>>[<<+>>-]< i=div

      >>>

      -                  bool=0

    ]

    <<<

    -                    DEC i

    <<

    -

  ]

  

  +>>[<<[-]>>-]<<          

  >[-]<                  CLR div

  =====END DIVIDES====

 

 

  [>>>>>>[-]<<<<<<-]     if divides then isprime=0

 

 

  <<

 

  >>[-]>[-]<<<

 ]

 

 >>>>>>>>

 [

  -

  <<<<<<<[-]<<

 

  [>>+>+<<<-]>>>[<<<+>>>-]<<<

 

  >>

 

 

 

 

  ===================================================================

  ======================== OUTPUT NUMBER  ===========================

  ===================================================================

  [>+<-]>

 

  [

   ======DUP======

   [>+>+<<-]>>[<<+>>-]<

  

  

   ======MOD10====

   >+++++++++<

   [

    >>>+<<              bool= 1

    [>+>[-]<<-]         bool= ten==0

    >[<+>-]             ten = tmp

    >[<<++++++++++>>-]  if ten=0 ten=10

    <<-                 dec ten     

    <-                  dec num

   ]

   +++++++++            num=9

   >[<->-]<             dec num by ten

  

   =======RROT======

      [>+<-]

   <  [>+<-]

   <  [>+<-]

   >>>[<<<+>>>-]

   <

  

   =======DIV10========

   >+++++++++<

   [

    >>>+<<                bool= 1

    [>+>[-]<<-]           bool= ten==0

    >[<+>-]               ten = tmp

    >[<<++++++++++>>>+<-] if ten=0 ten=10  inc div

    <<-                   dec ten     

    <-                    dec num

   ]

   >>>>[<<<<+>>>>-]<<<<   copy div to num

   >[-]<                  clear ten

  

   =======INC1=========

   <+>

  ]

  

  <

  [

   =======MOVER=========

   [>+<-]

  

   =======ADD48========

   +++++++[<+++++++>-]<->

  

   =======PUTC=======

   <.[-]>

  

   ======MOVEL2========

   >[<<+>>-]<

  

   <-

  ]

 

  >++++[<++++++++>-]<.[-]

 

  ===================================================================

  =========================== END FOR ===============================

  ===================================================================

 

 

  >>>>>>>

 ]

 <<<<<<<<

 

 

 

 >[-]<

  [-]

 <<-

]

 

======LF========

 

++++++++++.[-]

用刚编译生成的bf语言解释器运行它:

dp@dp:~ % ./bfi prime.b

Primes up to: 20

2 3 5 7 11 13 17 19 

你可能感兴趣的:(算法,C语言)