Last Update: 2013-11-28

Lambda * Magica

Untyped Lambda Calculus Interpreter for Education

※Mac OSにおける円記号とバックスラッシュについて (About the problem of backslash in Mac OS with japanese keyboard)

まず、UTF-8では円記号 (U+00A5, ¥) とバックスラッシュ (U+005C, \) が別の文字として扱われるようになりました。

Mac OSではデフォルトの文字コードがUTF-8で、日本語配列のキーボードを使用している場合はバックスラッシュキーを 押すとデフォルトでは円記号が入力されるようです。 日本語配列キーボードでは、option(alt)キーを押しながら円記号の書かれているキーを押すことで バックスラッシュが入力できるようです。

なお、英字配列キーボードには「バックスラッシュキー」が存在し、そのままバックスラッシュが入力できます。

プログラム内で円記号を自動的にバックスラッシュに置換してしまうかは検討中です。

[追記] バージョン3.82において、円記号をバックスラッシュとして扱うように修正しました。

Downloads

[NOTE] The whole contents of *.tar.gz and *.zip are currently same.

The latest version 3.82 (2013-11-26)
Linux/Mac OS lambda-magica-3.82.tar.gz
Windows lambda-magica-3.82.zip
Older versions
Version OS File
version 3.81 (2012-12-10) Linux/Mac OS lambda-magica-3.81.tar.gz
Windows lambda-magica-3.81.zip
version 3.80 (2012-12-06) Linux/Mac OS lambda-magica-3.80.tar.gz
Windows lambda-magica-3.80.zip
version 3.72 (2012-12-04) Linux/Mac OS lambda-magica-3.72.tar.gz
Windows lambda-magica-3.72.zip
version 3.71 (2012-11-29) Linux/Mac OS lambda-magica-3.71.tar.gz
Windows lambda-magica-3.71.zip
version 3.70 (2012-11-26) Linux/Mac OS lambda-magica-3.70.tar.gz
Windows lambda-magica-3.70.zip
version 3.60 (2012-11-23) Linux/Mac OS lambda-magica-3.60.tar.gz
Windows lambda-magica-3.60.zip
version 3.50 (2012-11-21) Linux/Mac OS lambda-magica-3.50.tar.gz
Windows lambda-magica-3.50.zip
version 3.00 (2012-11-15) Linux/Mac OS lambda-magica-3.00.tar.gz
Windows lambda-magica-3.00.zip
Install/Run (Linux)
wget http://www.ueda.info.waseda.ac.jp/~shinobu/lambda-magica/lambda-magica-3.82.tar.gz
tar xvzf lambda-magica-3.82.tar.gz
cd lambda-magica
./run.sh

Source Code

GitHub Repository: https://github.com/YuukiARIA/LambdaMagica

Shortcut Keys

ctrl + + magnify font size
ctrl + - minify font size
ctrl + 0 default font size
shift + enter step backward (version >= 3.71)

Screen Shots

  1. Input field (with histories by up/down keys)
  2. Output area
  3. System message area
  4. Enable auto-reduction if checked
  5. Print steps in auto-reduction if checked
  6. Number of continuation steps
  7. Resume auto-reduction when execution is suspended
  8. Stop auto-reduction
  9. Enable eta-reduction if checked
  10. Print each step if checked
  11. Print beta/eta character if checked (the character may not be displayed correct depending on selected font)
  12. Limit each output line upto 80 characters
  13. Show data as a natural number and/or boolean value if possible
  14. Generate LaTeX math-mode source
  15. Clear output
  16. Clear all currently defined macros

Redex selection view.

All beta/eta-redexes (and macro expansion) are enumerated in here.

The redexes colored red and blue represent beta-redexes. And similarly yellows are eta-redexes, greens are macro expansion.

Reduction graph (experimental).

Input lambda expression and click start to initiate state search.

The graph is dynamically constructed, layouted, and drawn.

Any macros contained in the input lambda term are expanded recursively before starting. The reduction search will not begin if undefined macros are contained in the input.

LaTeX translation example (version >= 3.71)

Chronicle

Version Release Date Descriptions
3.82 November 26, 2013
  • リファクタリング。
  • 字句解析処理において円記号(U+00A5)をバックスラッシュとして扱うように変更。
3.81 December 10, 2012
  • 簡約基の識別が正しくなかった不具合について,マクロ展開に関して直っていなかったのを修正。
  • メニュー項目にマクロ読み込み (load macro) を追加。
  • 簡約グラフ (Reduction Graph) に多重エッジ描画機能を追加。
3.80 December 6, 2012
  • 簡約基の識別が正しくなかった不具合を修正。
  • オートモードにおける連続実行ステップ数を設定できるようにした。
  • グラフパネルの整備とアニメーション機構の最適化。
  • ラムダ状態グラフ探索機能を実装及びGUIモードに統合。
  • 起動時にデッドロックが稀に生じることがある不具合を修正。これに伴って起動時間が長くなった可能性がある。
3.72 December 4, 2012
  • オートモード実行後にオートモードが動かなくなることがある不具合を修正。
  • 誤ったη-簡約(λf.fx → f など)が行われてしまう不具合を修正。
  • 簡約による遷移の矢印記号を、簡約とマクロ展開を区別するように変更。
  • マクロ展開を簡約ステップ数としてカウントしないように変更。
  • LaTeX出力に簡約箇所と遷移記号の区別を反映するようにした。
3.71 November 29, 2012
  • ステップバック機能を追加。
  • LaTeX数式モードで出力する機能を追加。
  • マクロ定義テーブルの行高がフォントサイズに合わせて変わるように修正。
3.70 November 26, 2012
  • η-簡約を実装。
  • 全体的にいくつかの軽微なバグを修正。
  • 全面的なリファクタリング。
3.60 November 23, 2012
  • GUIモードの整備。デフォルトでGUIモードが起動するようにした。
  • フォントサイズを変えられるようにした。
  • 行入力履歴を実装。
  • オートモードにおけるスタックオーバーフローを計算の発散として処理。
3.50 November 21, 2012
  • GUIモードを大まかに実装。CUIモードの基本的な機能はこちらでも大体動くようになった。
  • 簡約基の表示と選択を実装。
  • オート簡約モードを実装。
  • readme改訂。
3.00 November 15, 2012
  • 大幅にメンテナンス。
  • ラムダ抽象における変数を複数並べて書けるようになった。
  • 表示周りや各機能のバグや不十分な部分を実運用に向けて整備。
  • 内部で行うα-変換が上手くいかないことがある問題を修正。
  • readmeを公開向けの文体に修正。
2.40 November 3, 2011
  • :l コマンドでファイルが読み込まれない不具合を修正。
  • 特定の条件下でマクロが展開されず簡約が停止する不具合を修正。
  • システムコマンドの追加。
2.35 November, 2011
  • 最初(バージョン履歴を残し始めたという意味での最初)
  • readmeを書いた。
  • 入力に気を付けないと容易にバグる。

Copyright (C) 2011-2013 Yuuki.S All Rights Reserved.