搜索
bottom↓
回复: 67

正在写一本设计C编译器(实战)的书,征求意见...

  [复制链接]

出0入0汤圆

发表于 2014-10-16 03:49:31 | 显示全部楼层 |阅读模式
正在动手写一本有关设计小型C编译器的书(暂定名《小型编译器的设计和实战》)。在这里向大家征求意见:
以何款CPU作为目标机进行讲解?手上现已完成的编译器实现的CPU有: (1) 普通PIC16F系列;(2)加强型PIC16F系列;
(3)PIC18F系列;(4) STM8S系列;(5)68HC08系列,也可考虑68HC11系列。个人打算使用‘加强型PIC16F’,但不打算
考虑AVR系列和51系列。

谢谢!

出0入0汤圆

发表于 2014-10-16 06:00:05 | 显示全部楼层
厉害啊,支持你

出0入0汤圆

发表于 2014-10-16 06:35:21 来自手机 | 显示全部楼层
1, 我认为应该支持51
2, 不建议放在yacc等工具上,语法和语意分析自己来,清晰明了
3, 后期处理的语句发射和选择,一定要讲
4,多文件以及库的连接一定要讲
5,啥时候出版,我先预订两本

出0入0汤圆

发表于 2014-10-16 07:06:04 | 显示全部楼层
能写一个出来,到时候网友给你测测,支持一下!!出书可以晚一点,关键是编译器一定要做出来

出0入0汤圆

发表于 2014-10-16 07:59:00 | 显示全部楼层
不懂,不过表是钦佩,感觉搞编译器的都是牛牛

出0入0汤圆

发表于 2014-10-16 08:09:11 | 显示全部楼层
LZ对编译原理肯定很精通

出0入0汤圆

发表于 2014-10-16 08:15:18 | 显示全部楼层
支持 STM8S系列,预定一本.

出0入0汤圆

发表于 2014-10-16 08:19:18 | 显示全部楼层
不明觉厉

出0入0汤圆

发表于 2014-10-16 08:22:31 来自手机 | 显示全部楼层
这个好啊!

出0入0汤圆

发表于 2014-10-16 08:23:27 | 显示全部楼层
pic系列吧,生命周期长

出0入0汤圆

发表于 2014-10-16 08:29:05 | 显示全部楼层
只有一个建议,多些原创少些复制粘贴

出0入0汤圆

发表于 2014-10-16 08:37:49 | 显示全部楼层
MSP430 STM8 STM32 建议这几种

出50入0汤圆

发表于 2014-10-16 08:39:07 | 显示全部楼层
楼主真有空写书,还不如把时间省下来完善编目标芯片啊。
无论如何都觉得楼主高大,只可惜市场上的芯片都有编译器了。

出0入0汤圆

发表于 2014-10-16 08:45:16 | 显示全部楼层
期待中

出0入0汤圆

发表于 2014-10-16 08:47:08 | 显示全部楼层
高大上!请问买过你的书后,能编写小的编译器吗?比如四位单片机编译器,一般只能用汇编写,但买了你的书,............

出0入0汤圆

发表于 2014-10-16 08:47:21 | 显示全部楼层
只能精神上支持楼主了

出0入0汤圆

发表于 2014-10-16 08:48:03 | 显示全部楼层
所有的都支持,生成中间语言,根据不同的芯片,自动生成代码,可以参考LLVM

出0入0汤圆

发表于 2014-10-16 08:51:57 | 显示全部楼层
自定义一个指令集

出0入0汤圆

发表于 2014-10-16 08:55:08 | 显示全部楼层
我觉得编译器原理大概了解一下就可以了,没有必要深入研究,除非工作兴趣相关

出0入0汤圆

发表于 2014-10-16 09:01:51 | 显示全部楼层
编译器已经实现了吗

出0入0汤圆

发表于 2014-10-16 09:05:03 | 显示全部楼层
开发一个Linux下的编译器吧,51系列也没问题

出0入0汤圆

发表于 2014-10-16 09:06:14 | 显示全部楼层
或者可以做个指令映射,接口做好后,只需添加对不同处理器的映射支持即可。当然,这个说起来容易,做起来不容易

出0入0汤圆

发表于 2014-10-16 09:08:51 | 显示全部楼层
STM8S系列预定一本

出50入0汤圆

发表于 2014-10-16 09:13:16 | 显示全部楼层
s1j2h3 发表于 2014-10-16 09:06
或者可以做个指令映射,接口做好后,只需添加对不同处理器的映射支持即可。当然,这个说起来容易,做起来不 ...


直接调用处理器厂商提供的ASM--机器码编译程序岂不更简单,根本不需要了解机器指令

出0入0汤圆

发表于 2014-10-16 09:22:18 | 显示全部楼层
高大上的东西

出0入0汤圆

发表于 2014-10-16 09:23:16 | 显示全部楼层
持续关注!!!

