评测自己写的Cherry-C编译器
来源:互联网 发布:中银淘宝校园卡客服 编辑:程序博客网 时间:2024/05/17 08:05
Cherry-C 不是C语言方言,是要打造成C语言的超级,就像Objective-C那样。但是Objective-C是专门为IOS设计的,而Cherry-C是为i686 Linux和ARM linux打造的。
Cherry-C是在保留完整的标准C语法的基础上,吸取了一些Java,JavaScript的语法,因为确实有带来方便的地方,比如不用再记函数的名字,在"stdio."后会有代码补全提示,对于不喜欢的新语法可以完全使用标准的语法代替,所以Cherry-C对有C语言基础的人来讲,学习成本基本是0的!
Cherry-C是在保留完整的标准C语法的基础上,吸取了一些Java,JavaScript的语法,因为确实有带来方便的地方,比如不用再记函数的名字,在"stdio."后会有代码补全提示,对于不喜欢的新语法可以完全使用标准的语法代替,所以Cherry-C对有C语言基础的人来讲,学习成本基本是0的!
Cherry-C是EJC(Ecosystem)项目的一部分,最终要组成一个像Android的平台体系,只不过是由“民间科学家"维护的。它是“开源的”,“开放的”,“自由的”并会在年底释放一个版本。
Cherry-C 编译器的核心技术:
1 JavaCC作为前端
2 Netbeans Platform作为中间层和表现层
3 GNU AS作为连接后端
Cherry-C 有一个语法文件 Cherry-C**.jjt 。我从这个文件开始,做流水式的增量开发,一步步靠近目标。
2.吸取JavaScript动态语言的语法,比如动态的给一个Struct 实例绑定field 或method,这样可以在不用过度设计的情况下立即的展开程序的编写,写到那里,发现那里需要一个定义,就立即动态的定义一个。
3.代码的提示功能确实是集成在一个开发环境中的,Cherry-C的编译器是以插件的形式集成在Netbeans Platform上的,在这上面不光是代码补全功能,还有代码语法,语义的即时编译报错提示技术,代码格式化,代码缩进,代码折叠,程序debug等模块
4.Cherry-C编译器是纯Java实现的,汇编器是GNU as,所以它和C一样是一个静态语言,所以用shell操作没有问题,上传一个编译好的as.s文件,然后 as as.s就生成一个a.exe或a.bin文件,然后部署启动就可以了
说一下这个项目的Wiki是:http://ejcwiki.wikispaces.com/home_cn
有什么最新的动态会发布在这里。
Cherry-C编译器是插件的形式整合在Netbeans Platform 7+ 中的,这是一个运行的截图,点击一个文件的上下文菜单,点"RUN"按,就可以看到 输出的a.exe:
对我有用有什么最新的动态会发布在这里。
Cherry-C编译器是插件的形式整合在Netbeans Platform 7+ 中的,这是一个运行的截图,点击一个文件的上下文菜单,点"RUN"按,就可以看到 输出的a.exe:
- 评测自己写的Cherry-C编译器
- 自己写的C/C++编译器Doctors[软件+文档]
- 自己写的C/C++编译器Doctors[软件+文档]
- 自己写的C/C++编译器Doctors[软件+文档]
- 自己写的内存池效率评测
- 如果你想写自己的编译器...
- 《C编译原理》自己写C语言编译器
- C语言写正则表达式的编译器
- 纯C语言写的编译器
- 自己写编译器学习总结
- C++-----自己写的哈希表
- 中国人自己的c/c++编译器、网页浏览器内核
- 中国人自己的c/c++编译器、网页浏览器内核
- 中国人自己的c/c++编译器、网页浏览器内核
- 简易四则运算编译器(自己的创作 C语言)
- 打造自己的编译器
- 自己用C写的单链表
- 自己用C写的通讯录
- 向量几何在游戏编程中的使用【3】2-D边界碰撞检测
- 使用Android Lint Checks
- DB2中 同一个表中多条数据组合成一条数据 (一条SQL实现)
- 开篇之作
- BlackBerry 9850 应用:BBM, Windows Live Messenger (msn)
- 评测自己写的Cherry-C编译器
- tab 切换 over
- System.arraycopy() 分析
- 向量几何在游戏编程中的使用【4】2-D物体间的碰撞响应
- 成功人士的经典语录、值得学习
- WinCE 大排档第一篇
- [DB][Oracle][PARTITION]大数据量分区技术
- 查看windows占用端口进程
- java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结