一个我自己都不知道该如何描述的底层问题-高手过招(200分)

  • 主题发起人 netexplorer
  • 开始时间
N

netexplorer

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]问题的起源是这样的,我们打算开发一套推理系统,其中需要一种可编程的语言来描述这种推理过程。
这种可编程语言即可以是编译型的,也可以是解释型的,关键是要支持面向对象的语法。
说的具体点,就是希望在object pascal语法上再进行一些扩展,比如支持语法级事务,支持并行等。
如果从头开始开发基于此语法的编译系统,显然是不上算的,我们自然地想到,delphi是否提供了这种扩展的
编译功能,这样我们就可以在delphi的编译器之前,处理扩展的部分,而将传统的,delphi能够识别的object pascal
语法交给delphi去编译。
具体来说,我们希望能够实现这样一种效果。
找到/开发一个类Aclass,该类实现了一个过程:Process(Params:Tlist;Code:String )。其中Params为初始参数,Code为具体的程序编码;
比如:
var
Aobject:Aclass;
Params:Tlist;
Code:string;
...
Code:='var i,j:integer
for i:=0 to 100 do j:=j+1
';
Aobject.Process(Params,Code);

在上面这段代码处理完之后,Params中应该包含两个变量对象,一个对应i,一个对应j,都为整数100。
换句话说就是,希望实现这种效果,程序运行的过程中,在输入一字符串,这字符串是一段合乎object pascal语法的程序,
然后调用某个处理函数,得到这段程序的执行结果。

不知道大家理解这个问题的意思没有,实际上我自己也不太清楚这个问题应该定位到什么类别中,我想这可能需要用到delphi的一些底层的机制,
所以就发到这个版面上来了。我们也正在摸索的过程中,大家有什么好的思路和想法,请多多交流。我的email:leowangyu@263.net。
 
你的意思是想做个类似预处理的程序,来扩充Delphi?
如果是需要支持类似Delphi语法的脚本控件,网上有很多现成的。。。
 
我不得不对tseug说,你太强了:)[:D]在我向你索要资源地址之前,请允许我提几个问题:)
1:这些控件支持自定义类型吗,比如我在脚本里自定义了一个Tmonkey类型,也能执行吗?
2:这些控件支持扩展吗?如果支持的话,实现扩展的机制复杂吗?

主要就这两个小问题,还有一个最大的问题,如何找到这些资源[:D]感谢ing[:D]
 
关注ing...
 
用一些脚本控件即可,
另外也可直接采用微软提供的ActiveScript脚本控件.
祝你好运
 
我手头有几个脚本控件, 如果需要的话可以发邮件tseug@263.net。
 
to tseug:
你好,非常感谢你的帮助。我现在手头也收集了不少脚本控件。
现在发愁的不是没有控件,而是这么多控件不知道哪个好用。
目前我测试的控件中,最棒的是一套名为Innerfuse Pascal Script 3的控件。
这套控件支持外部函数,结构,等等 ,还带源代码。
但是这套控件也不是十全十美,比如,不支持定义类,
不知道各位大虾还见过什么其他超强的脚本控件没有,给我推荐推荐。
非常希望和大家交流关于脚本控件的经验,有空多切磋 oicq:593423
再次感谢各位同仁的帮助:)[:D]
 
类可以用结构来模拟.
成员变量就是结构的成员变量,成员函数就用函数指针.
但是不支持继承和封装.
 
看来你是要写一个解释性语言,并且是依托于Delphi的。

你现在的思路是不行的

先不要谈技术路线

先把这种语言的应用范围定义好

然后定义语法

再谈如何实现的问题吧
 
我记的好想有很多种的编辑器生成工具,只要你定义后一些基本的
规则,他就可以生成编译器,有支持面向对象,就是效率低点,你
可以找来试试
 
严重推荐 Javascript,他的优点是:
1、解释执行
2、他是面向对象的,扩充方便,可以自定义类(嘿嘿,没几个人会吧?)
3、支持类似Aobject.Process(Params,Code);的方式,好像是函数eval()
 
顶部