Concurrent Clean : は読みやすいな
ABCコードの分析を継続中ですが、Cで書かれたCodeGeneratorのコードとCleanで書かれたABCコードの部分的な解説を交互に読みながら、分析しているのですが、C言語に比べてCleanの読みやすいこと! 読みやすく書かれているからというのもありますが、C言語でここまで分かりやすく書くことは無理じゃないかと思うのでありました。
-
-
- -
-
と、思いながら、CodeGeneratorのcgcode.cを読んでいると、ものすごく頭のいい書き方をしているらしいことに気づきました。Cleanのコードに対応する形で概念的に記述しながら、裏でそれをアセンブリ(機械語)にマップしているんですよ。って、上手く説明できないですが。
たとえば、
name = input_from_stdio(); printf ("Hello, %s!", name);
みたいな記述が書いてあると、それが期待するアクションにつながっているのではなくて、期待するアクションを生み出すようなアセンブリを吐く関数につながっているみたいな感じ。
とにかく、読み方がちょっと分かってきた。