易码技术论坛

 找回密码
 加入易码
搜索
楼主: gameghost

[工具] [原创][PC端的LavaX和GVM2增强编译器IDE][07/12/20]

[复制链接]
发表于 2007-12-2 19:10:55 | 显示全部楼层
很不错的东西
但我的WIN98电脑运行不了
(缺少所需DLL文件)
发表于 2007-12-7 21:25:50 | 显示全部楼层
新传上的GLGC很好,没有先前的很多bug,比如代码折叠什么的,还有之前我提出的bug也没了.很感谢gameghost.

有一些新的疑问:
1.引用不能再被当作引用参数传递?如果可以这样就好了.
2.好像不太容易实现这个功能:一个函数接收一个数组的指针,例如:
  1. void f(char* s)
  2. {
  3.     putchar(s[3]);
  4. }
复制代码
难道只能:
  1. void f(char* s)
  2. {
  3.     putchar(*(s+3));
  4. }
复制代码
这样?
发表于 2007-12-8 16:36:48 | 显示全部楼层
今天又发现一个bug:
  1. #include "LavaXSysFun.h"

  2. struct noname
  3. {
  4.         char c;
  5.         int i;
  6. };

  7. void f(noname* n,char c)
  8. {
  9.         n->c=c;
  10.         putchar('a');
  11. }

  12. void main()
  13. {
  14.         noname n[3];
  15.         f(&n[1],0);
  16.         getchar();
  17. }
复制代码
竟然出现了死循环.
发表于 2007-12-9 00:06:28 | 显示全部楼层
我正准备写一个软件,但YAN的星端编译器对结构的支持有bug,于是我转向这个PC端编译器,毕竟是PC端的,确实很强大,但今天又发现一个bug,被困了一整天.gameghost看看附件,里面有演示bug的代码.真希望这个强大的编译器能再完美一些.

bug示例.rar

2.38 KB, 下载次数: 166

演示bug

发表于 2007-12-9 15:59:28 | 显示全部楼层
还有,在结构里为什么不能定义void*型变量?
 楼主| 发表于 2007-12-10 11:00:57 | 显示全部楼层
............忘了............
已更新...
发表于 2007-12-10 11:28:15 | 显示全部楼层
要支持就支持完全的标准c吧。
避免给用户带来困扰
 楼主| 发表于 2007-12-14 23:25:04 | 显示全部楼层
..........话说完全通过编译来弥补指令的缺陷是有点难度的.......
发表于 2008-3-8 13:27:26 | 显示全部楼层
我新买的t800+ 不行啊,提示非gvmaker文件,和ggv的2.4一样,也许是机器不支持
ggv的2.2版编译资源有问题,没有音乐之类的还能用,2.0版又有的函数没有,很苦恼啊

错了,我是说[Gvm1/Gvm2编译器:GSCIDE 1.0(08/2/28)]

[ 本帖最后由 mzx 于 2008-3-9 09:15 编辑 ]
发表于 2008-4-13 15:38:42 | 显示全部楼层
很好!
发表于 2009-6-8 19:42:00 | 显示全部楼层
这个软件现在 上哪下载   谁有啊   急需 !!!!
有的话  给我传一个我吧    cshlxm@126.com
发表于 2009-10-11 15:26:55 | 显示全部楼层
来晚了,顶!!!!
发表于 2013-6-20 13:08:29 | 显示全部楼层
文件呢?怎么不见了
发表于 2013-9-21 01:07:16 | 显示全部楼层

回复 128# 的帖子

大致看了下,楼主的工作非常不错。
我没用过文曲星,最近刚给孩子买了个e638,我也是搞软件的,关心了一下所谓的gvmarker
简单浏览了一下gvermarker的语法,就能推测出来,gvmarker一定是基于栈的虚拟机,而且每栈元素宽度只能是4字节32位长,这就带来了问题,小于32位的结构,没有问题可以直接栈传,大于32位的只能传地址了。
总结下gvmarker的问题吧,
1:栈元素的宽度只能是32位(可能最初是为了实现编译器简单)大于32位的只能传地址,但是,缺乏引用定义,缺乏指针定义,这会导致歧义。同时又会限制函数返回值,限制了函数返回值,会极大的影响编写表达式的便捷性。同时也会造成栈分配的浪费。
2 :原作者可能为了避免垃圾回收,同时也是为了简化,没有提供class,但是原作者甚至于连堆似乎都没有提供。这样,要分配空间,就必须提前声明数组。
正如楼主所说,虚拟机的缺陷很大,类似c++的引用声明可以解决一些编程便捷性问题,但是要想实现c标准(仅仅是c)是绝对不可能的(如c参数是传值的所有类型,显然gvmarker的32位栈办不到)
  因为我来的晚,没看到楼主贴的编译器,大致浏览了下楼主的内容,不知楼主是否还在做,只是建议楼主只做编译器就可以了,ide可以使用第三方的. 楼主很聪明,直接使用了turbo C的预处理器。 虽然过去很长时间了,还行希望看到楼主的编译器的。
发表于 2014-9-4 17:54:08 | 显示全部楼层

太好了

高手啊高手
发表于 2014-9-15 00:13:58 | 显示全部楼层
LSS想多了。。。
发表于 2015-12-30 21:49:56 | 显示全部楼层

把地方官地方官

热特人特人淘宝
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 21:01 , Processed in 0.013527 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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