Switch içerisinde Hash Table optimizasyonu [C#]

C# compiler’ının switch statement’ı içerisinde 7. case’den sonra bir hash table optimizasyonu yaptığını biliyor muydunuz? C# compiler’ı switch statement‘ını 6 tane case sayısına ulaşana kadar lowering mekanizması ile standart if else ifadelerine çeviriyor. Fakat case sayısı 7’ye ulaştığında lowering mekanizması akıllıca bir optimizasyona gidiyor. Bu, C# compiler’ın işini zamanında yapmasını sağlayan çok akıllı bir optimizasyon. … Continue reading Switch içerisinde Hash Table optimizasyonu [C#]

Hepsine hükmeden tek bir döngü – While

C# compiler’ın tüm döngüleri lowering mekanizması ile while döngüsüne dönüştürdüğünü biliyor muydunuz? Ben de bilmiyordum. Lowering mekanizması C# compiler’ın sıklıkla kullandığı bir yapı. Bunu özellikle “Compiler magic” veya Syntactic sugar dediğimiz durumlarda kullanılıyor. Ek olarak daha kompleks mekanizmaları, MSIL ve makine koduna daha rahat çevrilebilmesi için basit mekanizmalara çeviriyor. Eric Lippert şöyle diyor; “Bununla birlikte, … Continue reading Hepsine hükmeden tek bir döngü – While