Начало работы
Установка Julia проста, независимо от того, используете ли вы предварительно скомпилированные двоичные файлы или компилируете из исходного кода. Скачайте и установите Julia, следуя инструкциям на странице https://julialang.org/downloads/.
Самый простой способ изучить и поэкспериментировать с Julia — запустить интерактивную сессию (также известную как цикл чтения-оценки-печати или «repl») двойным щелчком по исполняемому файлу Julia или выполнением julia из командной строки:
$ julia
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: https://docs.julialang.org
_ _ _| |_ __ _ | Type "?help" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.5.0-dev+2440 (2016-02-01 02:22 UTC)
_/ |\__'_|_|_|\__'_| | Commit 2bb94d6 (11 days old master)
|__/ | x86_64-apple-darwin13.1.0
julia> 1 + 2
3
julia> ans
3
Для выхода из интерактивной сессии введите ^D — клавишу управления вместе с клавишей d или введите quit(). При запуске в интерактивном режиме julia отображает баннер и запрашивает ввод пользователя. После ввода полного выражения, такого как 1 + 2, и нажатия клавиши Enter, интерактивная сессия оценивает выражение и отображает его значение. Если выражение вводится в интерактивную сессию с заключительной точкой с запятой, его значение не отображается. Переменная ans привязана к значению последнего вычисленного выражения, отображается оно или нет. Переменная ans привязана только в интерактивных сессиях, а не при запуске кода Julia другими способами.
Для оценки выражений, записанных в файле исходного кода file.jl, выполните include("file.jl").
Чтобы выполнить код в файле в неинтерактивном режиме, вы можете указать его в качестве первого аргумента для команды julia:
$ julia script.jl arg1 arg2...
Как показывает пример, следующие аргументы командной строки для julia воспринимаются как аргументы командной строки для программы script.jl, передаваемые в глобальной константе ARGS. Имя самого скрипта передается в глобальную переменную PROGRAM_FILE. Обратите внимание, что ARGS также устанавливается, когда код скрипта предоставляется с помощью опции -e в командной строке (см. вывод справки 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 можно запустить в параллельном режиме с помощью опций -p или --machinefile. -p n запустит дополнительные n рабочих процессов, в то время как --machinefile file запустит рабочий процесс для каждой строки в файле file. Машины, определённые в file , должны быть доступны через бесклавиатурный ssh вход, с установленной Julia в том же месте, что и на текущем узле. Каждое определение машины имеет вид [count*][user@]host[:port] [bind_addr[:port]] . user по умолчанию — текущий пользователь, port — стандартный порт ssh. count — количество рабочих процессов, запускаемых на узле, по умолчанию 1. Необязательная опция bind-to bind_addr[:port] указывает IP-адрес и порт, которые другие рабочие процессы должны использовать для подключения к этому рабочему процессу.
Если у вас есть код, который вы хотите выполнять всякий раз, когда запускается Julia, вы можете поместить его в ~/.juliarc.jl:
$ echo 'println("Greetings! 你好! 안녕하세요?")' > ~/.juliarc.jl
$ julia
Greetings! 你好! 안녕하세요?
...
Существует множество способов выполнения кода Julia и предоставления опций, аналогичных тем, которые доступны для программ perl и ruby:
julia [switches] -- [programfile] [args...]
-v, --version Display version information
-h, --help Print this message
-J, --sysimage <file> Start up with the given system image file
--precompiled={yes|no} Use precompiled code from system image if available
--compilecache={yes|no} Enable/disable incremental precompilation of modules
-H, --home <dir> Set location of `julia` executable
--startup-file={yes|no} Load ~/.juliarc.jl
--handle-signals={yes|no} Enable or disable Julia's default signal handlers
-e, --eval <expr> Evaluate <expr>
-E, --print <expr> Evaluate and show <expr>
-L, --load <file> Load <file> immediately on all processors
-p, --procs {N|auto} Integer value N launches N additional local worker processes
"auto" launches as many workers as the number of local cores
--machinefile <file> Run processes on hosts listed in <file>
-i Interactive mode; REPL runs and isinteractive() is true
-q, --quiet Quiet startup (no banner)
--color={yes|no} Enable or disable color text
--history-file={yes|no} Load or save history
--compile={yes|no|all|min}Enable or disable JIT compiler, or request exhaustive compilation
-C, --cpu-target <target> Limit usage of cpu features up to <target>
-O, --optimize={0,1,2,3} Set the optimization level (default is 2 if unspecified or 3 if specified as -O)
-g, -g <level> Enable / Set the level of debug info generation (default is 1 if unspecified or 2 if specified as -g)
--inline={yes|no} Control whether inlining is permitted (overrides functions declared as @inline)
--check-bounds={yes|no} Emit bounds checks always or never (ignoring declarations)
--math-mode={ieee,fast} Disallow or enable unsafe floating point optimizations (overrides @fastmath declaration)
--depwarn={yes|no|error} Enable or disable syntax and method deprecation warnings ("error" turns warnings into errors)
--output-o name Generate an object file (including system image data)
--output-ji name Generate a system image data file (.ji)
--output-bc name Generate LLVM bitcode (.bc)
--output-incremental=no Generate an incremental output file (rather than complete)
--code-coverage={none|user|all}, --code-coverage
Count executions of source lines (omitting setting is equivalent to "user")
--track-allocation={none|user|all}, --track-allocation
Count bytes allocated by each source line
Ресурсы
В дополнение к этому руководству существуют различные другие ресурсы, которые могут помочь новым пользователям начать работу с Julia:
© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.6/manual/getting-started/