J (プログラミング言語)
パラダイム |
オブジェクト指向プログラミング、関数型プログラミング、マルチパラダイムプログラミング、配列プログラミング、関数レベルプログラミング、ポイントフリー ![]() |
---|---|
登場時期 | |
開発者 |
ケネス・アイバーソン、ロジャー・ホイ ![]() |
最新リリース | J9.4 / 2023年3月6日[1] |
影響を受けた言語 |
FL、APL ![]() |
ライセンス |
GNU General Public License ![]() |
ウェブサイト | |
拡張子 |
ijs ![]() |
Jはプログラミング言語の一種で、正式名称はアルファベット1文字の「J」だがC言語と同様、「J言語」と一般には呼ばれている。
概要
Jは1989年、APLの提案者でもあるケネス・アイバーソンによりAPLの後継として提案された。APLは数式の表記、特に配列の処理に優れており、多くの計算式を極めて単純に表記できる利点を持っていたが、ギリシャ文字やその他の特殊記号を使用するため、利用にはフォントの設定など特殊な環境の準備が必要があり、可読性の低さもあって普及には至らなかった。
JはAPLの反省をふまえて、APLと同様の計算を通常のASCIIコードのみで使用できるようにした。この際、ジョン・バッカスによるFP言語・FL言語という関数レベルプログラミング言語の影響を受けている(バッカスによるふたつの言語はAPLの影響を受けている)。さらにAPLにあった「作用子」による演算子の合成といった機能が、より拡張強化されている。これらの機能によりAPLのような表記の問題は解消された。しかし、 例えば、APLでは
𝜄i
と表記するのが、Jでは
i. i
となるなど、変数と演算子の区別がつきにくくなり、可読性が落ちている。
データ型と記法(直値)
種類
型
Jのデータ型は他の言語のような整数、浮動小数点数、文字列の他に有理数や複素数などもある。
直値
以上の型の基本的な直値・記法の他、数値は任意の底(基数)nでの表記(n進法)の記法がある。
なお、以下では型と記法の識別を完全に欠いて説明しているので注意。
整数
整数の表記は基本的には他の言語と同じである、しかしJでは負の数はU+002D - hyphen-minusではなくU+005F _ low lineを用いる。さらにU+002D - を単体で使用すると「無限」として処理される。
式 | 評価後の値 |
---|---|
5 - 6 |
_1 (−1)
|
_1 * _ (−1 × ∞) |
__ (∞)
|
浮動小数点数
浮動小数点数の表記も基本的には他の言語と同じである。ただし J では "."(ピリオド)が演算子に大きな影響を与えるため ".5" のような表記(他言語では0.5として処理される)は許されない。数字の間に "e" を入れる指数表示は他言語同様 J でも実装されている(例 1.2e3
→ 1200)。
有理数
有理数は〈分子〉r〈分母〉
と表記する。(例 2r3
→ 2/3を意味する)
複素数
複素数は〈実部〉j〈虚部〉
と表記する。この他にも〈[[絶対値]]〉ad〈度数[[偏角]]〉
・〈絶対値〉ar〈[[ラジアン]]偏角〉
と表記するとそれに対応する複素数を返す。
表記 | 意味 |
---|---|
5j4 |
5 + 4i |
2ad3 |
1.99726j0.104672
|
5ar0.927295 |
3j4
|
n進法
任意の底(基数)nによるn進法での数値は、〈基数〉b〈数〉
という表記する。基底は小数点を含んでもかまわない。
表記 | 意味 |
---|---|
2b101 |
5 |
3b212 |
23 |
16bff |
255 |
0.1b12 |
2.1 |
演算子の種類
JはAPLの特殊文字を全てASCIIコードを組み合わせた演算子として扱うため、膨大な数の演算子を持つ。具体的には演算子の後にコロンやピリオドを加えると別の演算子として扱われる。またAPL同様、演算子を前置記法として使う場合と中置記法として使う場合にかなりはっきりとした意味の違いを持たせている。
一例を以下の表で表す、Jの演算は通常は算術演算子として扱うが、被演算子が1または0の場合は論理演算として扱われる。
演算子 | 前置記法として使用する場合 | 中置記法として使用する場合 |
---|---|---|
+
|
共役複素数を返す。 | 足し算 |
+:
|
2倍にする。 | (論理演算)否定論理和を返す。 |
+.
|
複素数の実数部と虚数部を分離してリストの形式で返す。 | 最大公約数(論理演算の場合は論理和)を返す。 |
*
|
符号(正なら 1、負なら _1 、零なら 0)を返す。
|
かけ算 |
*:
|
2乗にする。 | (論理演算)否定論理積を返す。 |
*.
|
複素数を極座標に変更してリストの形式で返す。 | 最小公倍数(論理演算の場合は論理積)を返す。 |
また J での計算順序は APL と同様に右の演算子が優先される。例えば 8 - 5 - 9
は8 − (5 − 9)であり、12が返される。
演算子の合成
J では演算子を並べることにより、複数の演算子を合成することができる。2つの演算子の合成規則を「フック」、3つの演算子の合成規則を「フォーク」、4つ以上の演算子の合成規則を「トレイン」と呼ぶ。
![]() | この節の加筆が望まれています。 |
脚注
外部リンク
- Jsoftware - J言語メインサイト
「J (programming language)」の例文・使い方・用例・文例
- Jさんに会ったことはありますか
- 私の名はジョン・ダグラスですので頭文字はJ. D.です
- 7はJanuaryseventhと読む
- まもなく当機はJFK国際空港に到着します
- 寄付をしてくださる方はJessie Orbisonまでご連絡のほど、お願いいたします。
- Jackson瓶詰め工場まで、40分間バスに乗車。
- Jackson工場に到着。工場長Otis Cookeによる歓迎の言葉(Cooke氏による工場の歴史の簡単な説明。Cooke氏は見学の案内も担当)
- 工場の食堂にて休憩(Jackson工場で製造・瓶詰めされた飲料の試飲。ほかに軽食を提供)
- Jeb Andersonは現在シドニーにいる。
- 管理カードは、2 月11 日以降ならいつでも供給部のJasonから受け取ることができます。
- Jones社の案件の契約書をお送りいただき、ありがとうございます。
- John AbrahamsとTina Linがアンケートデータの収集担当で、この作業は5 月5 日までに終わるでしょう。
- 同社はまた、当社の元社員であるJacob Ramseyが率いていますが、これは、同社が私たちが作る製品の型に精通しているということを意味しています。
- Super BuyのJoanne Sanchezです。
- 今日は、皆さんをJohn Driscoll展にご案内する予定で、この展覧会は当美術館の30周年を記念して行われているものです。
- CQ、CQ、こちらはKA6J36です。
- Javaにおける説明的プログラミング
- JASマークは様々な商品に付いています。
- JIS規格とは、品質の改善、生産能力の向上などを図る目的で制定された国家規格です。
- JPモルガン社がJPモルガン世界国債指数を発表した。
- J (programming language)のページへのリンク