compiler design topics
- GOLD Parsing System
- GOLD Parser ::Instructions for the Builder and Engine
- Source Code and Documentation
- Let Your Parser Go for the GOLD
- GOLD Parse, how do you actually implement your code?
- Calitha C# GOLD Parser Engine
- compiler,gold parser,DFA,LALR
- The LLVM Project
Introduction to GOLD Parser
this is very good introduction. It mentions some tips for life cycle management for generated abstract class file and your own implementation class in separate file. so that it will not be wiped out after you add new features into your language and you need to regenerate your parse file.
A Simple Compiler for the Common Language Runtime
it generates a simple language with integer, float and array type. a very good demo on how to create our own language using GOLD parser.
A Money type for the CLR
a basic data type and it can be used in new language.
good article to start with in order to have basic introduction and concepts.
a good application and demo to look at money type.
.NET Type Internals - From a Microsoft CLR Perspective
worthy to browse it and see its perspective for primitive data type.
- Generating Code at Run Time With Reflection.Emit
- Dynamic Type Using Reflection.Emit
- Introduction to Creating Dynamic Types with Reflection.Emit
- Introduction to Creating Dynamic Types with Reflection.Emit: Part 2
- Using Reflection.Emit to Precompile Expressions to MSIL
- RunSharp - Reflection.Emit Has Never Been Easier
- Debugging Dynamically Generated Code (Reflection.Emit)
- Why you can’t do Edit-and-Continue on Dynamically generated code
- Runtime code generation for types
Reflection, performance and runtime code generation
Most applications don’t need runtime code generation — either they know everything they need to know at compile time, or the performance considerations are such that Reflection is good enough. However, if you’re running a lot of Reflection code, then replacing it with type-specific code generated at runtime can give you a big performance boost.
- RunSharp – IL Generation for Dummies
- Reflection and Reflection.Emit in C#
- A comparison of dynamic code generation methods in .NET
Creating Code at Runtime / System.Reflection.Emit
Here an example how we can create code at runtime. In this sample, I try to create the following class at runtime:
Creating Code at Runtime (Part 2)
If we need to handle events and delegates, here is the following sample:
Creating Code at Runtime (Part 3)
to change our previous delegate for one more standard, like EventHandler. we update this new class to looks like:
Reflection Part 2: Emit
In this article we will examine reflection emit - the ability to dynamically generate code at run-time.
Reflection Part 1: Discovery and Execution
we explain reflection in the .NET Framework and demonstrate where and how you can use this new tool in your applications.
- Get Drunk on the Power of Reflection.Emit
- CIL Instruction Set
- CIL Instructions Set Quick Reference
- MSIL Programming Part 1
- MSIL Programming Part 2
- Writings on Computer Science -- Dick Grune