我正在考虑尝试为一种语言的子集研究和构建一个非常小的人为编译器。我认为在我目前的技能水平上,这对我来说太难了。
但是,有些事情让我很感兴趣,编译器如何将抽象概念(例如对象)转换为汇编/二进制文件?
例如:
class Dog
{
public:
Dog(string name);
~Dog();
string GetName();
};
dog *Dog = new Dog('rover');
它是如何被翻译成机器代码的——这真是令人困惑。