I was considering attempting to research and build a very small contrived compiler for a subset of a language. I think in reflection it will be too difficult a problem for me at my current skill level.
However, something has me quite intrigued, how does a compiler translate an abstract idea such as an object into assembly/binary?
for example:
class Dog
{
public:
Dog(string name);
~Dog();
string GetName();
};
dog *Dog = new Dog('rover');
How does that get translated into machine code - it is seriously baffiling.