有谁一起研究编译器的吗?

翡翠水滴 2019-03-28 01:39:45
在做个编译器,已经初具雏形了,有人一起玩吗?

https://github.com/jadedrip/silang

...全文
434 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
翡翠水滴 2019-04-06
所有我对模板做了很多简化,用普通的语法来写模板。 比如 if( T is int ) 复杂部分由编译器帮你搞定
回复
tongshou 2019-04-04
引用 7 楼 yshuise 的回复:
你说要抛弃c++复杂部分,但是c++的模板你要,须知c++的复杂多是由模板引起的,比如模板元编程。

C++中的模板是个好东西,但是复杂起来很让人头疼。

回复
yshuise 2019-04-04
你说要抛弃c++复杂部分,但是c++的模板你要,须知c++的复杂多是由模板引起的,比如模板元编程。
回复
tongshou 2019-03-30
楼主 @翡翠水滴, 既然有能力搞编译器,是否可以尝试做这样一件很有实用价值的事:

自动 把 DLL 中外露的C++函数(尤其是 class 的成员函数)转化为 C 的函数。用 LoadLibrary调用DLL中 C函数很简单,但是调用 C++函数太复杂,尤其对脚本程序语言来说。

比如 DLL 的文件 A 中有外露的 class定义:
class mycc
{
public:
int func_a ( int x, int y);
...
};


通过读取DLL 文件 A,自动生成 C 程序 的文件 B:

struct mycc;

extern "C" int func_a (struct mycc * x_this, int x, int y) {
return Q_func_a (x_this, x, y);
}

这里的关键是 Q_func_a如何根据 从 DLL 文件A得到的信息来设计。

因为函数量很大,必须自动生成(或加上少量手工编程),否则就没有实用价值。

文件B正常编译成 一个DLL,动态装载DLL B时,会自动动态装载 DLL A,通过DLL B 外露的 普通C 函数,调用DLL A 的功能。

如果能够自动把大量的C++库函数转换成标准的C库函数,意义非凡!

----------------
这个问题我也一直在考虑如何解决。

目前我有能力在 一个脚本程序语言里,仅仅根据 标准 C的头文件和相应的DLL,直接调用DLL的C函数。
已经成功 用在世界著名3D绘图软件 UG NX 和 中望公司 的ZW3D 开发: C 程序不需要编译,直接运行,最大好处之一 是与宿主软件版本无关,最大好处之二是调试很方便。











回复
末先 2019-03-29
回复
一根烂笔头 2019-03-29
我重造过C语言的轮子,可以练功力,自己玩玩就好了。想独创一门语言,首先看语言的特性是不是解决了其他语言的痛点,其次语言的定位,最后,能不能形成社区 大致看了下你的README,轮子造的还挺大
回复
千里送人头 2019-03-28
楼主,建议找一些有研究生的群,一般csdn上的解答及分享一些技术问题,编译器起步太高,也没有经济来源,要找人一起搞,有点困难.
回复
轻箬笠 2019-03-28
不懂,楼主加油。祝福楼主可以找到合意的伙伴
回复
zjq9931 2019-03-28
关注,学习,支持。
回复
发动态
发帖子
非技术区
创建于2007-09-28

1.5w+

社区成员

C/C++ 非技术区
申请成为版主
社区公告
暂无公告