パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

言語を作ろうとして電卓をコンパイルする

2018-10-17 | コンピュータ
最近、近所の図書館はかなり面白そうなコンピュータ本が置いてある。
借りてみるけどほとんど積ん読後、返却なのが残念

ちなみに今手元にあるのが
「プログラミング言語を作る」
「人狼知能で学ぶAIプログラミング」

遠い昔、クイズ用の簡易言語を作って雑誌にもちょこっと掲載された気はする。もう覚えていない。
(少なくとも掲載してもいいですかという問い合わせはありました。)


ともかくプログラミング言語を作るを読む。
風邪気味で集中力が全然足りない。

yaccとlexこれがまず頭にさっぱり入ってこない。
単語がわからないのが問題。

プログラムから実行してみようとソースをダウンロード

コンパイルができない。

原因はそもそもubuntu18.04にyaccとlex両方ともデフォルトで入っていなかったから。
$ sudo apt-get install bison
$ sudo apt-get install flex

本を読んでいてGPLも問題あるんだなとか知りました。
(少しでも取り込んでいるとソースコードを公開しないといけないとか)

この本が書かれたのは9年前、色々と環境も変わっていったのかも
もともとのlexは開発終了とかなってました。


コンパイルできなかった時のエラー
そもそも最初の2行にyacc lexないと表示されているのに、しばらくあさっての方向に向かってしまってました。



よし、電卓のソースをコンパイルしたぞ!

c言語で作らないといけないらしい、道ははるかに遠い。

pythonを元々作った人も引退したみたいだし、
昔は言語って作ったら終わりみたいな感じだったけど、
最近はバージョンアップ繰り返して技術取り込んだり、
開発が無限ループのようで大変そうです。




最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。