Lisp文件的编译

lisp代码一直以灵活性著称,lisp中的宏和函数式编程思想已经逐渐开始融入其他语言。

今天我们不说lisp语言的种种好处,说说lisp编译的问题。


lisp最常见的运行方式是解释运行,这种方式依赖于解释器,执行速度也不快,效率较低,所以lisp的编译好的工程,如果不是给用户做调整的部分或者是不希望二次开发的代码,常使用编译的方式,加速程序的运行,据说lisp的商业用编译器,编译后程序的效率能达到C语言的1/2,还真是恐怖啊。。。


lisp的编译是编译成字节码,最普通的方法,比如用clisp,可以加一条指令

clisp -c a.lisp

这样就看到, clisp自动给我们生成了a.fas 和a.lib两个文件

clisp a.fas就可以解释执行字节码了


这种方式高效快捷,是非常实用的方法,不过还另外提供一种生产exe的方式

lisp不能编译成机器码,这个exe实际上是自带一个lisp解释器的clisp实现,需要把clisp根目录下full文件夹中的dll全部带走,这样才能运行。


方法如下:

(EXT:SAVEINITMEM "a.exe"
                 :QUIET t
                 :INIT-FUNCTION 'main
                 :EXECUTABLE t

 :NORC t)


main那一行最为重要,是在指定该程序的入口函数,这样就打包了一个exe程序。


也许你还会用到这个(EXT:EXIT),用来退出的函数,因为你的程序跑起来后就是一个lisp的实现

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值