100万人に伝えたい!失敗を乗り超えた話を共有しよう
参加投稿です。技術士(情報工学)、工学博士 小川清です。
<この記事は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
デバッグモードでしか動かないプログラム。
計算終わるのに3年かかる。失敗から学ばない私。
で書いた、OBJのシンタックスチェッカは、実は、デバッグモードでしか動かない。
最初は、Small C Compilerを写経した。
次にPascalで書かれたコンパイラをC言語に移植した。
YaccとLexで書いたコンパイラも動かしてみた。
OBJのシンタックスチェッカを造った。
コンパイラのデバッグモードだと動く。
リリースモードだと暴走する。
OBJは、LISPで書かれた言語。LISPが使えれば、シンタックスチェッカもLISPで作れたはず。
原因は推測できた。Pascalには範囲指定機能がある。C言語には範囲指定機能がなく、どこかで配列が溢れているのだろう。
MISRA Cに取り組んだ後では、静的検査すれば分かる。
C言語教育はCコンパイラの写経で
写経だけでは十分ではない点が一つみつかった。MISRA Cに取り組み、すぐに解決策も見つかった。
MISRA C
Cコンパイラを書いた経験は、Cのコーディング標準の創り方、運用の仕方、展開方法には役立った。
そして、MISRA C用のツールで、範囲検査機能を知った。なんだ、この機能使えば、リリースモードでも動くようにできたんだ。
3つの失敗を重ねるなかで、得た経験で役立った最初の成果かもしれない。
MISRA C まとめ #include
MISRA C 2012 -組み込みプログラミングの高信頼性ガイド
まとめに代えて
コンパイラを描き始めて、プログラミング言語のそれぞれの制約にぶつかった。
コンパイラを書いた経験にもとづき、MISRA Cに取り組んで、すぐに問題は解決した。
今まで書いてよかった技術書を紹介しよう!
C++/C コンパイルエラーを記録するとよい理由7つ
C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識
[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。
関連資料
夜勤明けで免許更新で眼鏡付きになった。69歳のゴールド免許
計算終わるのに3年かかる 失敗から学ばない私
デバッグモードでしか動かないプログラム。静的検査。
FAXが送れない。「Microsoft Exchange活用ガイド」技術評論社。裏話。
索引体系化に失敗。統計を取ろう。
失敗してもめげないプログラマになるには。仮説(174)
失敗の記録:文字列処理スクリプトの場合
QC検定に落ち「たか」らかける記事。20,000人の方に読んでいただけ「たか」ら書ける記事。「たかたか」分析の勧め。
作業診断(process assessment)を成功させる5つの鍵。失敗する5つの罠 。仮説(50)
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.01 初稿 20230729
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.