Jakie są najlepsze zasoby do nauki CIL (MSIL)
Jestem doświadczonym programistą C # 3/. NET 3.5, który chce zacząć robić jakiś kod runtime używając systemu.Odbicie.Emituj.DynamicMethod. Chciałbym przejść na wyższy poziom, zapoznając się z IL.
Jakieś wskazówki(Kalambury)?
5 answers
Najlepszym sposobem, aby się tego nauczyć, jest napisanie czegoś, co rozumiesz, a następnie spójrz na IL to stworzył. Ponadto, w zależności od tego, co robisz, możesz używać drzew wyrażeń zamiast emitować IL, a następnie podczas kompilacji drzew wyrażeń, ci mądrzy goście z microsoft tworzą IL dla Ciebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-30 22:28:01
Oprócz odpowiedzi Darrena, sugerowałbym wybranie lub wymyślenie zabawkowego języka i napisanie prostego kompilatora do niego. Wybierz coś, co wymaga niewielkiego parsowania, jak BF lub język oparty na stosie, a przekonasz się, że pisanie kompilatora jest prostsze, niż się wydaje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-01 08:55:22
. Net Reflector jest świetny do badania IL produkowanych przez C# / VB. NET.
To wspaniałe narzędzie do nauki.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-30 22:47:44
Specyfikacja ECMA 335 jest dostępna do pobrania tutaj: http://www.ecma-international.org/publications/standards/Ecma-335.htm
Partition III jest najbardziej istotna w radzeniu sobie z MSIL, ale zdecydowanie polecam partition I również dla każdego dewelopera. NET, ponieważ znacznie wzmocni zrozumienie platformy.
Expert. NET 2.0 IL Assembler. chociaż ta książka może być trochę przestarzała, nadal była dla mnie świetnym przeglądem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-30 22:31:21