1. にゃおのリテラシーを考えるラジオ
  2. #263 【技】PrologとSQL..
2022-07-27 04:30

#263 【技】PrologとSQL/アルゴリズムとデータ構造の話

プログラミングを学ぶ方に、早いうちにお話することについて。

プログラミングには、過去の歴史を知ることでわかりやすくなる概念があると考えているのです。

にゃおの考える現代の基礎的なリテラシーは、ITをきちんと使えることが含まれます。そのためにどのような問題があり、どう解決していったらよいか考えてみるPodcastです。

配信書き起こし
https://note.com/nchiba

twitter
@nchiba

「読書と編集」の活動は、
https://www.nyaos.net/

ストアカの「読書と編集のITリテラシー教室」は、
https://www.street-academy.com/steachers/468576?conversion_name=direct_message&tracking_code=62e788e6ff484f6d2952151bb9c955b4

をご覧ください。


00:05
にゃおのリテラシーを考えるラジオ、読書と編集の千葉直樹です。
このチャンネルでは、読書とIT時代の読み書きソロ版を中心に、様々な話をしています。
今回のタイトルは、プロローグとSQL、アルゴリズムとデータ構造の話、というものです。
僕がプログラミングを人に教えるときに、割と最初のところで話すことがあります。
プログラムは二つの要素で成り立っているということです。
二つとは、アルゴリズム、データ構造です。
これらを身近な具体的なものを例に説明するのです。
詳細は省きますが、この二つを意識すると、面白いものが見えてくることがあります。
僕がプログラミングを学び始めた10代の頃に、人工知能ブームがありました。
当時のコンピューターのスペックでは実用性が全くなかったので、ブームはすぐに去って、あっという間に冬の時代に入ってしまったのですが、
その頃流行っていたプログラミング言語の中に、プロローグというものがあります。
論理型言語と呼ばれていました。
かなり風変わりな言語で、〇〇は××である、みたいな論理を宣言的に書いていくだけで、アルゴリズム的なものは書かないものでした。
プログラムの駆動は〇〇は××か?みたいな問い合わせになります。
処理系は与えられた宣言的知識を使って、それが証明できるかどうか順に当たっていくというような動きをするのでした。
最終的に証明できたらトゥルー、証明できなかったらフォルスという結果が副作用と共に表示されるというものでした。
しばらく使ってみて、僕は内部にデータをたくさん蓄積して、それを検索するものという風に理解しました。
アルゴリズムは処理系にお任せというところが理想なのです。
他方、リレーショナルデータベースの初期のシステムが出てきていました。
今でこそデータベースといえばリレーショナルですが、これはとんでもなくメモリやCPUを消費するものです。
当時は今は当たり前の検索言語であるSQLすら存在せず、データベースごとの独自の記述方法で表を検索していました。
後にリレーショナルデータベースを検索する標準言語としてSQLが出てきて、それを使い始めたときに、あれ?なんとなくどこかで使ったことがある感じがする、と思いました。
それがプロローグなのですね。
SQLは検索条件を記述するだけで、具体的な検索のアルゴリズムはデータベース処理系に任されます。
データベース処理系は、格納されているデータの状況を勘案しながら、最適なパスでデータを集めるようになっています。
03:00
その動作がプロローグと似ていると感じたのですね。
だとすると、プロローグで宣言的に記述していく論理の部分は、SQLではインプット文でデータを入力する部分に対応するということになります。
現在のプログラミングは、アルゴリズムとデータをきちんと分けて考えますが、オブジェクト思考をはじめとして、これらをアルゴリズムの方向から統合する方向に進んでいます。
プロローグやデータベースは、逆にデータの側から統合するアプローチなのかも、と思ったりしたのでした。
今回はちょっと難しい話になってしまいましたが、流行りのプログラミング言語を覚えることだけがプログラミングを学ぶことではない、ということをプロローグとSQLの対比で語ってみました。
ぜひ、コンピューターやソフトウェアの歴史についても関心を持ってみてください。
プログラミング言語を学ぶだけではわからない世界が見えてきますよ。
読書と編集では、ITを特別なものではなく、常識的なリテラシーとして広める活動をしています。
詳しい内容については、概要欄のリンクから、または、「読書と編集」と検索して、ネコがトップページに出てくるホームページをご覧ください。
この配信の書き起こしをnoteで連載しています。概要欄にリンクがありますので、フォローいただけると嬉しいです。
今日もワクワクする日でありますように。千葉直樹でした。ではまた。
04:30

コメント

スクロール