ChatGPT のおかげでプログラミング言語自作に入門できた話
アイザックっていう会社でエンジニアをやってるやまこうです
(会社でもやまこうって呼ばれてます)
僕からは最近ハマってるプログラミング言語自作の話をしたいと思います
本編
以前からプログラミング言語を作りたい、プログラミング言語の仕組みについて知りたいと思っていました
けど、以前にプログラミング言語の自作を試したときはわけわからなくなってそのまま挫折しました。レクサー、パーサー、AST、、、とか意味分からない用語が出てきてそのまま放置していました🥺
なのですが、ふとしたきっかけで最近プログラミング言語自作の勉強を再開しました
その結果 ChatGPT のおかげで簡単なプログラムを動かして基本的な概念を理解するところまでわりと簡単にいけました
ということで今回は ChatGPT のおかげでプログラミング言語の自作に入門できた話をしようかと思います。感動とともに
何からやったか
まず基本的な概念の理解から始めました
レキシカルアナライザー(以下レクサー)とパーサーっていうのが主要部品になるのは知っていたので、この2点を勉強しました
この時点ではネット記事を読んで雰囲気だけ理解しましたが、まったくもってピンときてなかったです
わけがわからないので ChatGPT に作ってもらおうと思った
この時点でよくわかっていなかったので、足し算だけを行えるプログラミング言語(のようなもの)を ChatGPT に作ってもらうことにしました
lex と yacc っていうのを使えば簡単にできるらしいというのは覚えていたので
実際に頼んでみると一瞬で書いてくれて結構感動しました
以下 ChatGPT に頼んだこととスクリーンショットを置いておきます
・「プログラミング言語の作り方教えて」
・「lex と yacc で足し算だけするプログラミング言語を作りたいです」
以上でプログラミング言語(のようなもの)ができました
実際にはこのプログラムが動くまで色々やる必要がありますが、基本は ChatGPT が書いてくれたプログラムそのままです
余談:レクサーとパーサーの解説
ここで軽くレクサーとパーサーのゆるふわ解説をしておきます
レクサーというのはある文字が与えられた時にそれが「数字なのか記号なのか」などが判別できる部品です
レクサーは「2+3」を以下の用に分解します
「2」は数字
「+」は足し算を表す記号
「3」は数字
パーサーはレクサーから提供された「数字、足し算する記号、数字」という要素を受け取り、これらを組み合わせて「2 + 3」という数式の全体的な意味、つまり「2と3を足す」という計算を理解し、実行します。最終的にこの計算式の答えが「5」であることを導きます
詳細に関しては以下の動画に譲ります
とてもわかりやすかったです(プログラマじゃないときびしいかも)
https://www.youtube.com/watch?v=xR3BtHbZXA4
雑感想
僕は一度プログラミング言語自作に挫折しているわけですが、今では簡単な言語(のようなもの)を動かすところまでできてしまいました。それも一日足らずで。すごいですね
ChatGPT が登場してから自分がくわしくない分野へのキャッチアップわりと簡単にできるようになりました
なので、これ以外にも化学・数学・哲学・コンピューターサイエンスとか色々教えてもらってます。もちろん、仕事の話も教えてもらってます
以前だとハードル高かったことでも挫折できずに勉強したり制作したりできるので異分野への勉強モチベーションがとっても高くなりました。本当にありがたいです
かがくのちからってすげー
さいごに:会社の話と絶賛採用中ですという話
アイザックでは絶賛採用中です
代表が ruby のコミッターやってた方だったり、技術力高い人いっぱいいたりしてとても面白い環境です
平均年齢も若いのでみんなでわいわいがやがややれる感じの雰囲気なのも楽しくて良いです
最近は朝会でメンダコちゃんを紹介してわいわいしたりとか、就業後にオセロして遊んだりしてました
そんな感じでメンバー同士が仲良いので楽しく仕事をやれています
もし興味があればちょっと覗くだけでもいいので会社ページをみてもらえたらなと思います
ーーー
アイザックでは、一緒に「世の中を実験する」仲間を募集しています。ご興味を持ってくださった方は、こちらのお問い合わせフォームからエントリーください。採用に関する詳細は以下のページをご覧ください。
よろしくお願いします!!!
この記事が気に入ったらサポートをしてみませんか?