M.Hiroi's Home Page

Julia Language Programming

お気楽 Julia プログラミング超入門

[ Home | Light ]

WHAT'S NEW


CONTENTS

お気楽 Julia プログラミング超入門のフォントを Web フォント (Noto Sans JP, Noto Sans Mono) に変更し、印刷用の CSS を追加しました。Web ブラウザの印刷機能を使って PDF に変換することもできます。表示が崩れるときはフォント Noto Sans Mono CJK JP をインストールしてください。


Julia の基礎知識

●線形代数編

●番外編


簡単なプログラム

●Puzzle DE Julia!!


お気楽 Julia Plots 超入門


はじめに

Julia (ジュリア) は科学技術計算向きのオープンソース (MIT License) なプログラミング言語です。参考 URL 4 によると、『一般的なプログラミングから高水準の科学計算処理まで対処するよう設計された高水準言語及び動的プログラミング言語である。』 とのことです。

Julia は LLVM をベースにした JIT (Just-In-Time) コンパイラを搭載することで、ネイティブなコードにコンパイルするプログラミング言語にせまる実行速度を達成しています。JIT を使った動的なプログラミング言語では Node.js (JavaScript) も速いのですが、Julia はそれを上回る速さのようです。これはあとで試してみましょう。

Julia の関数は CLOS (Common Lisp Object System) の総称関数と同様に、引数のデータ型 (複数ある場合はそれぞれのデータ型) により呼び出される処理が決まります。これを「多重ディスパッチ」といいます。CLOS 以外で多重ディスパッチを採用している (動的な) 言語を M.Hiroi は知らなかったので、Julia にはとても興味を持っています。このほかにも、行列の演算処理、関数型言語の機能 (無名関数や高階関数など)、Lisp 風のマクロなど、興味深い機能がたくさんあります。

Julia は 2018 年 8 月にバージョン 1.0 がリリースされました。今後は Julia 1.0 に対応したプログラムが増えていくと思われます。本ページでは簡単なプログラムを作りながら、Julia 1.0 の基本を勉強していきたいと思っております。なお、本ページは M.Hiroi の「覚え書」にすぎません。なにぶんにも初心者が作るページなので、勘違いや間違いがあると思います。何かお気づきの点がありましたら、メールでご指摘いただけると助かります。たいしたことはできませんが、よろしければお付き合いくださいませ。

●ダウンロード

Julia は次のサイトからダウンロードできます。

今まで Julia のインストールは、公式サイトからインストーラーをダウンロードする方法が一般的でしたが、現在はバージョン管理が容易な juliaup を使用する方法が推奨されています。juliaup を使うと、Julia のインストールやアップデートをコマンド一つで簡単に行うことができます。インストールは以下のコマンドを実行するだけです。

これで Juliaup と最新の julia をインストールすることができます。juliaup の主なコマンドを以下に示します。

juliaup status            現在インストールされているバージョンとデフォルト設定を確認する
juliaup list              利用可能なJuliaのバージョン(チャンネル)一覧を表示する
juliaup add <version>     特定のバージョン(例:lts や 1.10)を追加インストールする
juliaup default <version> 既定で使用するJuliaのバージョンを設定する
juliaup update            インストール済みの全バージョンを最新に更新する

ちなみに、現在 (2026 年 3 月時点) の最新バージョンは次の通りです。

●Julia の対話モード

Julia の基本を学ぶのであれば、Lisp / Scheme の REPL (read eval print loop) のような対話モードがあると便利です。Python にも対話モードがありますし、Ruby には irb (interactive ruby) というツールがあります。Julia の場合、プログラムを実行するコマンド julia をコマンドプロンプトで起動すると、次のようなプロンプトが表示されて入力待ちになります。

$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.12.5 (2026-02-09)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org release
|__/                   |

julia>

これで REPL のようにプログラムを入力して実行することができます。終了する場合は CTRL-D を入力する、または関数 exit() を実行してください。

●簡単なベンチマーク

さて、肝心な Julia の実行速度ですが、いつものように「たらいまわし関数」を使って調べてみました。

リスト : たらいまわし関数 (tarai.jl)

function tak(x, y, z)
  if x <= y
    z
  else
    tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y))
  end
end

# 時間計測
@time(tak(22, 11, 0))

それでは実行結果を示します。tak(22, 11, 0) を計算しました。使用した Julia のバージョンは 1.12.5 です。プログラムは Ubunts 24.04 (WSL2) で実行しました。

