幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10471|回复: 3

[概论] [分享]推荐我的总结:BASIC语言大家族

[复制链接]

2

主题

4

帖子

106

积分

③业余

积分
106
发表于 2006-10-30 13:42:28 | 显示全部楼层 |阅读模式
原始位置http://blender.bokee.com/542166.html观看,效果比较好,呵呵
BASIC语言是我最初接触的计算机语言,QuickBasic是我觉得最精致的语言开发环境(小巧,集编辑器、解释器、调试器于一身)。QuickBasic(或者DOS 6.22的QBASIC)语法有些独特的地方,对初学者或许不是很友好,但是使程序显得非常简洁,一旦熟悉之后可以提高程序编写效率:

调用sub或者function(以下统称函数),既可以用aFunction(par1, par2),也可以用aFunction par1, par2。我只见过matlab中有这样的用法。
内建函数、语句支持缺省参数,中间的缺省参数用","跳过,末尾的缺省参数当然是不用写出来。还没有见过其它语言可以这样处理函数的参数,更不用提可以自己定义这样的函数了。
自定义数组起始下标。
除了由QuickBasic直接发展而来的VB、VBA、VB Script系列,BASIC语言的爱好者们开发了各种BASIC/类BASIC的语言和解释/编译器,这里列出一些free的:

FreeBASIC 试图在开源社区开发兼容QuickBasic语法的BASIC程序编译器,添加了新内容,但是对语法和语义都做了一些修改,开发过程中逐渐背离了最初的原则。fbc可以自己编译自己的源程序,运行在Windows、DOS和Linux平台上。
Visual wx-c Developer是针对wxWidgets(即之前的wxWindows)的form designer。使用FreeBASIC+wxWidgets编写。

RadASM只针对windows平台、使用windows原生控件的form designer。

Wallace Visual Editor这个form designer所有的控件都是用FBC自己画的,所以肯定是多平台的。

freebasic editor没错,它就叫这个名字,是一个IDE,带有简单的form designer,只针对windows平台、使用windows原生控件。作者同时也写了RapidQ的IDE+form desinger: RqWork

A FREE FreeBasic GUI Sample designer一个相当难用的form designer,主要是——我不知道怎么用它,哈哈。使用ASCII方式设计form倒是其次。

FBIde:使用C+wxWidgets编写的IDE,将会支持程序的调试。




Cheesecake BASIC 一个可以解释自己源程序的BASIC语言解释器。语法与QB基本兼容。实际上,它自身的源程序混合了大量类似C语言的预处理,通过网站上的了一个程序,把这个源程序转换成Qb45、Cheesecake BASIC或者PureBasic程序。可以把源程序包裹成exe文件,正在用C语言开发虚拟机,将使Cheesecake BASIC程序能够运行在其他OS上。



wxBasic 支持wxWidgets的解释型BASIC语言,Linux、Windows双平台,可以发布包裹好的可执行文件。
Ducke的wxEditor是由wxBasic写成的IDE,且带简单的form editor。



sdlBasic 基于wxBasic代码,支持SDL的解释型BASIC语言。已有程序可以把sdlBasic源代码转换成C代码,这样就可以发布可执行文件了。比较讨厌的是,sdlBasic的程序总是附带2个字库。



Basic4GL 支持OpenGL的BASIC语言,解释执行,只支持win98及更高版本Windows。可以把源程序包裹成exe文件发布。2006年8月20号的2.4.3版本,支持调用C++编写的dll。难道它想做成通用的BASIC开发语言?



SmallBASIC 解释型BASIC语言,数学运算和图形功能比较强,除了PC之外,PalmOS上也有移植。为了程序编写方便等等原因,作者改动了不少BASIC语言的关键词,所以用SmallBASIC书写的程序看上去怪怪的。



Yabasic PC、PS2平台都有出现。Windows、Linux下一样可以发布可执行文件。文档中提到用于隐藏运行脚本时出现的DOS窗口的RUN,可以用来发布所有的解释执行的脚本程序——我认为用批处理的方式发布自己的程序看上去比较傻。



Gambas 只支持Linux的解释型BASIC,号称Linux下的VB。从IDE到界面设计,都是全的。



KBasic 这个猛,支持Windows/Linux,据说是100%支持QB、VB的语法。从IDE到界面设计,都是全的。不是开源的,个人版免费,专业版收费。不支持win98,所以没有试验。



XBasic 支持Windows/Linux,带IDE,可以编译成可执行文件。不过太久没有开发了,语法与BASIC差距较大,而且IDE自身、编译生成程序的界面古怪,不是Windows标准GUI的样子。



xblite 基于XBasic代码开发,只支持Windows平台,并为开发Windows平台应用程序做了改进。



SheerPower 4GL 又一个自称第四代语言的家伙(另一个是forth语言,结果现在就只有在嵌入系统中用的比较广)。除了它的"精确的数字计算"之外,没发现有什么优于别的BASIC的地方。非商业运用是免费的,否则需要支付高的惊人的费用购买使用权。只支持Windows,解释执行,可以编译成伪代码随虚拟机一起发布。



