2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MSILプログラミングスレ

1 :デフォルトの名無しさん:04/09/23 22:43:37
ひたすら手打ちでがんばるスレ

2 :デフォルトの名無しさん:04/09/23 22:52:41
MicroSoft Interpreter Language

3 :デフォルトの名無しさん:04/09/23 22:53:51
いい加減MSILって言い方やめれ。
ISO標準のCILだ。

4 :デフォルトの名無しさん:04/09/23 22:57:50
MicroSoft Itte-yoshi Language

5 :最凶VB厨房:04/09/23 23:00:46
インてリジェンッならングウィッジ

6 :デフォルトの名無しさん:04/09/24 14:38:42
CIL って何の略?

7 :デフォルトの名無しさん:04/09/24 14:41:53
早く誰かHellowolrdの手打ちして

8 :デフォルトの名無しさん:04/09/24 15:00:04
>>7 手打ちって何?

9 :デフォルトの名無しさん:04/09/24 15:04:47
>>8
1に聞け

10 :デフォルトの名無しさん:04/09/24 15:35:36
なんだよ、ニーモニック直うちのことかよ。
それともハンドアセンブルまでやらせるのかよ。

それはそうと、CILって何の略?

11 :デフォルトの名無しさん:04/09/24 15:36:20
>>10
機械語チョクウチ

12 :デフォルトの名無しさん:04/09/24 19:22:55
なんだよ、1 は立て逃げかよ

MSIL (Microsoft Intermediate Language)
CLR (Common Language Runtime)
CIL (Common Intermediate Language)
CLI (Common Lanuage Infrastructure)
FCL (Framework Class Library)