出0入0汤圆

发表于 2014-10-16 09:32:04 | 显示全部楼层
最好支持CORTEX-M3,M4之类的内核芯片。

出0入0汤圆

发表于 2014-10-16 09:41:33 来自手机 | 显示全部楼层
建议将前端与后段分开,生成中间代码,然后挑选一种目标CPU讲解代码生成。同三楼,语法分析与语意分析模块建议手写。

出0入0汤圆

发表于 2014-10-16 09:48:57 | 显示全部楼层
lz这是计算机专业的水平呀。有前途。

出0入0汤圆

发表于 2014-10-16 10:32:40 | 显示全部楼层
国内对于这种最基础的研究非常少,建议楼主多写写常用的,基础的东西。

出0入0汤圆

发表于 2014-10-16 12:04:17 | 显示全部楼层
楼主可以考虑写一个编译器用于上位机,再针对某个CPU上写个解释器。这样能实现一个小的虚拟机的系统。方便给非专业程序员去开发硬件工作。
架构功能类似现在比较热的arduino。这样受众面广一些。如果开源,应该有些发展前景。

出0入0汤圆

发表于 2014-10-16 12:50:01 | 显示全部楼层
支持。。。

出0入17汤圆

发表于 2014-10-16 13:02:13 | 显示全部楼层

搞成编译器又干不过IAR之类的现有软件,不如用C解释C

出0入0汤圆

发表于 2014-10-16 13:05:52 | 显示全部楼层
国内好像还没有类似的书,严重支持楼主!

出0入0汤圆

发表于 2014-10-16 15:14:04 | 显示全部楼层
感觉很厉害,支持楼主

出0入4汤圆

发表于 2014-10-16 15:16:17 | 显示全部楼层
我也在写编译器,不过不是针对某种芯片的,而是采用虚拟机的方式的。

出0入0汤圆

发表于 2014-10-16 15:40:52 | 显示全部楼层
设计编译器,NB,支持

出0入0汤圆

发表于 2014-10-16 15:54:22 | 显示全部楼层
楼主好厉害,支持!

出0入0汤圆

发表于 2014-10-16 17:43:10 | 显示全部楼层
STM8S系列预定一本

出0入0汤圆

发表于 2014-10-16 17:57:11 | 显示全部楼层
厉害,支持一下!

出90入4汤圆

发表于 2014-10-16 18:24:46 来自手机 | 显示全部楼层
写书要简单的51就可

出0入0汤圆

发表于 2014-10-16 18:30:50 | 显示全部楼层
stm32      

出0入0汤圆

发表于 2014-10-16 18:37:35 | 显示全部楼层
STM支持一下

出0入0汤圆

发表于 2014-10-16 20:56:26 | 显示全部楼层
我一开始还想写AVR,结果看到结尾,楼主说不打算考虑AVR了。。。那我推荐STM8。。。这个大家可能还接触得多一些吧。。。谢谢。

出0入0汤圆

发表于 2014-10-16 21:05:37 | 显示全部楼层
能写编译器的都是牛人中的牛人啊

出0入93汤圆

发表于 2014-10-16 21:10:17 | 显示全部楼层
STM8S      

出0入0汤圆

发表于 2014-10-16 22:35:22 | 显示全部楼层
PIC的顶一个

出870入263汤圆

发表于 2014-10-16 22:44:04 | 显示全部楼层
本帖最后由 armstrong 于 2014-10-16 22:47 编辑

楼主如有如此了得的才能,是应该多发挥实际作用,造福后人啊!这样会留名千古的,一般人想也别想,牛逼的像:Andrejs Dunkels,Fabrice Bellard(像Linus Torvalds,Stallman这些我就不说了,大家都已经知道),向他们看齐!

出0入0汤圆

发表于 2014-10-16 23:04:15 | 显示全部楼层
不错 我一直想要找一本这样的书看看  什么系列的机器倒是无所谓 关键要介绍好 指令集描述和 优化的部分啊

出0入0汤圆

发表于 2014-10-16 23:04:46 | 显示全部楼层
开发一个Linux下的STM8编译器,这块暂时是个空白,其他的51,avr,STM32,PIC,等linux基本都有。

出0入0汤圆

 楼主| 发表于 2014-10-17 00:05:23 | 显示全部楼层
感谢楼上各位的意见和鼓励!有必要澄清主贴中的思想:
(1)因为各个厂商设计生产的产品差异极大,所以每一款编译器只支持一个CPU系列。
(2)的确,编译器的前端(关键字解析扫描、语法解析、P代码产生)各编译器差别不大,但后续处理有明显的不同。
(3)本书使用的编程工具是Mingw版的GNU C/C++及其配套工具(另一可选工具是DJGPP GNU C/C++)。所以设计
       编程过程和细节与Linux下完全一致。源代码、命令以及与之相应的makefile无需任何改动便可在Linux下顺利运行,
       并得到同样的结果。