表 : tak(22, 11, 0) の結果
処理系
Ruby (ver 4.0.0)13.77
Python (ver 3.12.3)13.48
Lua (ver 5.4.6)10.58
Gauche (ver 0.9.15)10.19
ocamlc (ver 4.14.1)6.43
SBCL (ver 2.2.9)3.03
SBCL (最適化)0.88
Julia (ver 1.12.5)0.87
ocamlopt (ver 4.13.1)0.75
GCC -O2 (ver 13.3.0)0.59

Julia は Python や Ruby とは次元の異なる速さで、ネイティブコードにコンパイルするプログラミング言語に匹敵する結果になりました。この結果には M.Hiroi も大変驚きました。興味のある方はいろいろ試してみてください。

●Google Colaboratory

プログラミング言語によっては、ブラウザ上で手軽に試せる実行環境 (playground) が用意されているものがあります。Julia にも playground が複数ありますが、そのうちの一つに Google Colaboratory (通称 : Colab) があります。Colab は Google が提供する無料の Python 実行環境で有名ですが、2025 年 3 月より Julia を公式にサポートするようになりました。Google アカウントとブラウザ (Chrome など) があれば、すぐに Julia のプログラムを実行することができます。

Colab は GPU / TPU を無料で利用できるので、AI やディープラーニングのほうに目が行きがちですが、Plots, DataFrames, CSV など便利なライブラリもプリインストールされているので、using するだけで簡単に利用することができます。セルで次のコードを実行すると、プリインストール済みのライブラリが表示されます。

> import Pkg
  Pkg.status()

*** Status `~/.julia/environments/v1.11/Project.toml`
      [79e6a3ab] Adapt v4.4.0
      [336ed68f] CSV v0.10.15
      [a93c6f00] DataFrames v1.8.1
      [7073ff75] IJulia v1.33.0
      [b2108857] Lux v1.29.3
      [ee78f7c6] Makie v0.24.8
      [91a5bcdd] Plots v1.41.4
      [3c362404] Reactant v0.2.198

なお、Colab の無料版には使用に制限がありますが、それを緩和した有料版も用意されています。学習目的で Colab を利用するのであれば、無料版の機能で十分なように思います。

Colab の基本的な使い方は簡単です。

  1. ノートブックの作成
  2. ノートブックの設定変更
  3. 基本操作

利用できる Julia のバージョンは、セルで VERSION または versioninfo() を実行すると、確認することができます。

> VERSION

***  v"1.11.5"

2026 年 3 月時点で、利用できる Julia のバージョンは 1.11.5 でした。

●パッケージの管理

Julia のパッケージ管理は、標準ライブラリの Pkg.jl を使用して行います。REPL で ] キーを押して「パッケージモード」に入るのが最も一般的な操作方法です。パッケージモードの基本的な操作を以下に示します。

プログラムの中でパッケージを呼び出すには、主に 2 つの方法があります。

  1. using パッケージ名:
    パッケージ内の関数をそのまま名前で呼び出せるようになります (例: using Plots; plot(x, y))
  2. import パッケージ名:
    関数を呼び出す際に パッケージ名.関数名() と記述する必要があります。名前の衝突を避けたい場合に便利です

それでは簡単な例として、グラフ描画用パッケージ Plots.jl をインストールしてみましょう。パッケージモードで次のコマンドを実行します。

(@v1.12) pkg> add Plots

Plots はけっこう大きなパッケージなので、インストールするのにちょっと時間がかかります。st で状態を表示すると、M.Hiroi の環境では次のように表示されます。

(@v1.12) pkg> st
Status `~/.julia/environments/v1.12/Project.toml`
  [91a5bcdd] Plots v1.41.6

インストールが終了したら、Backspace または Ctrl + C を押してください。通常の julia> プロンプトに戻ります

それでは実際に試してみましょう。REPL で次のコードを実行してください。

julia> using Plots

julia> plot(sin)

julia>

これでサインカーブが描画されます。

サインカーブ


参考文献, URL

  1. The Julia Language, (本家)
  2. Julia 1.12 Documentation, (本家)
  3. Learn X in Y minutes, (英語)
  4. Julia (プログラミング言語) - Wikipedia

『お気楽 Julia プログラミング超入門』の著作権は筆者「広井誠 (Makoto Hiroi)」が保持します。無断使用や無断転載は禁止いたします。『お気楽 Julia プログラミング超入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。

ただし、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。

Copyright (C) 2016-2026 Makoto Hiroi
All rights reserved.

[ Home | Light ]