レトリックとプログラミング 外延とインタフェース
プログラミングとレトリックには似たところがあると時々思う。プログラミングというよりはオブジェクト指向とレトリックといった方が正しいかもしれない。
オブジェクト指向というのは、データと振る舞いを一つのまとまりとして捉えるのだから当然と言えば当然な気がする。以前読んだ本に佐藤信夫の『レトリック感覚』というものがある。この本は小説での表現を例として挙げながら比喩とは何かを考えさせるとても面白い本だ。今日紹介したいのはその中でも「提喩」という比喩技法だ。
Wikipediaによると提喩は以下のように定義される。
提喩(ていゆ)は、修辞技法のひとつで、シネクドキ(synecdoche)ともいう。換喩の一種で、上位概念を下位概念で、または逆に下位概念を上位概念で言い換えることをいう。
具体的には、絆創膏をバンドエイドと言ったり、乗用車を乗り物と言ったりする比喩形式である。乗り物と乗用車の関係というとオブジェクト指向を勉強した人はピンとくるのではないかと思う。今日話したいのはその辺りの話です。
『レトリック感覚』で、佐藤は以下のような表現を例として挙げている。
片田の浮御堂に辿り着いた時は夕方で、その日一日時折思い出したように舞っていた白いものが、その頃から本調子になって間断なく濃い密度で空間を埋め始めた。 井上靖『比良のシャクナゲ』
これを読むと、何やら情景が湧いてきてしかたがないと思います。この文では白い雪が降りしきる光景がきれいに表現されています。これが提喩の一例なのですが、その定義は色々と紆余曲折しているらしいのです。まず、ベルギーのグループの考える提喩とは2つの様式からなるというのです。
・Π(パイ)型は、木=枝および葉および幹および根、、、
・Σ(シグマ)型で、それは木=ポプラまたは楓または椰子、、、
どちらもオブジェクト指向を学んだ人にはおなじみですね。1つ目がhas-a型、2つめがis-a型ですね。
ただし、佐藤はこれでは提喩をとらえ損ねているとして、二つの言葉で提喩を説明しています。それが、外延と内包です。外延とは、上の例では、「白いもの」にとっての雪を表します。白いものの中には雪以外にも色々とあり、雪の外側を囲んでいるといったイメージです。一方の内包とは逆に雪にとっての「白いもの」を表し、あくまで属性の一部です。
私はこの外延的意味がオブジェクト指向でいうインタフェースだと思うのです。つまり、内包する意味の一部に焦点を当てて、その外延的意味で共通化します。内包する意味は必ずしも一致しませんが、ある一つの外延的意味においてのみ共通するものが見いだせる、それはもうインタフェースだと思うのです。
提喩のis-a型が佐藤により批判されてずいぶん経ちます。プログラミングでもオブジェクト指向で開発する場合に継承ではなく、インタフェースで開発することが多くなっており、提喩=外延的意味≒インタフェースということが裏書きされているように思います。
ちなみに、オブジェクト指向とレトリックを結び付けて考えるのは、 玉井哲雄さんも言っていて、SlideShareのプレゼン資料でも彼についての言及があります。
Photo by Alexandre Tsuchiya on Unsplash