SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Hello !
Intermediate Language
MGK 三重合同懇親会 2015/03/21
Center CLR Kouji Matsui (@kekyo2)
いつもながら
テキトーな準備不足感でアレ
そこのドトールで書きました
自己紹介
 Center CLRという、名古屋のコミュニティをやってます。
 名前の通り、.NETCLRのコア技術とその周辺の勉強会がメイ
ンです。
 会社やってます。
 現在はアーキで、おおざっぱにシステム全体からスクラムマ
スターとかいろいろやってます。
 認定スクラムマスターです。
Intermediate
Languageとは
 MSIL、.NETの中核を支える技術
 JVMとCLRは思想が違うんですが、ILだけで見ると似ていると
ころが多いため、
「ぶっちゃけ、Javaのバイトコードの.NET版」
 とか言われたりしますが、多分中の人が聞くと怒ると思いま
す(CLRは仮想マシンじゃない、とか)。
ILの構造
 JVMもそうですが、CLRも仮想的なCPUを定義しています。
 この仮想CPUのアーキテクチャは、俗に「スタックマシン」
と呼ばれています。
 計算に必要な値を、一旦「スタック」に入れて、計算し、結
果もスタックに入れるから、です。
 C = A + B B
A
Push
スタック
ILの構造
 JVMもそうですが、CLRも仮想的なCPUを定義しています。
 この仮想CPUのアーキテクチャは、俗に「スタックマシン」
と呼ばれています。
 計算に必要な値を、一旦「スタック」に入れて、計算し、結
果もスタックに入れるから、です。
 C = A + B B
A
Pop
スタック
仮想CPU
ILの構造
 JVMもそうですが、CLRも仮想的なCPUを定義しています。
 この仮想CPUのアーキテクチャは、俗に「スタックマシン」
と呼ばれています。
 計算に必要な値を、一旦「スタック」に入れて、計算し、結
果もスタックに入れるから、です。
 C = A + B
C
スタック
仮想CPU
では早速  あとはデモで(ガクブル)
ご静聴
ありがとうご
ざいました
 本日のネタは、ブログとGitHubで公開します。
 http://www.kekyo.net/
 http://github.com/kekyo
 Center CLRの第三回勉強会、企画中です。近日中に公開しま
す。エントリーはDoorKeeperでよろしくお願いします。
 http://centerclr.net/
 http://centerclr.doorkeeper.jp/

Más contenido relacionado

La actualidad más candente

Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
Kazuhide Maruyama
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
 

La actualidad más candente (20)

Thread affinity and CPS
Thread affinity and CPSThread affinity and CPS
Thread affinity and CPS
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
continuatioN Linking
continuatioN LinkingcontinuatioN Linking
continuatioN Linking
 
Xtext 紹介
Xtext 紹介Xtext 紹介
Xtext 紹介
 
この実装には問題がある!
この実装には問題がある!この実装には問題がある!
この実装には問題がある!
 
TypeScript超入門
TypeScript超入門TypeScript超入門
TypeScript超入門
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動
 
TypeScriptはいいぞ
TypeScriptはいいぞTypeScriptはいいぞ
TypeScriptはいいぞ
 
Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)Typescriptの中のこと(浅め)
Typescriptの中のこと(浅め)
 
IDEALIZE YOU
IDEALIZE YOUIDEALIZE YOU
IDEALIZE YOU
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
WordPress on Movable Type
WordPress on Movable TypeWordPress on Movable Type
WordPress on Movable Type
 
Lt 20130302 1
Lt 20130302 1Lt 20130302 1
Lt 20130302 1
 
モデルベースソフトウェア開発
モデルベースソフトウェア開発モデルベースソフトウェア開発
モデルベースソフトウェア開発
 
Intelli code
Intelli codeIntelli code
Intelli code
 
WebStormでできること
WebStormでできることWebStormでできること
WebStormでできること
 
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 20174 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
4 Colors Othello’s Algorithm @仙台 IT 文化祭 2017
 
広がる .Net
広がる .Net広がる .Net
広がる .Net
 

Más de Kouji Matsui

Más de Kouji Matsui (20)

Making archive IL2C #6-55 dotnet600 2018
Making archive IL2C #6-55 dotnet600 2018Making archive IL2C #6-55 dotnet600 2018
Making archive IL2C #6-55 dotnet600 2018
 
Matrix signal controller and BrainPad overview
Matrix signal controller and BrainPad overviewMatrix signal controller and BrainPad overview
Matrix signal controller and BrainPad overview
 
Fun with BrainPad
Fun with BrainPadFun with BrainPad
Fun with BrainPad
 
What's Functional?
What's Functional?What's Functional?
What's Functional?
 
Pitfall for WioLTE
Pitfall for WioLTEPitfall for WioLTE
Pitfall for WioLTE
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculator
 
Write common, run anywhere
Write common, run anywhereWrite common, run anywhere
Write common, run anywhere
 
Locality of Reference
Locality of ReferenceLocality of Reference
Locality of Reference
 
You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.
 
How to meets Async and Task
How to meets Async and TaskHow to meets Async and Task
How to meets Async and Task
 
Beachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITBeachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JIT
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basics
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
Final LINQ Extensions II
Final LINQ Extensions IIFinal LINQ Extensions II
Final LINQ Extensions II
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ Extensions
 
ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級
 
抽象太郎ものがたり そして伝説へ
抽象太郎ものがたり そして伝説へ抽象太郎ものがたり そして伝説へ
抽象太郎ものがたり そして伝説へ
 
プロ生ちゃんをひろっちゃう!
プロ生ちゃんをひろっちゃう!プロ生ちゃんをひろっちゃう!
プロ生ちゃんをひろっちゃう!
 

Hello! intermediate language