Risa/Asir

Risa/Asir（りさ・あじーる）は、竹島卓・横山和弘・野呂正行らにより富士通研究所で開発されたオープンソースの計算機代数システムである。数式処理エンジン Risa (Research Instrument for Symbolic Algebra; 記号代数のための研究道具)とインターフェイス実装 Asir からなる。
2000年以降、オリジナルを安定版 (STABLE) とし、開発版 (HEAD) は野呂正行の転出先である神戸大学へ中心を移し、OpenXM contrib2 として OpenXM コミッターによって開発されている(Asir2000 神戸版)。Risa/Asir は Windows・macOS及び各種UNIX上で動作し、開発は主にFreeBSD上で行われている。
Risa/Asir の特徴.
主な特徴
インターフェイス実装 Asir.
インターフェイスとしての Asir はコマンド codice_1 によって端末から利用するコマンドライン(CLI)アプリケーションである。Windows版の codice_2 は端末上で asir を呼び出した状態を模したソフトウェアであり、マウス操作を想定した一般的なGUIソフトウェアではない。macOS版では十進BASICのインターフェイスを模した cfep を利用することができる。 
ユーザ言語 Asir の文法.
Risa/Asir のユーザ言語も Asir と呼ばれ、標準入力から対話的に利用することができるほか、これはC言語に似たプログラミング言語としての性格を持っていて、予め Asir で書かれたソースファイルを読み込んで動作させることもできる。
ユーザ言語 Asir はC言語を下敷きとして設計されているために多くの特徴をC言語と共有しているが、プログラム変数が型を持たない・ codice_3 や codice_4 文を持たない・有理数に対する計算が通常のように使用できる・リストが扱えるなどの点で Asir 独自の特徴が見られる。
Asir の扱うオブジェクト.
各オブジェクトは可読な形式での入力からパーサーにより中間言語に変換され、Risa によって各々に応じた型を持つ内部形式に変換される。オブジェクトの型は codice_5・codice_6・codice_7 によって確認できる。
型を持たない変数.
Asir のプログラム変数は必ずASCIIの大文字で始まり、Asir では通常はプログラム変数を宣言することはしない。Asir の各対象はそれぞれ必ず何らかの型を持っているが、プログラム変数にはどんな型を持つ対象でも代入できるという意味で「変数には型が無い」。型を持たない変数を用いることによる豊富な代入操作が可能である。また、函数内に現れる変数は全てデフォルトで局所変数となる。大域変数を利用するには codice_8 の宣言が必要である。
Asir では不定元と変数は明確に区別され、不定元は数学で用いる意味と同じく係数体上超越的な元である。よって不定元に何らかの値を代入するというのは、概念的に不適当であるとともにシステム的にも不正な操作である。しかしながら、変数に対する規約と異なり不定元及び函数名はASCIIの小文字で始まるため、実用上は不定元に対し意図せぬ代入が行われる心配は無用である。