- 论坛徽章:
- 2
|
回复 32# starwing83
可能是以前讨论时候没说清楚吧……
比如说"gcc",就不是指将那套exe,dll,out,so,lib,a,h什么的直接搬来用。
也许中间会这么搞,但至少最终不是这么搞。
这么说吧"gcc"的意思这么说更准确:只做L->C的转换,C->native的转换就交给其他现有的工具/库去搞定。
也许是gcc,也许是gcc的后端,也许是clang/tcc,或者直接llvm。
也可以按你说的,只负责产生代码,用户自己去编译。
C->asm的工作也不是完全不做,但肯定不是最初的重点。
必须要有一个"保底"手段 —— 当对其他arch的asm不了解的时候,至少还有"gcc"(成熟的C->asm)的工具可用。
至于"interpreter"的意思也是:edit->compile->link->run->result的cycle太繁琐了,也太慢了。
native code是最终release/deliver(给他人)用。对于自己甚至可以始终用interpret。
而develop时的cycle要更短,至少是edit->run->result,甚至edit->result。
至于interpreter实现到什么程度并不是最开始的重点。但从设计vm开始就有过早优化的感觉了。这只是develop时、quick and dirty时用的东西。
甚至这东西我都想省略的,只支持native。运行时加载source就source->C->cc&ld->dll/so->GetProcAddress/dlsym……
只是想到bootstrapping可能需要这东西,作为一个副产品,就先凑合着用吧……
|
|