やはり日本語スクリプト言語が必要か [wython]
今年の初め、日本語スクリプト言語を設計しようとして、いろいろと書いたが、その後、授業の内容を変更するに及んで、少し停滞してしまった。
しかし、C言語を教えるうちに、やはり日本語でのプログラムの記述は有効ではないかと思うようになった。ごく初歩的なプログラムならば、わざわざ日本語で述べなくても、ある決まり切ったパターンさえ覚えればプログラムを書けるようになると思っていたが、何らかの問題を出して、それについてのプログラムを書かせようとすると、やはり変数の処理、繰り返しや条件判断など制御構造などを、どのように組み合わせるのか、そしてプログラムの中でのデータの流れをどう考えるのか、についての理解、というかイメージが不十分なようなのだ。
たとえば、
int c; while ((c = getchar()) != EOF) if (c == ' ') putchar('¥n'); else putchar(c);
というごく単純なプログラム、これも出来上がってみれば簡単だが、単語一つ一つを一行ごとに書き出す、という問題を聞いて、何もないところからここまでプログラムを書くのは、初心者には難しい。
特にcという変数がこのプログラムの中心を動いていくキーになるが、それをどのように使い回していくのか思いつくまでが大変である。このとき、
整数型のデータcを宣言する。 一文字入力し、それをcに代入する。そのcがEOFになるまで以下を繰り返す。 もしcがスペースならば、 改行文字を表示する。 そうでなければ、 入力された文字cを表示する。
とすると、プログラム全体の流れが理解しやすくなる。なぜcを宣言し、それをプログラムのの個々の部分でどのように使い、何を判断し、どのように処理しているかが分かるようになる。
そもそも日本語スクリプトは、擬似コードであってよく、それでコンパイルなどができなくてもいいのではないかと思う。擬似コードという意味では、フローチャートも、プログラムの流れを示すものだが、このフローチャートとプログラムコードの間のギャップはかなり大きい。それに対して、制御構造も含め、ほぼプログラムコードの流れを再現しながら、その意味を日本語で説明したかのような日本語スクリプト言語による擬似コード記述は、もし、覚えやすく、規則的な文法が設計できれば、プログラミング学習にかなり有効だと思う。
コメント 0