World Congress 2025 Aug 20, 2025 Session details

C# Lowering - What is it and why should I care?

Steven Giesel

A simple C# foreach loop secretly compiles into entirely different structures depending on your data collection. Master compiler lowering to unlock a new tier of performance predictability.

Pause
Mute Enter Fullscreen
#1 about 4 min

Understanding the purpose of compiler lowering in C#

Why developers should understand compiler transformations to analyze performance and debug logic.

#2 about 4 min

Defining compiler lowering versus traditional compiling

How lowering transforms high-level language features into low-level constructs within the same language.

#3 about 1 min

Lowering the var keyword using type interference

How the compiler replaces the implicit var keyword with explicit type declarations.

#4 about 3 min

Evaluating subtle behavior changes in expression statements

How using pre-increment expression statements yields different semantics than standard property getters.

#5 about 2 min

Transforming foreach loops into while loops by the compiler

How a foreach iteration translates into a standard while loop using basic indexers.

#6 about 3 min

Analyzing foreach performance on lists versus arrays

Why iterating over lists generates state machines compared to cost-effective indexer calls for arrays.

#7 about 3 min

Diagnosing silent bugs in disposable asynchronous tasks

Why failing to await asynchronous tasks causes finally blocks to execute and incorrectly dispose resources early.

#8 about 3 min

Unpacking the yield keyword into custom state machines

How yielding elements constructs an enumerator class handling sequence position and traversal dynamically.

#9 about 6 min

Benchmarking yield iterations against prepopulated lists

Balancing memory allocation overhead in prepopulated lists against CPU cycle costs for yield iterations.

Matching moments

3:32 min

Clarifying best practice patterns during structural syntax tool discussions

Jens Claes · WWC 2023

1:55 min

Introduction to systems programming and performance in .NET

Szymon Kulec Szymon Kulec · WWC Europe 2026

4:22 min

Managing compilation performance and implementation specifics of advanced typing

Peter Kröner Peter Kröner · WWC 2022

2:50 min

Dispelling common optimization and runtime performance misconceptions

Bjarne Stroustrup · WWC 2022

2:00 min

Understanding core browser technologies and framework syntax sugar

Sasha Shynkevich · LIVE

2:07 min

Understanding JIT compilation and breakpoint de-optimization

Johannes Bechberger · LIVE

Upcoming sessions on this topic

Open session

World Congress 2026 North America

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala
Open session

World Congress 2026 North America

Understanding LLM Architectures: Inside the Design of Modern Models

Jofia Jose Prakash

Enterprise AI Architect at American Chemical Society

Jofia Jose Prakash
Open session

World Congress 2026 North America

There's no dark factory without better software verifiers

Dexter Horthy

Co-Founder, HumanLayer

Dexter Horthy
Open session

World Congress 2026 North America

Offloading IoT State: Solving the Memory Crisis on Legacy Hardware

Pravin Nagare

Senior Software Engineer, Roku

Pravin Nagare