忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12345
最近访问板块 发新帖
楼主: cjaizss

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

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
发表于 2016-08-21 18:58 |显示全部楼层
终于可以发帖了, 其实很多人都把编译器搞复杂了, 如果用复杂的工具和复杂的思路去思考问题, 问题就会更加复杂.

总的来说, 编译器技术就是将一种语法的文本解析 , 用另外一种语言来表达它的逻辑. 如果是翻译, 就是编译, 如果是解释, 就是解释器.

论坛徽章:
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-26 09:52 |显示全部楼层
对,从简单做起,C语法太复杂,另外设计个语法简单的语言并实现之,逐步提高能力

论坛徽章:
0
发表于 2016-08-30 09:27 |显示全部楼层
1. 你平常用哪种语言编写程序?用什么编译环境?
  1. 硕士毕业第7年了,平时主要使用c/c++;辅助性的语言包括bash shell, python, ruby, lua, vimscript;这些语言我主要是用于一些需要脚本及快速开发的地方,比如程序编译(scons依赖python), ruby偶尔用来开发一些工具,lua因为我需要用lualatex,vimscript因为我需要用vim,有时候需定制化修改vim插件;java和c#很少用了,虽然很多人认为java和c#才是现代语言;对了,golang花了很多时间学习,那时候想通过它做服务端,被rob pike影响了,但最后也没怎么学以致用。
  2. 编译环境我主要使用GCC,也安装了LLVM-clang,现在主要在linux和osx上面工作和学习。
复制代码

2. 你熟悉编译原理吗,了解词法分析、语法分析、上下文无关文法、IR、LL(k)文法、LR(k)文法等术语吗?
  1. 编译原理与形式语言这门课大学学过,留在记忆里面的只有自动机,词法分析;其它的全部忘记了。工作之后抽空了解了并研究了一些这方面的知识:词法分析即lexcial analysis(scanning),编译器的第一步,生成词法单元序列;语法分析即syntax analysis(parsing),编译器的第二步,根据词法单元序列生成语法树(syntax tree),然后交给后面的语义分析去处理;上下文无关文法,LL,LR文法看过又忘了,属于形式语言里面的东西吧,能记得就是LL,LR如何更好的扫描,扫描更少次数得到生成式。
复制代码

3. 你了解过lex/yacc吗?使用它们做过分析吗?
  1. 了解过一些,包括flex,bison,还有boost里面的spirit;方便生成词法分析器,语法分析器,cc即compiler compiler;曾经要做点regex相关的东西,尝试了一点点。
复制代码

4. 你想过自己设计一种语言,并为之设计编译器吗?如果你想设计,那你该如何一步步的做呢?
  1. 想过的;尤其在我了解过llvm项目之后;llvm会让编译器设计更简单,更加模块化,包括更容易给end user使用编译器的库;比如vim的插件ycm就依赖llvm-clang;
  2. 我是想设计自己的语言,但还没有头绪;我想首先要想明白设计语言干嘛?无论为了学习还是工作;我想设计一门类似ruby的语言,我喜欢ruby的style胜过python;
  3. 我想首先我要了解一些编译器制作工具,前期尽量通过集成利用的方式来实验吧,先娱乐为主,just for fun。
复制代码

论坛徽章:
57
双子座
日期:2014-12-10 21:39:16巳蛇
日期:2014-12-14 22:44:032015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:412015年辞旧岁徽章
日期:2015-03-03 16:54:15拜羊年徽章
日期:2015-03-03 16:15:432015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:39处女座
日期:2014-12-02 08:03:17子鼠
日期:2014-10-25 14:41:13天蝎座
日期:2014-07-21 19:08:47白羊座
日期:2014-07-27 20:48:33
发表于 2017-01-20 13:44 |显示全部楼层
1. 你平常用哪种语言编写程序?用什么编译环境?
   >> 我要书, 快把书给我
2. 你熟悉编译原理吗,了解词法分析、语法分析、上下文无关文法、IR、LL(k)文法、LR(k)文法等术语吗?
   >> 我要书, 快把书给我
3. 你了解过lex/yacc吗?使用它们做过分析吗?
   >> 我要书, 快把书给我
4. 你想过自己设计一种语言,并为之设计编译器吗?如果你想设计,那你该如何一步步的做呢?
   >> 我要书, 快把书给我


:luya::luya::luya::luya::luya::luya:
:luya::luya::luya::luya::luya::luya::luya::luya:
:luya::luya::luya::luya::luya::luya::luya::luya:

论坛徽章:
2
综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:00
发表于 2017-01-20 15:08 |显示全部楼层
1,强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

久等啦!10张门票开启你的DTCC2017之旅

2017中国数据库技术大会将于2017年5月11-13日如约而至,本届大会以“数据驱动•价值发现”为主题,共设定2大主场和21个技术专场,云集海内外120+位技术大牛,共同探讨Oracle、MySQL、NoSQL、云端数据库、区块链、深度学习等领域的前瞻性热点话题。
即日起,填写DTCC2017会前调查问卷,即有机会赢取价值2600元的大会门票1张!仅限10张!
----------------------------------------
活动截止时间:2017年5月5日统一公布

问卷入口>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP