歴史語り

どう考えてもASISを完全マスターする時間はないので、発表の構成を考えます。
まず発表全体を見渡すと、他は新技術が目白押しです。メタプログラミングテーマで必須に思えるC++、Dすら無い。それどころかこれから作られる言語まで入ってます。
すると必然的にASISは歴史遺産担当枠ということに。

そもそもASISに深入りするぐらいならどう考えてもCIL覚えたほうが有意義ですのでASIS自体の使用例はシンプルなものでいいのでは?個人的にはIDEの入力補完に使えるような、特定スコープから見える識別子のリストアップみたいなのをやりたいですが、まあそれは置いておいて。最悪、.adsで宣言された関数名をリストアップしてテストコードのテンプレートを吐かせる、みたいな「それgrepでできるよ」でも……。(弱気)

とにかく冒頭5分は歴史に使いますか。

  • 1958年 LISPのマクロ
  • 1972年 C言語のマクロ
  • 1988年 generic.h (Google Code Searchで出てきたもの)
  • 1994年 C++のtemplateを使った素数計算 (買ってて良かった魔導書)
  • 1995年 SWIG
  • 1997年 REBOL
  • 1999年 Adga (twitterでは実に紛らわしいと評判です)
  • 2001年 CIL
  • 2002年 Template HaskellD言語……

SWIGって歴史ありますね……!!

で、ASISはというと、仮タイトルにしてますようにISOになったのが1999年。しかしそれ以前に、どうやらASIS83というのが存在していたようです。

http://www.sigada.org/WG/asiswg/ASIS_Background.html
http://www.sigada.org/WG/asiswg/ASIS-83.html

リンク切れでASIS83の資料が落とせねえええ!!
名前はどー考えてもAda83対応verだからASIS83で、絶対83年より後のはず。WGが1993からだそうですので、とりあえず1993年に挿入。お、FAQにも書いてある。

  • 1958年 LISPのマクロ
  • 1972年 C言語のマクロ
  • 1988年 generic.h
  • 1989年 ASIS was initiated as a STARS activity in 1989FAQに書いてある
  • 1993年 ASIS83
  • 1994年 C++のtemplateを使った素数計算
  • 1995年 SWIG
  • 1997年 REBOL
  • 1999年 Adga、ASIS 95 (ISO/IEC 15291:1999)
  • 2001年 CIL
  • 2002年 Template HaskellD言語……

おお、メタプログラミングの歴史に深く関わる立ち位置っぽいぞ!