RapidQ 比Gambas还早的仿VB的BASIC开发环境,免费软件。多平台,编译成字节码运行,发布的程序只有单个的可执行文件和一些数据文件,而不需要额外的动态连接库。软件不错,于是作者被挖,开发RealBASIC这个商品BASIC语言的IDE、跨平台插件,RapidQ停止更新。很可惜RapidQ不是开源的
这里是国人的一个RapidQ站点,资料总在更新。



Decimal BASIC 完全遵循ANSI标准,运行在windows上的BASIC解释程序。比标准多提供了图形函数、矩阵支持、复数支持。可以在一般的数字和有理数之间切换,这样可以得到数学上的精确结果(比如1/3就是1/3,而不是0.33333)。好像可以扔掉SheerPower 4GL了,hiahia,第四代语言,笑死了。



99BASIC 日语自由软件。老式的BASIC开发环境:F1是list,F5是run......。运行在windows上,提供了一些图片、文字、wav/mid媒体文件的支持,看上去很不错——至少在软件发布的2002年。



ActiveBasic windows上的日语软件。特点?类似一整套VB。可以编译成exe(但是我没有实验成功,每次编译,一个窗口一闪而过,看不清上面写了什么,没有exe输出)。作者肯定是在里面添加了限制使用windows版本的代码,他承诺的英文版也迟迟不见动静。



O'Basic Windows上的BASIC,与标准BASIC不同,支持剪贴板、OLE......(感谢FatCatHu提醒)。



JustBasic 商业软件Liberty BASIC的简化版,运行在windows系统上,可以产生、而不是编译成可执行文件(感谢FatCatHu提醒)。注意:在中文windows上,1.01版本的源程序只能IDE中解释执行,产生的TKN文件运行报错,开发者承诺1.02版改正这个bug。自带了Form designer的源代码,是学习这个语言的好参考文件。2006年过了大半了,还没看到1.02。主页上也把论坛连接放到了隐蔽的地方,我猜测Liberty BASIC的销售不好了。



LGP Light Game Programming,使用DirectX开发windows游戏,只有日语文档。函数名中总是有@符号(比如G@SETUP,F@OPEN……),看上去好不习惯。自称是编译型的BASIC语言,不大可能!



MoonRock 先把源程序翻译成asm语言,然后通过汇编程序产生DOS下的可执行文件,可执行文件因此个头很小。个人可以free使用源代码。



MediaBASIC 一个新的windows下的BASIC语言,用Delphi编写,写信给作者的话可以获得源代码。



envelop 也是一个具有一定规模、可用的BASIC语言,IDE、layout俱全,可惜不开发了。官方在准备专职其他方面的工作之后,打算转让envelop的版权,但是只在软件中留了电话信息。之后,版权被Janus Software获得,但是他们也只是在很多年以前出了一个linux版,把软件名字改成Phoenix Object Basic,就再没有动静了,给他们写信问询,没有消息,又一个软件死亡了。
envelop,不会用,看不懂文档、学不会,哈。



SpeedBASIC 运行于windows平台,IDE(代码折叠、高亮、提示、自动完成)、form designer俱全。把BASIC代码翻译成C++代码,因此需要一个C++编译器。语言自身还有待完善。如果域名解析错误,请访问这里



JavaScript BASIC Interpreter 网页上的BASIC解释程序。



JavaBASIC 把类BASIC语言编译到JAVA的class文件(这样可以开发手机软件),提供了游戏接口




RealBASIC 其实standard版本对Linux用户免费,因为公司看到了linux下存在很好的类似VB开发工具(不知是不是指Gambas,难道还有其他我不知道的?),所以作出了明智的决定。优点是一个源程序可以在Windows、Mac、Linux上通吃(标准版和专业版),而且在这3个平台上其实也可以编译到任何一个平台上的可执行文件(仅限专业版);相比VB,RealBASIC的开发工具是绿色的,编译出来的可执行文件也是绿色的;售价便宜。缺点是,编译出来的可执行文件的个头比较大,都是2M以上的(因此我怀疑,它并不是如宣传中所说的编译到native code,而仍然只是对某种字节码的打包),但是比使用.NET的怪兽小多了;调试不方便;编译速度慢。
公司很会做市场,在微软准备停止支持VB6以便让新语言VB.NET杀死老VB、Borland将出售旗下IDE业务消息出来以后,马上在网站上为VB6和Delphi用户推出免费获得标准版RealBASIC的活动,而实际上活动期间任何人都可以同样地获得该产品。然而,我认为RealBASIC要想真正达到VB或者Delphi的程度,还有很长的路要走(比如在2006年才支持了UDT)。
顺便一提,我无意间找到了RealBASIC中国代理公司头头的blog。在国内一年销售¥20万还是有点困难的,祝他好运吧
还得说一下,MSN等等地方的blog空间都需要注册用户才可以回复,真是垃圾。



