Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Juliaに演算子を追加してみた話ほか

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

 Juliaに演算子を追加してみた話ほか

Julia に演算子を追加する拡張に挑んでみた経験をまとめました。また、Juliaの静的サイトジェネレータである Franklin.jl を拡張し Admonitions (コラムのタイトル的なもの)の編集機能を実装した経験も合わせてまとめました。

Avatar for Yuri Takigawa

Yuri Takigawa

March 21, 2026

More Decks by Yuri Takigawa

Other Decks in Programming

Transcript

  1. 3

  2. WHAT IS JULIA? qJITコンパイル(JUST IN TIME) Øアプリケーションの実⾏直前または実⾏中に、中間⾔語コードを実 ⾏環境のプロセッサに応じた機械語コードにコンパイルする üインタプリタによる逐次実⾏⽅式よりは⾼速であるものの、必要なコードがすべて機械語に変換さ れてメモリ上に展開され、定常状態に到達する(ウォームアップが完了する)まではアプリケーショ

    ンの性能を低下させることがある。(Wiki) üコード実⾏の直前にコンパイルするので、1回⽬の動作が遅い⽋点ある。 qAOTコンパイル ・AOTコンパイルとは実⾏前にソースコードや中間コードをコンパイルする⽅法で ある。 ・JITコンパイルと対⽐して、メモリ消費量がかなり少なく済む。 5
  3. WHAT IS JULIA? • Julia⾃体で基本的な構⽂や機能は定義 • C⾔語で実⾏の枠組み(起動ー初期化ーコンパイ ルー終了)を提供 oGCや並列化もCで実装 •

    LLVM (Low-Level-Virtual-Machine; コンパイラフレーム ワーク)がバック→JITコンパイルにも対応 o Julia⾔語→中間表現→最適化→アセンブリ 6
  4. BUILD gitリポジトリに公式ホームページのアドレスを追加 $ git init $ git config —local.email "⾃分のメアド"

    $ git config —local.name "⾃分の名前" $ git clone "⾃分のチームのリポジトリのアドレス” $ cd 2024-05-Julia $ make -j8 $ make install 7
  5. 構成(概略) 字句規則、構⽂規則 基本機能 他にも usr, deps, etc など ./juliaがある階層 ./

    base/ int.jl operators.jl JuliaSyntax/ kinds.jl tokenize.jl parser.jl src/ julia- parser.scm 13 演算⼦辞書 字句解析 構⽂解析
  6. 使い⽅ !!! Note(Info, Danger, Successなど) 本⽂ !!! 実装したAdmonitionsの種類: Info, Note,

    Warning, Bug, Summary, Success, Failure, Danger, Tip, Question, Example, Quote 21