(4)与STM8S相比,PIC16F(普通版或加强版)的体系结构对C语言的支持远不如STM8S。换言之,如果有能力在PIC16F
       实现你所盼望的功能,则针对STM8S的设计就显得轻松、宽裕多了。
(5)就个人经验和感觉而言,绝大多数微型处理器对C语言的支持都很勉强,并且相互之间不兼容。不存所谓的‘通用的解析机’,
       用户只要‘只需添加对不同处理器的映射支持’即可这样理想(-31楼-)。
(6)相信读者阅读本书,便能为自己设计具有实用价值的编译器,比如为4位机设计一个编译器,当然有些功能会受硬件限制(-15楼-)。
       甚至自己动手设计一种语言并实现之。
(7)本书完全从实战角度出发,从无到有,一步一步地书写、扩展、增强设计、调试。有关理论方面的内容几乎一带而过。(本人不擅长理论)
(8)本书将附带光盘。所有的(各阶段以及最终的)源程序,以及工具软件都将随书出版 (如果我真的能写成这本书)。

本人从未写过书,也不知道其中的规矩、奥秘以及可能的潜规则。更不知道应该使用何种写作工具以及后续事宜。

出0入0汤圆

发表于 2014-10-17 00:14:10 | 显示全部楼层
su_mj000 发表于 2014-10-17 00:05
感谢楼上各位的意见和鼓励!有必要澄清主贴中的思想:
(1)因为各个厂商设计生产的产品差异极大,所以每一 ...

国内还没有这样的书籍。LZ可要写好。
为什么用PIC?相对来说用的太少,程序调试 下载都没有AVR方便。

PIC是精简指令。建议还是排除PIC 。

LZ也可以把书分两种 :汇编编译 和 C编译器。




国内第一部。要考虑好

出0入0汤圆

发表于 2014-10-17 00:16:42 | 显示全部楼层
PIC的官方做的编译器和IDE简直没法用,哎,干掉他吧

出0入0汤圆

发表于 2014-10-17 00:37:37 | 显示全部楼层
本帖最后由 小柯师傅 于 2014-10-17 00:40 编辑

支持楼主,能自己开发C编译器 的前后端:-)本人也一直在学习这类技术,但和楼主比还差很远。这类技术其实应用面非常广,编译器的前端技术还可 应用在IDE代码智能提示等相关领域。
如果楼主能在论坛分享下就更好了。

出0入0汤圆

发表于 2014-10-17 00:48:13 | 显示全部楼层
对编译技术非常感兴趣,期待楼主的大作

出0入0汤圆

发表于 2014-10-17 05:19:10 来自手机 | 显示全部楼层
su_mj000 发表于 2014-10-17 00:05
感谢楼上各位的意见和鼓励!有必要澄清主贴中的思想:
(1)因为各个厂商设计生产的产品差异极大,所以每一 ...

1,再次建议 支持51,原因简单且使用面广,当然,加入pic也非常不错
2,开发工具与开发平台,希望是window和vc,我感觉这是最常用平台
3,

出0入0汤圆

发表于 2014-10-17 08:51:02 | 显示全部楼层
多事例,最好自己写的,别的也行,得加备注哦 呵呵

出0入0汤圆

发表于 2014-10-17 09:11:25 | 显示全部楼层

支持 STM8S系列,预定一本

出0入0汤圆

发表于 2014-10-18 14:35:11 | 显示全部楼层
楼主这以牛B,能帮我写一个自己MCU的编译器吗?

出0入0汤圆

发表于 2014-10-18 14:35:26 | 显示全部楼层
楼主这以牛B,能帮我写一个自己MCU的编译器吗?

出0入0汤圆

 楼主| 发表于 2014-10-21 03:41:34 | 显示全部楼层
回59楼:
等你看了书,你就能自己写一个属于自己的编译器了。

出0入0汤圆

发表于 2014-10-21 08:03:46 | 显示全部楼层
绝对支持。

出0入0汤圆

发表于 2014-11-6 19:29:27 | 显示全部楼层
还是写cortexm3的吧

出0入0汤圆

发表于 2014-11-6 19:39:12 | 显示全部楼层
虽然不懂 但严重支持!

出0入0汤圆

发表于 2014-11-6 19:57:14 | 显示全部楼层
先来个设计思路或框架才是啊

出0入0汤圆

发表于 2014-12-13 13:09:22 | 显示全部楼层
支持,最好能搞个cc24xx/cc25xx的编译器。坐等新书

出0入0汤圆

发表于 2014-12-14 08:56:45 | 显示全部楼层
There is GCC AVR, but no GCC PIC.

出0入0汤圆

发表于 2014-12-14 09:14:56 | 显示全部楼层
不错呀,终于要见到国产编译器了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 18:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表