0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【整理】Cargryの用語集

0
Last updated at Posted at 2026-08-27

純粋関数型システム言語Cargryを開発しています


Cargryの仕様を決めていくにつれ、定義すべき言葉も増え、一度整理してみようと思い、この記事に用語集としてまとめました

Cargryを知らない方は過去の記事をご覧ください
https://qiita.com/compalog/items/47b35d2e4ebe102f81d2

用語

Cargryの用語です

Cargry

言語そのもの。基本的に「カルグライ」と呼ぶが、綴りから読めると判断できる呼び方であれば良い

CRM

「Cargry Resource Management Rules」の略。Cargryのメモリ管理ルール。管理モデルは「独占モデル」

CrIR

「Cargry Intermediate Representation」のこと。基本的に「クリア」や「クライア」と呼ぶが、綴りから読めると判断できる呼び方であれば良い。ソースコードからCranelift / LLVMへ変換する途中の中間表現

Lewekk

Cargryの字句解析器のコードネーム

Popdack

Cargryの構文解析器のコードネーム

Actoa

Cargryの型推論器のコードネーム

純粋スコープ

関数が純粋関数である時、その関数のスコープを「純粋スコープ」という

副作用スコープ

副作用ハンドラ内の、関数のスコープを「副作用スコープ」という

メモリ上に配置された実体のこと。構造体によって定義される

参照

特定の値を指し示すこと、またその変数

独占

変数を宣言、及び束縛後のコードで、その値や参照が他の変数にも束縛されない状態のこと

独占者

値を独占している変数のこと

嫌われ者

その値の参照が存在しない独占者、または値のこと。必ず、一時的な値は嫌われ者となり、変数は独占者になる時と、嫌われ者になる時が交互に現れる

インドア派 / アウトドア派

構造体の種別を表す

インドア派

スコープの返り値にできない構造体のこと。「-の構造体」と言う。構造体名の終端に感嘆符!が要求される。フィールドに参照をもつ構造体

アウトドア派

スコープの返り値にできる構造体のこと。「-の構造体」と言う。すべてのフィールドが値である構造体

破棄

メモリを解放すること

DIP

「Drop In Pure」の略。Cargryの最適化に関わる。純粋スコープの終端で、指定した引数を破棄する仕組み。CRMでは、値が破棄される位置はスコープの終端だが、DIPにより早期の破棄が可能である

SIE

「Swap In Effect」の略。Cargryの最適化に関わる。副作用スコープ内で、指定した引数を用いての再代入を許可する仕組み

消失者

SIEによって、使用できなくなる嫌われ者のこと

感嘆符!呼び出し

ある関数をDIP / SIE最適化で呼び出すこと。最適化される関数のみ可能である

ルールの定義

CRM、DIP、SIEについての定義

CRM

  • あるスコープにおいて、変数は値、または参照を独占する
  • 値が破棄されるまで、その値の参照をとることができる
  • 値が作られたスコープの終端で、その値が破棄される
  • 関数の引数は必ず参照で、返り値はアウトドア派の構造体の値のみである

DIP

  • ある関数が、感嘆符呼び出しされること
  • 関数のDIP / SIE最適化が適用される引数には、嫌われ者が渡されていなければならない
  • 関数呼び出し側のスコープ内で、関数呼び出し後、嫌われ者が一度も使われていないこと

SIE

  • ある関数が、副作用として感嘆符呼び出しされること
  • 関数のDIP / SIE最適化が適用される引数には、嫌われ者または消失者が渡されていなければならない
  • 関数呼び出し側のスコープで、関数呼び出し後、消失者が一度も使われていないこと

終わりに

最後まで読んでくださり、ありがとうございました。少しでもCargryの世界を理解していただけたら幸いです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?