始めよう
コンパイル済みのバイナリを使う場合も、ソースからコンパイルする場合も、Juliaのインストールは簡単です。 https://julialang.org/downloads/ の指示に従ってダウンロードとインストールを行いましょう。
Juliaを学習・体験する手っ取り早い方法は対話セッション(read-eval-print loop や "REPL"と呼ばれます)を使ってみることです。 Juliaの実行ファイルをダブルクリックするか、コマンドラインにjulia
と入力してください。
$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.0 (2018-08-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> 1 + 2
3
julia> ans
3
対話セッションを終了するには、CTRL-D
(コントロールキー^
を押しながらd
を押す)か、exit()
を入力してください。 対話モードの時は、julia
のバナーや入力を促すプロンプトが表示されます。 ユーザーが1 + 2
のように式全体を入力してからエンターを打つと、対話セッションでは、式が評価され、その値が表示されます。 対話セッションでは、式に続けてセミコロンを打つと、値は表示されません。 変数ans
には、表示非表示にかかわらず、一番最後に評価された式の値が、束縛されます。 変数ans
が束縛されるのは対話セッション中のみで、他の方法で実行される場合は、束縛されません。
ソースファイルfile.jl
中に書かれた式を評価するには、include("file.jl")
と書きます。
ファイル中のコードを非対話的に実行するには、そのファイルをコマンドjulia
の第1引数として指定します。
$ julia script.jl arg1 arg2...
例からわかるように、julia
に続くコマンドライン引数は、プログラムscript.jl
に対するコマンドライン引数として解釈され、 グローバル定数ARGS
に渡されます。 スクリプトファイル自体の名前は、グローバル変数PROGRAM_FILE
に渡されます。 コマンドラインでJuliaに-e
オプションによって式を指定した場合も、ARGS
は設定されますが、 PROGRAM_FILE
は空になります(後述のjulia
のヘルプを参照)。 例を挙げると、単にスクリプトに与えられた引数を表示するだけなら、このようにできます。
$ 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を並列モードで起動するには、-p
や --machine-file
などのオプションを使います。 -p n
を指定すると、 n
個のワーカープロセスが別途起動しますが、 --machine-₊file file
を指定するとfile
というファイルの各行に対するワーカーが起動します。 file
で定義されている各マシンは、パスワードなしのssh
でログイン可能で、 現在のホストと同じ場所にJuliaがインストールされている必要があります。 各マシンの定義は[count*][user@]host[:port] [bind_addr[:port]]
という形で行われます。 user
のデフォルトは現在のユーザー、port
のデフォルトはsshの標準ポートです。 count
各ノードで生成されるワーカーの数で、デフォルトは1です。 bind-to bind_addr[: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 | このメッセージを表示 |
-J , --sysimage <file> | 指定したシステムイメージファイルを使って開始 |
-H , --home <dir> | julia の実行ファイルの位置を設定 |
--startup-file={yes|no} | ~/.julia/config/startup.jl を読み込む |
--handle-signals={yes|no} | デフォオルトのJulia'のシグナルハンドラーを有効/無効にする |
--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の時 、N個のローカルワーカープロセスを別途起動する; auto の時、ローカルのCPUスレッド(論理コア) の数だけワーカーを起動する |
--machine-file <file> | <file> で列挙されたホスト上で、プロセスを実行する |
-i | 対話モード; REPLが動作し、 関数isinteractive() は真を返す |
-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> | <target>に対して利用できるCPUの特徴を制限する記法。利用可能なオプションを見る場合はhelp に設定する |
-O , --optimize={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のWebサイトの学習ページにあります。