BASIC和C系列各种语言能不能实现完美兼容
vb吧
全部回复
仅看楼主
level 10
各种编程语言实在是太多了,VB也确实有很多地方不尽人意。换语言难度实在太大,能不能实现语言互通呢?
2022年05月23日 10点05分 1
level 10
2022年05月23日 10点05分 2
level 10
现在比较成熟的语言,除了汇编语言之外。
要么跟C语言类似,要么像BASIC语言。
BASIC语言现在也就VB、VBA、VBS还在使用。
而别的语言几乎全是C语言近似的写法。
还有一些像SQL、Dephi、Luna之类的,
语法跟BASIC高度相似,却又有C语言的一些特征。
我在这里是按相似度把它们分为B和C两个系列,不是指某种语言。
那么BASIC和C系列语言的明显区别在哪里呢?
C系列每一句代码后面都是分号,VB、VBA、VBS却是换行。
当然VB里也可以使用冒号代替,这是它们语句分割符的不同。
然后是C系列使用的符号多一些,B系列使用语句多一些。
由于发不了表格,估计学过VB的一定也了解过一些C相关写法。
2022年05月23日 10点05分 4
VB/VBA跟汇编的血缘关系更近
2022年05月24日 04点05分
level 10
就比如说VB里的and、or、xor、mod、not等在C系列里都是符号。
除了上述这些差别,还有B系列以什么语法开头往往以End什么结尾。
比如if到end if 还有sub到end sub等等,很多这样的。
而C系列则是{开头,}结尾,或者说这叫一个片断吧。
那么哪一种更简单呢?很多人会说是BASIC。其实不对
VB的代码是最简短的,注意是代码不是语法。语法上明显C更简短。
比如and、xor、mod,换成C写法只用一个字符号,B写法是五个字。
有人说这明明三个字,怎么是五个字,因为它们前后必须加空格。
如果你写a&b在C系列里是没问题的,而BASIC里不加空格aandb显然是不行的
再比如then也没有)简短,End Function也没有}简单。
那么申请变量VB是“Dim a as byte”,C写法则是byte a;
也不用再多作比较了,用VB的人肯定不服气,“VB代码就是比别的精炼”
我自己使用VB十几年,出于种种原因,比如VB多线程和并发处理有点差,数据类型有点少,不能用指针等等。
我尝试学习C++却一直难以入手,毕竟习惯VB了。我之所以要自己设计编程语言,当初也是想尝试换一种语言。
所以在自己定义编程语法时,几乎是完全模仿VC的路线,而IDE界面则是跟VB一样。
相比之下VB的界面设计全球最好,没有之一。但在语法上则有一个“执念”就是想和VB不一样。
2022年05月23日 10点05分 5
level 10
为什么非要跟VB“划清界限”,就是不想让人说我的语言就是用VB中文版。
因为我是直接生成机器语言的,跟任何编程语言都没关系,包括汇编。
而像易语言、vs系列、gcc、go、gun、python、JAVA、等则是翻译型或解释型语言。
我完全没有炫耀的意思,就是说我的编程原理不依赖任何语言,不依赖系统。(只是你要写win软件时依赖)
我也可以在Linux、安卓、苹果、塞班等系统下,甚至用单片机开发win系统的软件。(别的语言没这功能吧)
不过话说回来,这有什么用,半夜在被窝里,用手机写软件,还不能在手机上测试,发电脑上才能用?
随着我设计的编程语言一步步完善,就发现C写法也是有很多不合理的地方。(VB用户来点精神!!)
比方说判断语句,在C系列是“switch”,在B系列里是“Select Case”
VB可以用逗号分割多个条件,还可以用“1 to 10000”,一到一万,同时再加逗号。
而在C系列语言里根本没有这种写法。“只能”是一次判断一个条件。
既然是一个条件,代码后面必须加break之类的跳出。不加的话,后面代码全部都会执行。
这叫怎么理解,“单条件”判断某个数,如果等于1,则执行等于1这个条件的代码
同时其它不等于1的条件代码也会全部执行。这叫什么逻辑,太让人无语了吧。
那C语言为什么要用break,它内部直接给“加”上不行吗?因为它真的有用。
如果你不加break,可以直接写下一个条件判断,只要没这句,它就会继续走
那就可以实现“多条件”了呀,但是1到一万的怎么办?判断是否为1,是否为2的代码,一直写到一万……
真的只能这样了。从这一点上来说,肯定是VB的语法更好用一些,那么我就也支持逗号加多条件。“一到一万”,不是用to而是用~,这个英文符号就是表示几到几的。之所以不用-是防止和减号混淆。
2022年05月23日 10点05分 6
level 10
还有C系列语言里,=和==,|和||,&和&&意思是不一样的,=不是等于,==不是等等。
不过VB里却没有++、--、+=、-=、*=、/=之类的写法,毕竟写法简单,我自然是会支持的。
不过我在支持的同时,也更灵活:可以用a+5;B*c;d/10;这种写法,注意这是三句独立代码
这样才更符号“语言”逻辑呀,A加等B,B乘以等于C,多别扭啊。直接a
加3
,b乘5,C除以D才通顺。
包括那些分号、括号之类的,真正的作用就是区分一句话。任意符号包括换行也能把语句区分开。所以我就没把这些条件限制得很死,只要能达到区分的目的,不一定非得用分号啊。
那么重点来了,在我的语法里,空格总要有吧,而且在哪里的空格都要处理。
它在VB里是用来区分变量、关键词等“名称”,C里面也一样啊。再有换行在C里也有啊
也一样能区分两个语句,那么我不再严格规定使用符号了,用VB的写法,一样通行啊。
搞了这么久,一直在跟VB“划清界限”,结果还能用VB的方式来写,那我这又是何苦呢?
能兼容不是更好吗?当然了100%兼容是不可能的。就比如VB的有些写法,and、xor还是太长了。毕竟符号只有一个字,还不强制加空格。用英文又太长,用中文也许可以,比如then太长,用“则”就可以啊。还有and可以用“与”,or可以用“或”,一个英文字搞不定,汉字肯定可以。(不过能用符号肯定比打汉字要容易)
2022年05月23日 10点05分 7
level 10
于是乎我终于改变思路,再也不“排斥”VB了,毕竟是伴随我十几年的语言,它的长处我也相当了解。我在吸纳接受VB优点的同时,却要跟它“撇清关系”,实在是太不应该。我也不再反感别人说我这是VB中文版了。
还可以大方的承认,这就是“VB中文版”,而且解决了VB很多不完善的地方,这也是我一个VB“老手”的经验之谈。我这么多年来,之所以要自己做编程,不就是要突破VB的局限性?要是VB能达到我的需求,我又何必放弃那么熟悉的语言,来走这条完全“摸黑”的路?
最后我再规劝一下在各个不同领域“坚守”的编程爱好者,不要再有门户之见,作为中国人为了给国外的软件分高下,而争的面红耳赤,甚至恶语相向,实在是没必要。还有那些不喜欢英文编程的国人,也不要极力排斥国外的东西。我开发这个SEC中文编程,也是全面兼容英文的。毕竟网上能复制下来的代码,几乎都是英文的。能直接拿来用不更好吗?我既能兼容英文又能写中文代码,既能兼容C系列语言,又能兼容B系列语言,不也是挺方便的吗?
截图示范一下,原本代码里分号特别多。
2022年05月23日 10点05分 8
看着还是很有技术功底的,有下载链接么?
2022年05月24日 04点05分
level 10
我把代码里的分号全部都去掉,试试效果。
然后编译运行都没有问题,“如果”代码那里不用括号换成了空格,后面是“则”,英文的就不再继续演示了,用“then”也是可以的。“绘制弹窗 ~ 绘制静态”这种代码写法,也是VB里才具备的,就是把所有要绘制的“小窗口”,都指定为18号粗宋体,运行后列表、标签、文本框,按钮都变成这种了。
总之“兼容”也不是要完全一模一样,哪种好用,书写方便就怎么来。用中文容易看懂,用英文输入快,所以“国产编程”就应该是包容的发展。
2022年05月23日 10点05分 9
level 13
vb都被淘汰了,最后一版也是99年的,不在更新了,,现在都是vb.net了,
2022年05月23日 12点05分 10
vb.net是为数不多的,零人使用的编程软件了。
2022年05月23日 23点05分
@极语言中文编程 :根据编程语言排行榜,vb.net就在榜上,vb停止更新,vb.net微软也不在支持了,现在微软主推c
#,c#
和vb.net同时出来,微软把眼光放到了c#上面,导致vb.net失去了关注,停止发展,vb.net是建设在net上vb,相比vb,支持更多
2022年05月24日 03点05分
@极语言中文编程 但vb与vb.net,语法都不一样,就算vb转过去,也有点难
2022年05月24日 03点05分
level 13
至于switch,他的不是选择,而是从哪里开始,一般判断用if else,你不能用一种语言设定来说另一种,
2022年05月23日 12点05分 11
level 13
至于中文编程,易语言,就是个汉化版的vb,功能丰富度堪比c,模块众多,现在好多软件和外挂都用这玩意,小学生都容易上手,现在多好都是小学生用这玩意开发,,,,,你要开发中英文,不如把这2两个结合,,这玩意还有另一个版本,给手机开发应用的
2022年05月23日 13点05分 12
易语言跟VB没关系的,它是C++的内核,把用户的中文代码,替换成英文。然后交给VC链接器编译而成。易语言只是个编辑器而已。
2022年05月23日 23点05分
@极语言中文编程 我说的是易用程度,和在使用体验上,他的界面跟vb很像
2022年05月24日 03点05分
level 12
这,又一版本易语言?搞这么花里胡哨,汉语编程真的方便?正儿八经的问你一句你是觉得搞二个字母简单还是搞二个汉字简单
2022年05月23日 14点05分 13
不懂别瞎说,易语言是直接调用C++的,我说了,我可以用单片机开发电脑程序。用硬件生成软件。这才是最底层的实现。
2022年05月23日 23点05分
level 6
楼主还是很厉害,别听他们瞎说,支持你继续
2022年05月25日 04点05分 14
level 1
Freebasic和vb6的语法非常接近。它是采用GCC和LLVM编译的。支持32/64位。事实上 早有人为Freebasic 包装了所有的com层。至少工作接近90%,可惜 最后一里路,实在没有精力搞下去了。
2022年05月25日 16点05分 15
level 14
有啊,用VC写轻量级COM组件的dll给VB6调用很方便,而且还不需要注册随便用。
2022年05月30日 16点05分 16
1 2 尾页