はじめよう
Julia のインストールは、コンパイル済みのバイナリを使用するか、ソースからコンパイルするかにかかわらず、簡単です。 [https://julialang.org/downloads/]の指示に従ってジュリアをダウンロードしてインストールしてください。
Julia を学習して実験する最も簡単な方法は、Julia の実行ファイルをダブルクリックするか、コマンド ラインから 「julia」を実行して対話型セッション (read-eval-print loop すなわち "REPL" とも呼ばれます) を開始することです:
$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.3.0 (2019-11-26)
_/ |\__'_|_|_|\__'_| |
|__/ |
julia> 1 + 2
3
julia> ans
3
対話型セッションを終了するには、「Ctrl-D」と入力するか (コントロール/^
キーを d
キーと一緒に押す)、 exit()
と入力します。対話モードで実行すると、julia
はプロンプトを表示し、入力を求めます。 ユーザーが 1 + 2
などの完全な式を入力し、enter キーが押されると、対話型セッションは式を評価し、その値を示します。後ろにセミコロンをつけて式を入力した場合には、評価結果は表示されません。変数 ans
は、表示されているかどうかにかかわらず、最後に評価された式の値にバインドされます。ans
変数は対話型セッションでのみバインドされ、Julia コードが他の方法で実行される場合には使えません。
ソース ファイル file.jl
に書かれた式を評価するには、`include("file.jl") と書きます。
ファイル内のコードを非対話的に実行するには、julia
コマンドの最初の引数としてファイル名を指定します:
$ julia script.jl arg1 arg2...
この例が示すように、julia
に対する次のコマンドライン引数は、グローバル定数 ARGS
に渡されるプログラム script.jl
に対するコマンドライン引数として解釈されます。スクリプト自体の名前は、グローバル PROGRAM_FILE
として渡されます。「ARGS」は、コマンドラインの-e
オプションを使用して Julia 式が指定されている場合にも設定されますが(以下の「julia」ヘルプ出力を参照)、PROGRAM_FILE
は空になります。たとえば、スクリプトに与えられた引数を表示するだけの場合は、次の操作を行います:
$ julia -e 'println(PROGRAM_FILE); for x in ARGS; println(x); end' foo bar
foo
bar
もしくは、そのコードをスクリプトファイルにして実行することもできます:
$ echo 'println(PROGRAM_FILE); for x in ARGS; println(x); end' > script.jl
$ julia script.jl foo bar
script.jl
foo
bar
--
区切り文字は、スクリプト ファイルを対象とするコマンド ライン引数を Julia 用の引数から分離するために使用できます:
$ julia --color=yes -O -- foo.jl arg1 arg2..
Julia スクリプトの作成の詳細については、スクリプトの作成も参照してください。
Julia は-p
または --machine-file
オプションを使用して並列モードで起動できます。-p n
は追加で n個の ワーカー プロセスを起動し、--machine-file ファイル
はファイル file
の各行で示された個数のワーカーを起動します file
で定義されたマシンは2つの要求を満たしている必要があります。1. 現在のホストと同じパスにJuliaがインストールされていること、2. パスワードなしの
sshログインでアクセス可能なこと。各マシン定義は、
[count*][user@]host[:port] [bindaddr[:port]] の形式で行います。
userはデフォルトで現在のユーザー、標準の ssh ポートへの
portです。
countはそのノードで起動するワーカーの数で、デフォルトは 1 です。オプションの
bind-to bindaddr[:port]` は、他のワーカーがこのワーカーに接続するために使用する IP アドレスとポートを指定します。
Julia を実行するたびに実行させたい処理は、~/.julia/config/startup.jl
に追記してください:
$ echo 'println("Greetings! 你好! 안녕하세요?")' > ~/.julia/config/startup.jl
$ julia
Greetings! 你好! 안녕하세요?
...
Julia コードの実行時オプションは様々で、perl
プログラムと ruby
プログラムで使用できるものと似ています:
julia [switches] -- [programfile] [args...]
スイッチ | 説明 |
---|---|
-v , --version | バージョン情報の表示 |
-h , --help | コマンドラインオプション(このメッセージ)を表示する |
--project[={<dir>|@.}] | <dir>をホーム プロジェクト/環境として設定します。デフォルトの@.オプションは、Project.toml または JuliaProject.toml ファイルが見つかるまで、親ディレクトリを検索します。 |
-J , --sysimage <file> | 特定のシステム イメージ ファイルを使用して起動 |
-H , --ホーム<dir> | Julia 実行可能ファイルの場所を設定 |
--startup-file ={yes|no} | yesを選択した場合、~/.julia/config/startup.jl を読み込む |
--handle-signals={yes|no} | Juliatのデフォルトのシグナルハンドラを有効または無効にする |
---sysimage-native-code={yes|no} | 使用可能な場合は、システム イメージからネイティブ コードを使用する |
--compiled-modules={yes|no} | モジュールの増分プリコンパイルを有効または無効にする |
-e , --eval <expr> | 式<expr> を評価する |
-E , --print <expr> | 式<expr> を評価し、結果を表示 |
-L , --load <file> | すべてのプロセッサで file を読み込む |
-p , --procs {N|auto} | 整数値 N 個の追加のローカル ワーカー プロセスを起動します。auto は、ローカル CPU スレッド (論理コア) の数と同じ数のワーカーを起動します。 |
--machine-file <file> | <file>にリストされているホストでプロセスを実行する |
-i | インタラクティブモード;REPL が実行される。このとき、isinteractive() の戻り値はtrue となる |
-q , --quiet | 静かなスタートアップ:バナーなし、REPL警告を抑制 |
--banner={yes|no|auto} | スタートアップ バナーを有効または無効にする |
--color={yes|no|auto} | テキストの色を有効または無効にする |
--history-file={yes|no} | 履歴の読み込みまたは保存 |
--depwarn={yes|no|error} | 非推奨の構文とメソッドを使用した際の警告を有効または無効にする (error は警告をエラーに変える) |
--warn-overwrite={yes|no} | メソッドの上書き警告を有効または無効にする |
-C , --cpu-target <target> | 使用するCPU 機能を <target>に制限する。 使用可能なオプションを表示するには <target>にhelp を設定して Juliaを実行してください。 |
-O , --optimiza={0,1,2,3} | 最適化レベルを設定する (不指定の場合はデフォルト レベルが 2、レベルなしで使用する場合は 3) |
-g , -g <level> | デバッグ情報生成のレベルを有効/設定する (指定されていない場合はデフォルトレベルが 1、レベルなしで使用する場合は 2) |
--inline={yes|no} | @inline 宣言のオーバーライドをも含み、インライン化が許可されるかどうかを制御する |
--check-bounds={yes|no} | 境界チェックを常に行うか、常に無視するかの指定。(コード上の宣言は無視されます。) |
--math-mode={ieee,fast} | 安全でない浮動小数点の最適化を許可または有効にする (ここで指定した値によって、@fastmath 宣言は上書きされます ) |
--code-coverage={none|user|all} | ソース行の実行数をカウントする |
--code-coverage | --code-coverage=user を指定するのと等価 |
--track-allocation={none|user|all} | 各ソース行にで割り当てたメモリのバイト数をカウントする |
--track-allocation | --track-allocation=user を指定するのと等価 |
Julia 1.0 では、デフォルトの --project=@.
オプションはGitレポジトリのルートディレクトリからProject.toml
を探すことはしませんでした。 Julia1.1からは、行います。
リソース
新しいユーザーがJuliaを始めるのに役立つ学習リソースのキュレーションリストは、Juliaのメインウェブサイトのlearningページにあります。