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

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。
复制代码

论坛徽章:
58
巳蛇
日期: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:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:30双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17子鼠
日期:2014-10-25 14:41:13天蝎座
日期:2014-07-21 19:08:47
发表于 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……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

【有奖调查】AI时代如何迎接未知挑战?

人工智能一直在医疗行业扮演着重要角色,最早的专家系统和后来的基因诊断都是人工智能技术在医疗的行业探索。近年来,随着深度学习等技术的进步,人工智能在医疗行业的应用领域不断扩展,医学影像智能诊断、语音电子病历、癌症智能诊断等均已逐渐成为热门发展方向。
而作为人工智能重要推动力的深度学习技术的快速发展却亟需认知系统的强力支撑。
----------------------------------------
活动时间:2017年5月15日-6月5日

调查入口>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP