J (プログラミング言語)

Jは、1989年ケネス・アイバーソンによって開発されたプログラミング言語です。APLの後継として提案され、正式名称はアルファベット1文字の「J」ですが、一般には「J言語」と呼ばれています。APLは数式処理、特に配列操作に優れていましたが、特殊文字の使用により可読性が低く、環境構築が煩雑でした。Jは、APLの優れた点を継承しつつ、ASCII文字のみで記述できるように設計されました。

J言語の概要



J言語は、関数型プログラミング言語であるFP言語とFL言語の影響を受けています。これらの言語はAPLの影響を受けており、J言語の設計にも反映されています。APLにあった「作用子」による演算子の合成機能は、J言語ではさらに拡張・強化されました。これにより、APLのような記法上の問題は解消されましたが、一方で変数と演算子の区別がつきにくくなり、可読性が低下したという指摘もあります。例えば、APLでは「𝜄i」と記述するものが、Jでは「i. i」と表記されます。

データ型と記法



J言語は、整数浮動小数点数文字列だけでなく、有理数複素数など、他の言語にはあまり見られないデータ型も扱えます。数値の表記には、任意の底(基数)での表記(n進法)も可能です。以下に、J言語におけるデータ型と直値の表記について説明します。

整数


整数の表記は、他の言語と同様ですが、負の数を表す際にはハイフンマイナスではなく、ローライン(_)を使用します。また、単体のハイフンマイナスは「無限」を意味します。

浮動小数点数


浮動小数点数の表記も、基本的には他の言語と同じです。ただし、J言語ではピリオド(.)が演算子に影響を与えるため、「.5」のような表記はできません。指数表示は「e」を使用します(例:1.2e3 → 1200)。

有理数


有理数は、分子をrで分母と繋げて記述します(例:2r3 → 2/3)。

複素数


複素数は、実部と虚部をjで繋げて表記します。また、絶対値と偏角(度数またはラジアン)を用いた表記も可能です。

n進法


任意の基数nでのn進法表記は、「基数b数」で表します。基数には小数点も使用できます。

演算子



J言語は、APLの特殊文字をASCIIコードの組み合わせで表現するため、非常に多くの演算子を持ちます。コロン(:)やピリオド(.)を付加することで、異なる演算子として扱われます。また、演算子を前置記法と中置記法で使い分けることによって、意味が大きく変化します。演算子は、通常は算術演算子として扱われますが、被演算子が1または0の場合は論理演算として扱われます。

J言語における計算順序は、APLと同様に右結合です。例えば、「8 - 5 - 9」は「8 - (5 - 9)」と解釈され、結果は12となります。

演算子の合成



J言語では、複数の演算子を合成して使用できます。2つの演算子を合成する規則を「フック」、3つの場合は「フォーク」、4つ以上の場合は「トレイン」と呼びます。これらの規則により、複雑な処理を簡潔に記述できます。

まとめ



J言語は、APLの後継として開発され、配列処理に優れる一方で、独特な記法や豊富な演算子の存在から、学習コストが高い側面も持ちます。しかし、その強力な機能は、特定の分野において非常に有効です。

外部リンク



* Jsoftware - J言語メインサイト (英語)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。