BCET Basic Compile to Expression Tree,把BASIC源代码编译到汇编语言,然后用MASM编译成可执行文件,可以写gui程序。作者打算兼容QuickBASIC/QBasic/PDS/VBDOS的源程序,不过有段时间没有更新了。



BCX 将BASIC源代码编译到C代码,这样就可以用C编译器(比如LCC、Pelles C,而不是在TC世界考古)编译了。



ExtremeBasic 作者Andrew Barry不满意现在的BASIC越来越强大的时候,丢弃了易用性,于是写了这个软件,试图在IDE中解决所有的问题(换句话说,还是再造一个VB)。目前还是很初级,而且ExtremeBasic使用的是自己定义的一种BASIC方言,所以看上去有些奇怪。提供的例子中,编译IDE的时候ExtremeBasic crash了。
IDE本身使用了QT库,所以是跨平台的(Windows/Linux/Mac os);可以说它定义的BASIC语言也是跨平台的,因为它把BASIC翻译为C/C++,然后借助MingW(ExtremeBasic自带)编译成可执行文件,编译好的可执行文件不依赖于QT。只需要把MingW目录整个放到IDE可执行文件相同的目录(因为软件的bug,不能是中文目录、长文件名目录中)中,就会自动寻找编译器,而不需要设置环境变量。
八卦一下,是Andrew Barry编写了上面提到的RealBASIC,但是不晓得他为什么离开这个公司、然后新开发免费的ExtremeBasic。
顺带说一下,受ExtremeBasic等等软件的影响,有人在开发banteng - Cross Platform Visual Javascript。看说明,似乎是要借助GCJ,开发可编译到本地代码的、运行库小巧(<10M)的JAVA开发环境。说实话,我很讨厌JRE、.NET framework,觉得它们都是又丑又大的东西,它们之上的的程序除了程序员用用之外,不适合普通用户。



中文VB6 Working Model Edition 回到我最喜欢的VB。这个版本很特殊,它是为一些VB学习书籍专门制作的,只能够解释运行程序,不能编译到exe。据说是全功能的,不过似乎debug都不能用。基本上是绿色的,而且不过超过15M。有空看看能不能把VB专业版的编译工具提取出来。微软曾经的产品多么地小巧,这个特殊版本的VB证明它仍然具有制作小巧绿色软件的能力,可是为什么非要制作现在越来越大的windows、.NET和开发工具呢?盖子脑袋坏了。



CoolBasic 面向游戏开发的Basic语言,在我的机子上运行太慢了(不论是IDE还是编译之后的exe)。更新似乎停滞了。



thinBasic 使用商业软件Power Basic开发的免费BASIC解释程序。



Euphoria 自3.0.0起,这个曾经的商业开发软件是开源的了。它可以开发DOS、Windows、Linux下的程序。这是解释型的语言,但是自称其解释器比Perl、Python快了至少30倍。



QuickerBasic 比FreeBASIC还早的、打算兼容QB的编译器,我觉得它对QB语法的改变比FreeBASIC还大。但是作者的开发一直不顺,在距第一个公开版本(解释器)2年之后的2006年10月才公布另一个版本。FreeBASIC的论坛上有人宣称“我们有了竞争对手”,在这个帖子里,v1ctor宣布在fbc 0.17发布之后,因为身体等原因(唉,我就是不想走程序员这条路啊)他将暂时退出开发,项目交由社区热心人士管理;在这个帖子里,QuickerBasic的作者someone42表示愿意参与FreeBASIC的开发,加速FreeBASIC使用GCC后台的过程(也就是说,QuickerBasic会死去)。



 

34

 
发表于2004年、旨在纪念BASIC语言40岁生日(5月1日)的两篇文章回顾了BASIC的历史,简介了庞大的BASIC家族的部分成员,读起来饶有趣味:《BASIC四十年》和《BASIC万花筒》。
另外,一直渴望获得一份QB/QBasic自身的源程序,《BASIC万花筒》一文中提到有MS Qbasic 1.1自身的源代码下载,我很怀疑是否有这种可能,可惜连接是坏的

顺便B4一下仍然说BASIC语言只能解释执行的人,hiahia
回复

使用道具 举报

9

主题

1512

帖子

9136

积分

荣誉群

Cod3r

积分
9136

终身成就奖

发表于 2006-10-30 14:41:19 | 显示全部楼层
不錯,加精
(\\__/) (O.o ) (> < ) This is Bunny.
回复 支持 反对

使用道具 举报

0

主题

11

帖子

122

积分

③业余

积分
122
发表于 2007-10-20 14:19:14 | 显示全部楼层
CoolBasic對寫遊戲是滿不錯的..只可惜不支援2個BYTE的文字..光是變數的值等於中文就會出錯..其它的話..我還是用VB6比較實際..
回复 支持 反对

使用道具 举报

7

主题

79

帖子

961

积分

⑤进阶

积分
961
QQ
发表于 2008-1-30 10:37:31 | 显示全部楼层
呵呵,好长,先支持了,慢慢看!谢谢LZ啦  呵呵
csboy.0055.cn  我办的CS网站 呵呵!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-16 16:50 , Processed in 0.040744 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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