中国Linux公社论坛's Archiver

kooxoo 发表于 2006-7-18 11:40

关于finc的两个问题

1. 请问有没有移植到WinCE平台?
2. 请问能否支持dll扩展? 就是用C写一个动态库,定义一些方法,
   然后就可以从脚本中调用。我看到的例子是在C里执行脚本。

项目里需要一个嵌入式的脚本,TCL和Lua都不满足要求,FinC看起来很棒,希望可以得到大家的帮助。谢谢!

kooxoo 发表于 2006-7-19 08:55

我昨天试图移植到WinCE,失败了,原因是代码里使用了汇编,似乎是要直接操作寄存器。
请问为什么要这么设计呢? 我在其他的脚本引擎里没有见过需要和寄存器打交道的。
WinCE的开发工具EVC是不支持C里嵌入汇编的。

wxMidnight 发表于 2006-7-19 09:06

1. 我手上没有WinCE,所以没移值过。
2. 是可以支持dll的,但是这部分需要你自己把dll里的函数注册到FinC中。

汇编部分主要是里面用到的avcall部分,你可以找到里面相应的平台然后一起编译即可。当然这部分也可以采用C来实现(这部分在FinSH里就是采用C来实现的,见FinSH系统函数调用部分)。

另外,
FinC已经停止维护了,FinSH还在维护。主要问题是,
FinC采用的是完全解释执行,对动态内存会占用比较大且申请/释放频繁。原本想反过来再采用FinSH的虚拟机结构,但是需求不足,停止了。

kooxoo 发表于 2006-7-19 14:57

为什么FinC会需求不足呢?好奇怪啊。是不是你面向的使用群体的问题?
在各种软件中,都广泛存在对嵌入式脚本的需求,这方面Lua是一个很好的例子,
魔兽世界就是用Lua作脚本,提供了很强大的扩展系统的能力。我之所以
找到FinC,是因为希望让我们的用户使用熟悉的C语法,Lua的语法是比较奇怪的。

关于扩展dll,你能讲得更加详细一点吗?用C实现avcall又应该怎么做呢?
我对移植C代码到winCE上有一些经验,希望可以把finC应用到我们公司的设备上。

谢谢!

wxMidnight 发表于 2006-7-21 13:15

关于需求的问题,
最初FinC是为了学习编译原理,后来慢慢的用于嵌入式系统,
再然后发现FinC的体系结构存在问题,主要的就是内存使用方面的原因,
再然后就把FinC剪裁并适用到自己的嵌入式系统中,这样就形成了现在的FinSH

所以,关于需求,当前来看,目前我的嵌入式系统并不需要类似于C语言的复杂脚本,而仅仅需要系统调试的功能,FinSH就足够了,增强了反而内存使用上去了(当前FinSH只需要20k的静态内存,1k的栈空间,无动态内存分配,非常精简的一个shell系统),所以我这方面目前的需求是零。

至于其他的,我还没太多时间来考虑,毕竟要养家糊口的。

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.