*目次 [#vc144b45] #contents *趣旨 [#tb234c34] 電子工作のブログで、疑似コーディングの有効性と説いていらっしゃる方がいます。 心の琴線にふれたので、自分なりの解釈で記事を意訳し、まとめておこうとおもいました。 *情報源 [#va4a36bb] http://gataro-avr-ken.cocolog-nifty.com/blog/2012/04/mpl115i2c-eepro.html ハードとソフトのものづくりの楽しさが伝わってくるサイトです。 尊敬しています。 *疑似コーディングのメリット [#p4c93f15] "Hello World"の世界から、ちょっと実用的なプログラムを作るまでのレベルに到達するまでには越えなければならない山がいくつかある。大抵の人がそれを乗り越える前に挫折してしまうようだ。 LEDの点滅とか、"Hello World"のLCD出力くらいなら、いきなりコーディングして何の問題もないが、C言語でステップ数が200を越えるあたりからは、周到な準備を事前にやって開発にかからないと完全な動きをするプログラムを完成させることは難しい。 この山を乗り越えるコツの中で重要なひとつに、「ひとつづつロジックを確かめて完全に動くことが確認できるまでコーディングに入らないこと」がある。そのロジックを確かめる重要な道具がこの擬似コーディングである。 簡単なプログラムではその目的が理解できないかもしれないが、少し複雑になると効果がてきめんにあらわれる。是非みなさんも試していただければと思う。効能はバグの少ないプログラムが出来ることだ。 **掲示板での質問での疑似コーディングのメリット [#o8c311e8] できるならば、疑似コーディングレベルでの質問するべきであり、それに比べ、 最も論理性の高いソースコードは、また、最も人間にとって理解しにくい言語であるため、 余程熟練した人でないとお互いの言おうとしていることが先方に伝わらず、おかしなことになる可能性が高い。 たとえば、下記の例でいくと、左に行くほど、人間が理解するための時間がかかるのである。 機械語->アセンブラ->C言語->JAVA->疑似コーディング 考えた通りにプログラムを作ろうと思うなら、自然言語、つまり普通の言葉で、完全に論理(ロジック)を確認してからコーディングに入れば良い。 ロジックさえ間違いなければ言語は何であっても実現可能である。それなら日本語でこれからやろうとすることを全部説明できるのなら、プログラムは成功したのも同然なのだけど、どうも、このあたりが理解されていない。 *コンセプトレベルの擬似コーディング [#e9e86d8a] 細かいところまでつめること。