BASIC语言到C语言的转换 江西 黄焕如 1992-11-20 BASIC语言由于简单易学,功能较强而拥有大量的用户,一些MIS软件也常常利用BASIC语言编写成外部可执行程序来直接对数据库进行读写。而C语言是一种紧凑、高效、功能更强的语言,可以说C语言各方面都优于BASIC语言,许多优秀的软件都是用C语言编写的,C语言是目前得到广泛应用的高级语言之一. ASTOC就是从BASIC语言到C语言的转换程序。其中BASIC语言可以是IBMPC BASIC、BASICA或者GWBASIC,转换后产生Microsoft C4.0版本的C语言。BASTOC可以将BASIC源程序直接转换成C语言的源程序代码,这尤其适用于熟悉BASIC语言而又希望进一步学习C语言的用户,也可以把BASIC源程序直接变成可执行文件,类似于一种新的BASIC编译程序。通过BASTOC转换的可执行文件的运行速度可提高1~2个数量级,并可克服BASIC语言数据和程序限制在64K的规定,甚至可以占用整个内存,从而大大地提高效率。 BASTOC包括了转换程序和由多种函数支持的运行态程序库。转换程序有MBAS.EXE和MBASC.EXE两种,前者适用于建立小内存模式的转换,数据地址空间限制在64K内,速度快效率高;后者适用于建立大内存模式的转换。一般的情况下只要程序不发生内存溢出,使用MBAS.EXE为好。运行态程序库有四种,分别支持不同的内存模式,其中MBS.LIB为小模式,编译标志是/AS;MBM.LIB为中模式,编译标志是/AM;MBC.LIB为紧凑模式,编译标志是/AC;MBL.LIB为大模式,编译标志是/AL。 安装好BASTOC后,可以十分方便地将某个BASIC程序转换成C语言源程序,并编译产生成可执行的EXE文件,例如: MBAS [-标志] NAME.BAS NAME.C 其中NAME.BAS必须以ASCII码形式存盘,在BASIC下执行SAVE “NAME”,A即可。 MSC NAME.C[/编译选择] LINK NAME,NEMA,[内存模式选择项] 如果不需要将BASIC源程序转换成C语言代码,而直接编译使用,可使用命令: MBB[-标志]NAME.BAS[内存模式选择项] 尽管BASTOC能够迅速地将BASIC源程序自动转换成相应的C语言程序或编译成EXE文件,但是在某些命令上仍有所限制,主要有:CHAIN、COMMON、LOCK、PEEK、POKE、RUN、SHELL、SPOOL、UNLOCK、VARPTR、USR等,其中有的命令不影响转换工作但不产生相应的C代码,有的命令在某些内存模式下不支持,有的必须改写成相同功能的程序后才能被转换,详细的说明可参阅BASTOC使用指南。