松鼠的博客

导航

统计

使用Active Scripting进行JavaScript解析的典型应用

正文
本文摘自《脚本驱动的应用软件开发方法与实践》
                               作者:陆其明

Active Scripting是微软公司提供的一种脚本解析技术,是ActiveX技术的一个重要组成部分。它支持解析两种脚本语言:VBScript和JScript,并且已经在很多专业软件中得到了广泛的应用,其中就包括微软公司自己的Windows操作系统、以及Office系列办公软件。有了Active Scripting技术,我们也可以让自己开发的应用程序来支持脚本解析,使应用程序的部分功能为特定的脚本语言所控制、与脚本程序实现互动,以此大幅度地提升我们的软件产品在用户可定制性、可交互性方面的表现。
接下去,本书将重点介绍Active Scripting的基本结构和实现原理,并以一个实例程序来演示Active Scripting的应用方法。通过这部分内容的学习,读者将基本掌握在自己开发的应用程序中支持脚本解析的技能。

...................


5.2.3 实例程序:CurveSee
 
假设你去一家公司应聘,被要求做这样一道题目:对于用户输入的任意一个平面函数f(x),请绘制出其函数曲线。很有挑战性哦!
这里的技术难点是如何来计算表达式的值。因为用户输入的表达式是任意的一串字符,如果要计算这个表达式的值,一般的做法是:对表达式进行扫描,去括号,按照运算符的优先级生成二叉树,然后遍历该树生成逆波兰表达式,再然后通过栈的方法进行运算。如果在表达式中再包含有函数的话,那就更麻烦了……
那么有没有简单一点的解决方案呢?答案是肯定的。我们可以使用脚本解析技术!因为JavaScript(或VBScript)引擎能够计算表达式的值,更重要的是,它们能够直接接受字符串形式的表达式。假设现在有个表达式为:f(x) = sin(x),我们只需在某个取值范围内、按照一定的步幅递增x的值,然后让脚本引擎去分别计算sin(x)的值,并将计算的结果赋给变量y,之后将每次x的值和对应的y值(以及当前循环计数器的i值)一起传回给应用程序;应用程序根据这么一对一对的x、y值,就能很方便地画出表达式的函数曲线了。这个过程可以用下面的这段脚本伪码来表示:

// 假设x的取值范围为[xMin, xMax],在这个范围内要计算maxCount个采样点
var x = xMin;  // x的初始取值
var xStride = (xMax – xMin) / maxCount;  // 计算x的步幅
var y;
for (var i = 0; i < maxCount; i++)
{
    // 在脚本中计算表达式的值
    y = sin(x);

    // 将计算结果传回应用程序
    Result(i, x, y);

    // 指向x的下一个采样点
    x += xStride;
}

接下去,我们就通过CurveSee这个例子,来介绍利用Active Scripting技术解答这个题目的完整实现。(请下载源代码)

正文完

附件:

  • CurveSee源代码 CurveSee.rar
  • posted on   Xproer-松鼠  阅读(474)  评论(0编辑  收藏  举报

    编辑推荐:
    · 记一次.NET内存居高不下排查解决与启示
    · 探究高空视频全景AR技术的实现原理
    · 理解Rust引用及其生命周期标识(上)
    · 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
    · 没有源码,如何修改代码逻辑?
    阅读排行:
    · 全程不用写代码,我用AI程序员写了一个飞机大战
    · MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
    · 记一次.NET内存居高不下排查解决与启示
    · DeepSeek 开源周回顾「GitHub 热点速览」
    · 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
    点击右上角即可分享
    微信分享提示