#{ } と ♭{ }

Ruby でおなじみの #{...}

a = "My name is #{name}";

".. " の中は自然言語,その外側はRubyである,と解釈できるので
#{ ... } は,「1レベル上(=外側) の言語を参照する」という意味合いと考えられる.

じゃあ,♭{... } があってもいいだろう.

♭{... }は,#{ ... } の中で用いられ,#{ } のすぐ外側の言語を参照する.



Statement a =  
   #{generate(♭{$b})}; 
   #{generate(♭{$c})}; 
;
out.print (a);
Expression generate (Variable v) {
  return 
      #{v} = ¶m_get(#{v.getName()})
  
}

と書くと,

$b=¶m_get("b");
$c=¶m_get("c");

が生成される.

次のような図にすると,#と♭の対応がわかる,かな?

     Statement a =   #{generate(♭{$b})};  #{generate(♭{$c})};;
Java --------------          ---------      -      ---------      -         -
Perl                     --              --   ---              --   -