如何在C中编写高级概念(即Object类和Generics)

Ken*_*son 1 c assembly programming-languages

最近,我一直在修补自己的语言,并阅读有关该主题的各种着作.

有没有人对C(或汇编程序)如何将概念Object Class和/或概念Generics编程成语言有任何好的建议.(指的是Object和Generics的Java实现)

例如,在Java中,所有类都扩展了Object.那么你如何在C级代表这一点呢?是这样的:

#include <stdio.h>

typedef struct {
  int stuff;
} Object;


typedef struct {
  int stuff;
  Object object;
} ChildClass;


int main() {
    ChildClass childClass;
    childClass.stuff = 100;
    childClass.object.stuff = 200;
    printf("%d\n", childClass.stuff);
    printf("%d\n", childClass.object.stuff);
}
Run Code Online (Sandbox Code Playgroud)

而且我甚至不确定如何开始实现像Generics这样的东西.我也很欣赏有关程序语言设计的任何有价值的链接.谢谢,

Ste*_*ebb 5

看看Abelson和Sussman 的计算机程序结构和解释.虽然它没有说明如何在C中执行它,但它确实演示了如何在运行时创建类型以及如何在不提供本机支持的语言之上构建对象系统.一旦理解了基本思想,就应该能够使用结构和函数指针来创建实现.当然,查看C++预处理器的源代码也很有启发性.有一段时间,C++只是C编译器的预处理器.