rider.お品書きサクッと書いて公開して、後でちまちま修正する事がママあります。なんじゃこりゃ?と思ったら、数日してから見て貰えると嬉しいです。「スクラムの実践方法を分かりやすくマンガも交えて解説。Studioにおいては、T4テンプレートでソースコードを自動生成したり、IL命令からアセンブリを動的に自動生成したりする、コードでコードを生成して利用する技法の事です。動的生成を行うと、人力で延々と似たようなコードを書かざるを得ない状況を自動処理する事が出来るため、適切に使えば強力な開発技法となります。似たような、しかし厳密には異なるクラスを大量に生成する必要があったとします。System.Reflection.Emitの各クラスを使用すると、実行時に動的にアセンブリを生成する事が出来ます。式木(Expression-Tree)を使用すると、もう少し論理的な整合性のある環境で、動的にコードを生成することが出来ます。.NETでは、本来は、オブジェクト指向設計等の、静的な(コンパイル時に解決可能な)手法でこれを回避すべきですが、不可能なケースも存在します。そのような場合には一考の価値があります。動的生成を行う過程で、ほぼ必ず動的な解析も実施する必要があります。.NETでは「リフレクション」の機構を使用して、コードを動的に解析する事が出来ます。ここではこれらもひっくるめた技術全般を扱います。2013BのLTで登壇した時のスライドです。この懇親会はいわゆる「忘年会」なので、思いっきりネタですが、CLRやILの興味深い面を披露出来たと思います。2013の後半の記事は、IQueryableインターフェイスで実現されるLINQプロバイダーの実装に焦点を置いて解説しています。LINQプロバイダーがLINQクエリを動的に解析(式木を使います)し、外部のデータサービスに論理的な要求を送信する過程は、式木を使う動的生成技術としての参考になると思います。LINQプロバイダーの仕上げメタプログラミングでEXCEL仕様書よ、さらば!「メタプログラミングでEXCEL仕様書よ、さらば!」は、.NETのメタプログラミング技法を使用して、俗にいう「EXCEL仕様書」から如何に脱却するか、を解説したプレゼンです。CLR勉強会で解説しました。2014BのLTで登壇した時のスライドです。この懇親会はいわゆる「忘年会」なので、思いっきりネタですが、CLRやILの興味深い面を披露出来たと思います。LTで、ILについて超高速プレゼンした時の物です。スライドにはスタックマシンの解説が(ほんの少しだけ)載っています。あとはかなり無理ゲーなライブデモを行いました。GitHubにコードが上げてあるので参考にどうぞ。Studioのコンパイラ基盤である「Roslyn」を使って、C#のスクリプト実行環境を、きわめて簡単に実現しようという解説です。CLR勉強会の派生勉強会での、ディスカッションのまとめです。小規模で開催しました。ILの基礎と式木の基礎の話を、参加者全員でディスカッションして理解を深めた話です。3.5での式木サポートで足りない部分をどうやって補うのか、を考えたネタです。NGK2015Bで登壇した際のスライドと、後で改めて詳しく解説したものです。中間言語)についてのワークショップ形式の勉強会の資料です。初回と仕切り直しの計2回実施しました。詳細は各ページを参照して下さい。以下のスライドは仕切り直しの版です。1.0が公開された記念に、coreclrの実装に自分で考えた新しいOpCodeを加える方法について解説しました。2016にて登壇して発表しました。2016も絡めた記事はこちらNespのコード生成Lisp-likeな関数型プログラミング言語を.NET上で実装した話です。NespのパーザーからExpressionクラスを使用してコードを生成する際の型推論の問題についての考察を発表しました。IL2CIL2Cをフルスクラッチで設計していくビデオシリーズです。#6-4で、一番ミニマムなIL2Cが出来ました。非常に限定されたILしかサポートしていませんが、このシリーズでリフレクションの使い方・ILについての洞察・C言語によるソースコードとの整合性・極限までコンパクトなコード生成を行うための考慮点など、非常に雑多でDeepなメタプログラミングの技術を一から紹介します。コメントデータの処理方法の詳細はこちらをご覧ください。WordPress%d人のブロガーが「いいね」をつけました。