フォト
無料ブログはココログ

MyList

« AIエージェント  | トップページ | 「で、君はどう思うの?」 <自分で考えることは重要> »

2026年7月 8日 (水)

四則演算のプログラム

ねえパパ、ほとんどのエンジニアは四則演算を計算するプログラムすら書けないってホント? hiroyahorai Zenn (2026/06/15)

Zennに投稿された↑の記事が、ハテブロでお祭りになっていた。
元記事を読んでみて、真っ当な記事だと思ったが、はてなーの人たちは引っ掛かったようだ。
Photo_20260628004901

【プログラミング課題】
四則演算はプログラミング課題の定番なので、何度か書いた。

最初に書いたのは、
プログラミングを始めて間もなくの頃にBASI
Cで書き始めてあっさり挫折した。
このプログラムは、演算子の優先順位や、()が無ければ、簡単だが、優先順位を考慮すると途端に難しくなる。

2回書いたのは、
雑誌で構文解析の記事を読んだ後だった。

その記事で初めて、構文解析やBNF、yaccを知ったが、yaccを手に入れることができなかった。
仕方なく、スクラッチで書き始めたがやはり挫折した。

3回目は、
UNIXが使えるようになった頃に、
   yacc/lex-プログラムジェネレータon UNIX (2014/09/16)
を参考に(写経)してyaccで書いた。
簡単だったので、16進数の計算ができるようにしてしばらく使ったが、bc の方が便利だと気が付いた。orz
車輪の再発明だが、成長過程では再発明も重要だ。

4回目は、
DOSの常駐ソフトとして作った電卓アプリで書いた。
ワープロで文章書いているときにちょっと計算したいことがある。
電卓を探したり、ワープロアプリを閉じて電卓アプリを立ち上げるのは面倒だ。
そこで、ホットキーで起動して、四則演算の結果をワープロアプリに貼る、常駐ソフトをCで書いた。

流石に、yaccは大袈裟だし、常駐ソフトなのでライブラリは使えない。
スタックも少ないから、再帰下降パーサーも使えない。

そこで、数式を全て入力して構文解析する方法ではなく、電卓のように、計算できるよ
うになったら逐次計算する方式で実装した。
ステートマシンだとわかったのは、後にVHDLを学習していたときだった。

その後、
configファイルを初期設定に使うアプリを作る際に、configファイルに
四則演算の式が書けるようにする誘惑に駆られるのだが、思い止まっている。

この記事を読んで、
以前から考えていたアルゴリズムで書いてみた。

今時は、どの処理系でも正規表現が使える。
正規表現を使用すると、四則演算程度なら、構文解析せず、パターンマッチでできるのではないかと、書いてみたら簡単に書けた。
TINY BASIC程度なら、この方法で書けるかもしれない。

【冒頭の記事のタイトル】 
ねえパパ、ほとんどのエンジニアは四則演算を計算するプログラムすら書けないってホント?」
に対する答えは、
ホントかどうかはわからないけど、書いたことが無い人は多いかもしれないね。
パパは書けるけどね。 ( ̄ー ̄)」
だ。

四則演算のプログラム】
冒頭にも書いたとおり、定番のプログラム課題だ、知識として知っている人は多
いだろう。
今時は、AIに書かせることもできるから、知っている必要もないかもしれない。
開発業務が長い知り合いは、学校で習ったが自分で書いたことは無いのだそうだ。

何度も挫折したり、違う実装方法で書くのは、職業プログラマーではなく、趣味でプログラムを書いているからだろう。
パズルやクイズと同じで、自分で答えを求めるから楽しい。
だから、プログラム課題も答えを記憶しても意味はないし、AIに答えを聞いてもオモシロくない。

因みに、再帰下降パーサも書いてみたが結構面倒だった。


最近の投稿
Yoshiのよしなしごと】【Yoshiのブログ】【よしなしごと】【AI

« AIエージェント  | トップページ | 「で、君はどう思うの?」 <自分で考えることは重要> »

よしなしごと」カテゴリの記事

AI」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« AIエージェント  | トップページ | 「で、君はどう思うの?」 <自分で考えることは重要> »

2026年8月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

最近のトラックバック