「ChatGPT」利用のヒント

「ChatGPT」のプログラミング能力--「Fortran」「COBOL」などのマイナー言語で試す

David Gewirtz (Special to ZDNET.com) 翻訳校正: 川村インターナショナル

2023-05-11 07:30

 筆者は先頃、「ChatGPT」に12の人気プログラミング言語で同じルーチンを書かせるテストを実施した。しかし、プログラミング言語マニアの筆者は、ChatGPTの限界を知りたくなった。1950年代の言語でプログラムを記述することはできるだろうか。独自の文字セットを使用する言語でプログラミングは可能なのか。自らのコードを記述した言語の1つでコードを書けるのだろうか。

 そこで試してみることにした。今回取り上げる言語の多くは筆者が使ったことがあるものなので、少し思い出を振り返って、使用の体験談もいくつか紹介する。

 コード自体を実行したわけではないが、生成されたすべてのプログラムに目を通した。大半は正しいように見えるし、出力された言語が筆者が指示した言語であることを示すものが表示されている。

 なぜこう書いたかというと、すべてのスクリーンショットのヘッダーが間違っているからだ。ほとんどが「SQL」とされている。どういうわけか、「BAL」は「VBNet」と、「Prolog」は「Rust」と表示された。ChatGPTは前回、このようなミスをしなかったが、今回は取り上げた全言語で同じミスをした。

 では、詳しく見ていこう。

「Fortran」

 Fortran(当時の表記は「FORTRAN」)は、「Formula Translation」の略だ。この言語は主に科学と工学の計算のために開発された。登場したのは1950年代だが、1970年代と1980年代に工学部の学生が初めて教わる言語となることが多かった。

 筆者にとっては、「BASIC」「PDP-8」アセンブリー言語、PDP-8バイナリーに続く4番目のプログラミング言語だった(そう、筆者はバイナリーコードを書いて、初期のミニコンピューターのフロントパネルのトグルに組み込んだ)。筆者がまだ高校2年生のとき、ニューアーク工科大学(現NJIT)で1年目のプログラミングコースを受講できるように、寛大な父親が車で1時間かけて送ってくれた。

 Fortranは多くの計算指向のジョブを実行できるはずだが、大きな人気を博すことはなかった。Fortranのバリアントは現在も使用されているが、専門的な科学研究に限定されている。他の多くの現代的な言語が、Fortranレベルの分析をFortranよりうまく実行できるからだ。

 下のスクリーンショットでは、暗黙のキーワードが使用されているため、ChatGPTは「Fortran-77」バリアントで記述されたコードを出力しているようだ。

ラベルは間違っているが、コードはFortranだ。提供:David Gewirtz/ZDNET
ラベルは間違っているが、コードはFortranだ。
提供:David Gewirtz/ZDNET

「COBOL」

 筆者は10代の頃、COBOLのプログラマーだった。当時はCOBOLに関する知識がなかったが、1980年頃に、ニュージャージー州デンビルにあるInternational PaperのNortheast Regional Data CenterでCOBOLプログラマーの募集広告を見た。勤務地は実家から約40分のところにあり、筆者は夏の間の仕事を探していた。面接の日時が決まるとすぐに、地元の書店に走って行き、見つかったCOBOL関連の書籍をすべて週末に読みあさった。

 COBOLはビジネス指向の処理を目的としていた。現在でいうと、同じタイプのユーザーはSAPやSalesforceのユーザーだろう。しかし、下のスクリーンショットにある「COBOL-88」コードを見ると分かるように、COBOLは実用的ではあったものの、決して優美ではなかった。

 面接に行ってみると、フルタイム従業員の求人だったことが分かった。だが、筆者はテストの成績が良かったため(週末の勉強で、求人に応募したプロの点数を上回ったようだ)、夏の間、働かせてもらえることになった。控えめに言うなら、文化的なミスマッチがあった。当時はごく初期のマイクロコンピューターの時代であり(PCより前の時代と考えてほしい)、筆者はそういったものに大きな喜びを感じていた。一方、この会社の人々にとっては、スーツとネクタイ、巨大なデータセンターがすべてだった。筆者はすぐに「トラブル」というニックネームを付けられた。筆者はまだ子どもだった。

 筆者にとって決定的な瞬間となったのは、同社の経験豊富なプログラマーの1人が筆者を脇に呼んで、「COBOLは人生そのものだ」と説明したことだ。筆者はそのメッセージを心に刻み、自分の人生の中心をCOBOLにしないと決心した。COBOLで何かをプログラミングしたのは、その夏が最後だった。

ラベルは間違っているが、コードはCOBOLだ。おそらくCOBOL-88だろう。提供:David Gewirtz/ZDNET
ラベルは間違っているが、コードはCOBOLだ。おそらくCOBOL-88だろう。
提供:David Gewirtz/ZDNET

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]