分页: 1 / 1

#1 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 13日 06:46
wdong
最原始的C++编译器其实是C的frontend,产生的是C代码。所以Bjarne Stroustrup的原始C++编译器叫cfront。第一版的cfront在1985年发布。我搞了个BSD 4.3玩。因为这个版本的BSD是1986年发布的,所以我弄了个1987年发布的cfront 1.2玩。废了点周折,但是跑起来了。下面给你们看一个编译出来的东西。

这个东西的好处是,非常直接地展示出来了C++的设计思路。

输入程序
图片

编译输出
图片

#2 Re: 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 13日 16:33
wdong
应证了一句话:曲高和寡

#3 Re: 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 13日 17:57
hci
这个代码很简单。说明C++流行纯粹就是因为名字取得好。叫cfront就没有人鸟,叫C++人们就觉得很牛。哈哈。

对了,你折腾这个干嘛呀?要自己搞个语言?

#4 Re: 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 13日 19:15
kde23
有意思, _Test__ctor() 感觉是要把申请内存和执行构造函数的两件事一块干了。 不过你的例子有两点让人难以了解cfront的思路:

1. main()函数中传进 _Test__ctor()的参数是栈上的内存值,已不是null, 因此_Test__ctor()内不会再调用_new()。 不知什么情况下会传入null值
2. Test()的函数体是空的,很好奇如果其中有代码cfront是不是把它照搬到_Test__ctor()中

#5 Re: 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 13日 21:26
xexz
这么蛋疼,就为图形用户界面方便,gtk/qt,gnome/kde的开发效率没有显著差异。

#6 Re: 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 14日 05:44
wdong
hci 写了: 2025年 3月 13日 17:57 这个代码很简单。说明C++流行纯粹就是因为名字取得好。叫cfront就没有人鸟,叫C++人们就觉得很牛。哈哈。

对了,你折腾这个干嘛呀?要自己搞个语言?
看看伟大的东西刚开始时是怎么样的。后来搞得太复杂,看不清真面目了。

#7 Re: 跑起来了1987年的原生态C++编译器

发表于 : 2025年 3月 15日 01:42
bihai
wdong 写了: 2025年 3月 14日 05:44 看看伟大的东西刚开始时是怎么样的。后来搞得太复杂,看不清真面目了。
这个方案我在94年就知道,就是要发明一个新的语言,可以翻译成C,然后编译。