IL のコンパイラの作り方でも説明してくれよ
サンプルだけじゃよくわかんねぇよヽ(`Д´)ノ

13 :デフォルトの名無しさん:04/09/24 19:48:43
MFC(Microsoft Foundation Class)
WFC(Windows Foundation Class)
FCT(Football Club Tokyo)

14 :デフォルトの名無しさん:04/09/24 20:22:01
>>11 Z80しかできねーよ。

15 :デフォルトの名無しさん:04/09/25 02:49:20
class hellworld{
public static void Main(){
System.Console.WriteLine("HELL >>1");
}
}



.class private auto ansi beforefieldinit hellworld
extends [mscorlib]System.Object
{
.method public hidebysig static void Main() cil managed
{
.entrypoint
// コード サイズ 11 (0xb)
.maxstack 1
IL_0000: ldstr "HELL >>1"
IL_0005: call void [mscorlib]System.Console::WriteLine(string)
IL_000a: ret
} // end of method hellworld::Main

.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// コード サイズ 7 (0x7)
.maxstack 1
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
} // end of method hellworld::.ctor

} // end of class hellworld

16 :デフォルトの名無しさん:04/09/25 02:52:28
【Console::WriteLineの実装】

.method public hidebysig static void WriteLine(string 'value') cil managed
{
// コード サイズ 12 (0xc)
.maxstack 8
IL_0000: call class System.IO.TextWriter System.Console::get_Out()
IL_0005: ldarg.0
IL_0006: callvirt instance void System.IO.TextWriter::WriteLine(string)
IL_000b: ret
} // end of method Console::WriteLine

【System.IO.TextWrite】
.method public hidebysig newslot virtual
instance void WriteLine(string 'value') cil managed
{
// コード サイズ 123 (0x7b)
.maxstack 6
.locals (int32 V_0,
int32 V_1,
char[] V_2)
IL_0000: ldarg.1
IL_0001: brtrue.s IL_000a
IL_0003: ldarg.0
IL_0004: callvirt instance void System.IO.TextWriter::WriteLine()
IL_0009: ret
IL_000a: ldarg.1
IL_000b: callvirt instance int32 System.String::get_Length()
IL_0010: stloc.0
IL_0011: ldarg.0
IL_0012: ldfld char[] System.IO.TextWriter::CoreNewLine


17 :デフォルトの名無しさん:04/09/25 10:25:18
IL ディスアセンブラの結果を載せるんじゃなくて、ニーモニック表きぼん

と、言ってみるテスト


18 :デフォルトの名無しさん:04/09/26 19:01:51
>17
Ilasm.exe を使えよ

19 :デフォルトの名無しさん:04/09/28 13:43:16
結局、 >>1 はどこ逝ったのかね

.assembly extern mscorlib {}
.assembly hello {}
.module hello.exe

.class private auto ansi HelloWorld
extends [mscorlib]System.Object
{
  .method public hidebysig static void Main() il managed
  {
    .entrypoint
    .maxstack 8
      ldstr "Hello CIL to 2ch world!"
      call void [mscorlib]System.Console::WriteLine(string)
      ret
  }
}

むしゃくしゃしてサンプルをほとんどそのまま書いた
hello.il って名前で保存して

ilasm /exe hello.il

ってやると、実行可能な hello.exe ができる
あまり反省していない


20 :デフォルトの名無しさん:04/09/29 12:06:36
>>17
http://www.ecma-international.org/publications/standards/Ecma-335.htm

21 :デフォルトの名無しさん:04/09/29 16:10:55
>20
thx
IL のキーワード一覧とか見あたらないから、助かった

最近はMSもおとなしくなったな。ちゃんと標準化団体を通して文句を言われないように
するところとか


22 :デフォルトの名無しさん:04/10/17 17:48:18
結局、死亡スレか
だが、実際、MSIL をちまちま書くよりも、.Net Framework のサンプルにあるように一度
C# あたりで書き直して、CSharp.Compiler を使った方が楽なんだよなぁ


23 :デフォルトの名無しさん:04/10/19 11:19:00
JVMってアセンブラないの?

24 :デフォルトの名無しさん:04/10/19 12:43:25
>23
JVM は Java 以外の言語で動くことは想定していないから、中間コードを必要としない
だから、いったん中間コードで吐いて最適化かけて、ということをしていない

アセンブラがない、っていうのがどういう意味かよくわからないが、Java の コンパイラは
ByteCode を直接出力すればいい。ByteCode のニーモニックについては、自分で
探してや

25 :デフォルトの名無しさん:04/10/19 21:10:19
>>24
最初のパラグラフは何が言いたいのか良くわからんが、
昔は、JavaコンパイラがはくJava Byte Code自体がいまいちだったので、組み込みの世界ではJava Byte Codeの段階で人手で最適化したりした。



26 :デフォルトの名無しさん:04/10/20 14:24:09
>25
>23 って、Java に MSIL に対応するものがないかって意味じゃないのか?
Java は別にCILで言語間を共通化する必要がないから、直接、ByteCode 出してる
だから JVM にとっての MSIL みたいなものはないぞといってるんだが

CLR では、各言語から IL が出た後に、もう一回、最適化かけてるけど、Java は言語に
依存してるから、最初からちゃんと最適化した ByteCode を出す努力してるだろう?
昔はいまいちだったんだろうけど、Sun もがんばって高速化してるわけだし

27 :デフォルトの名無しさん:04/10/20 17:31:04
最適化云々は置いておくとして、JVMのバイトコード用の
アセンブラとかないの?見たことないんだけど。
Sunが許さないのかな。

28 :デフォルトの名無しさん:04/10/20 21:50:20
>27
アセンブラ? 正直何を言っているのかよくわからん
かなり意味がないけど、自分で作ったら?
http://www.apache.org/~tetsuya/jakarta/bcel/manual.html


29 :デフォルトの名無しさん:04/10/21 00:16:56
>>27
バイトコードアセンブラなら2、3種類ぐらいあったと思うけど。

30 :デフォルトの名無しさん:04/10/21 10:39:53
Shujit あたりからJITコンパイラをぱちくるとか
・・・って、Java スレで聞いた方が親身になって教えてくれると思うぞ
よく考えると、ここは彼らの嫌いなM$すれだからな〜

31 :デフォルトの名無しさん:04/10/23 01:16:09
>>26
なにを言っているのかよくわからん。ByteCode をはく高級言語は、Javaしかないが原理的には他の言語も作ることができる。
そもそも、いまのJavaVMの実装は、CLRと同じようにJITコンパイラになっているし、組み込みだとByteCode 自体を直接実行するCPUを使っている場合もある。
JITコンパイラの実装法の中には、IKVMのように、ByteCode をJITでMSILに変換(コンパイル)してそれをCLRで実行させるものも存在する。

32 :デフォルトの名無しさん:04/10/23 14:52:33
>ByteCode をはく高級言語
結構あるような気がするが…MJのような拡張Javaだけでなく、Adaとかも

33 :デフォルトの名無しさん:04/10/23 21:17:08
>>32
不勉強で申し訳ない。ほかにどんなのがあるんですか?

34 :デフォルトの名無しさん:04/10/23 22:21:59
ゲイシの手のひらで遊んでいる内は知ることがないだろうけど、
Jythonとかそれなりの利用者がいるJavaバイトコードをはく高級言語はままあるわけなんだがな。

35 :デフォルトの名無しさん:04/10/23 23:10:23
>>34
Jythonぐらいは、使ったことはなかったがしっていた。JRubyと同じようなものとおもっとった。
ほかにもたくさんありますし、一部普及しているものもあるようですね。勉強になりした。
いずれにせよ、JRE∽CLR, ByteCode∽IL と考えていいんですね。

36 :デフォルトの名無しさん:04/11/06 23:36:45
>>34
Javaも、SunとIBMの手のひらの上というところは、似たようなもの。

37 :デフォルトの名無しさん:04/11/07 12:41:14
バイトコードのアセンブラも知らないのか。

38 :”管理”:04/11/21 03:26:14
 

39 :デフォルトの名無しさん:05/01/11 14:47:52
フツーのx86の逆汗みたいにアドレスやHEXまで見せてくれる逆汗ないの?

40 :デフォルトの名無しさん:05/01/11 17:48:38
>>39
ttp://www.gir-lab.com/pukiwiki/pukiwiki.php?PE%20Analyzer

41 :デフォルトの名無しさん:05/01/11 22:37:52
MSILネイティブOSキタ━━━━(゚∀゚)━━━━ッ!!
http://pc5.2ch.net/test/read.cgi/os/1105442577/

11 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)