免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cjaizss

【大话IT】编译器的设计其实远没想象中那么妖魔化 [复制链接]

论坛徽章:
0
发表于 2016-08-13 10:19 |显示全部楼层
我们国家软件业基础不扎实原因之一就是不重视编译器的开发。

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-14 15:46 |显示全部楼层
回复 11# hztj2005


    全球也只有IBM和GCC那么一些人在开发编译器,正如操作系统一样,这些东西没必要重复造轮子

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-14 18:51 |显示全部楼层
光是C语言的编译器就有好多家在造,而各种编程语言更已经成百上千。编译器的设计确实不应该用重复造轮子之类的蹩脚理由来妖魔化,它不是少数人的专利,而是程序员的基础技能,当然也会作用于一个国家的软件业基础

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-15 08:49 |显示全部楼层
回复 13# 爻易


    我觉得程序员的技能应该包括了解编译原理,但无需直接做编译器,另外据我所知,国内的硬件厂商的设备依靠gcc就可以搞定,看现在国产操作系统的混乱状态,要是再出个国产编译器,那就爆炸了。现在国产操作系统那群人终于意识到从头开干是不可行的,他们需要踩在巨人的肩膀上,于是借助Ubuntu、RedHat这样的系统来定制便成了最好的途径,我想编译器也是如此,拿GCC做一下修改就可以了,从头来一个这没必要了吧。

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-15 11:49 |显示全部楼层
回复 14# 剑魂箫心

的确不是每个人都要做编译器,但如果一个国家都没人做编译器,那就相当不正常了。编译器的研制相当重要,以操作系统为例,当年做unics的同时,也做了编译器,而当时已经有其它语言的编译器了,以重复造轮子的观点来看,这也是重复造轮子。

操作系统与编译器结合相当紧密,是互相促进的关系,要么一起成功,要么一起失败。产业链就是这么形成的!单个根据地容易被围剿,多个根据地就能互相响应,要研制国产操作系统的话,国产编译器就不能拉下,不仅不会爆炸,反而能稳定产业链。借别人的肩膀并非不行(早期阶段,没有枪,没有炮,敌人给我们造),但毕竟是借的,不是长久之计(后期,天上地下海中,到处都有中国造)。

所以并非国产操作系统那群人终于意识到从头开干不可行,而是仅干操作系统这一个节点不可行!从点到链,才是思想认识上的进步

   

论坛徽章:
2
2016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之广夏
日期:2016-12-07 08:32:11
发表于 2016-08-15 12:40 |显示全部楼层
回复 15# 爻易


    我则认为没有从头做操作系统主要是因为难以形成生态环境,即使从头搞一个内核出来,但是仅凭国内这几号人是无法和全球内核黑客的力量相提并论的,没有人来为操作系统开发应用程序如何能使其发展壮大呢。我现在的公司就是做国产系统的,特别令我印象深刻的是我们老大很强调和上游开发社区的合作,这样可以借助他们的力量让我们发展的更快,仅靠我们自己是不行的,我们的能力还远远达不到要求。
    Unix诞生的年代是一个计算机技术激烈动荡的年代,那时候没有成熟的编译器,甚至还要靠汇编语言而且是极其原始的汇编语言来写程序,用汇编语言写出的Unix相当难以维护,在这种情况下两位祖师爷才创造出了C语言,并用C语言重写了Unix,从此计算机领域天地初开,编译器与操作系统两条支线并行发展,20年后才最终造就了GCC和Linux的辉煌盛世。现在又过了20年,时代已然不同,这20年有多少技术沦为历史尘埃,而Unix和C语言历尽风霜却愈发昌盛,这就是精华和积淀,至少从我的观点来看,有这么多优秀的、沉淀了几十年的工具可用,从头来一套工具链并不会产生多少促进作用,反而会花费巨大的人力和财力。所以我才认为个人兴趣可以玩玩编译器和操作系统,让国家从头搞一套就没必要了。

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
发表于 2016-08-15 13:20 |显示全部楼层
回复 16# 剑魂箫心

以中国自身的市场容量形成生态系统没问题,能力不是一天形成的,也没让你现在就扔掉9cc,这是持久战!

C编译器出现之前,pascal就有了,比c还成熟,只不过不是M国产罢了。你所说的,都是M国对外的口径。而事实上,M国自己都不信你说的那一套。微软既造操作系统轮子,又重复造编译器的轮子;9nu/9cc-lunix貌似天作之合,但9cc本身也是重复造出的轮子,而且9nu从未停止研发自己的操作系统内核。。。

能力从哪里来,就是从建设实践中来,必须的花费不是浪费,要提高能力,没花费怎么行?优秀的、沉淀了几十年的工具我们也要有,没有就是落后

论坛徽章:
0
发表于 2016-08-15 14:18 |显示全部楼层
记得之前做过一个编译器的活动,感觉图书不错,占楼支持!

论坛徽章:
0
发表于 2016-08-15 14:24 |显示全部楼层
大部分编译环境都会把编程语言编译成机器码,也就是操作系统能识别的“1”“0”组成的“程序”。当然效率可能不同。
所以,编程语言不一样,但是经验编译后,出来的东西都是一样的。

JAVA也可以用来写软件的,不知道你听谁说的,而且JAVA还有一个功能是其它大部分编程语言没有的,就是它可以跨平台;就是说你写的程序,只要与操作系统无关,你可以只字不改的在不同的操作系统编译、运行。

论坛徽章:
0
发表于 2016-08-15 14:39 |显示全部楼层
编译技术说起来就大了,属于计算机科学了,象咱们码农整天忙前忙后哪有时间精力智力深入,就是那本国内书上概念,理解起来也不会很简单。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP