頑固オヤジのソフトウェア技術者の日記 このページをアンテナに追加 RSSフィード

2006-02-20 メタ知識があれば、プログラミング言語の習得は効率的!その2 このエントリーを含むブックマーク

昨日は、新しいプログラミング言語をマスターする上で、重要であると注目しているものに、

  1. UMLオブジェクト制約言語OCL
  2. プログラミング言語の文法を記述するBNF

があり、この中で、OCLの知識が役に立ちそうだと話しました。

今回は、BNFについてです。

新しいプログラミング言語をマスターする時に、最初からその言語の解説書に付録に載っている文法を記述したBNFを辿りながら、その言語の文法構造を把握に努めます。

なぜ、そんな、めんどうくさいことをするかと言いますと、BNFプログラミング言語の文法をコンパクトに、ぎゅうぎゅう、詰め込んで、無駄がない記法であるため、マスターしたい言語のエッセンスを早いうちに知ることができるからです。

BNFを辿っていくと、知らないマスターしたいプログラミング言語予約語が現れてきます。この時は、索引で、その予約語を検索して、説明しているページを読んで理解しようとします。読んでいる中に、新出の用語が出てきたときは、索引で調べて、説明しているページを読みます。BNF→索引→説明しているページ→BNF→索引→説明・・・という順序で、読んでいきます。あくまでも、BNFを起点として、BNFによる文法を調べていくつもりで、新しいプログラミング言語の解説書を読んでいくのです。

こうすると、その言語構造を結構早いうちに、把握することができることに気づきました。

別な言葉でいえば、本に書いているBNFを辿って、あたかも、人間コンパイラが、マスターしたいプログラミング言語の構文解析していると、たとえることができます。

こういう方法で、新しいプログラミング言語を勉強するものですから、できる限り付録にはBNFが載っている解説書を読むことにしています。

ところで、もしかしたら、自然言語

  1. 英語
  2. 中国語
  3. フランス語
  4. 韓国語

などの外国語学習に応用できるかもしれません。

さて、BNFを起点として文法を勉強したプログラミング言語の解説書には、

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

があります。

これらの言語をマスターする上での参考にしてください。