相比于COM组件编程,可编程性扩展虽然比不上COM组件操作简单,但是由于可编程性扩展提供了底层的C语言编程接口,使得扩展编程拥有更高的运行效率和更稳定的执行能力,而且还使JAVA等其他编程语言调用SPSS进行分析成为可能。SPSS公司近年来着力加强了SPSS统计软件包对可编程性扩展的支持。从支持编程的多样性来看,SPSS的最新版本Statistics 17支持Python语言、SAS、R语言和.NET(C++、C#、VB)的集成开发,并提供了C语言的API(Application Programming Interface,应用程序编程接口)。
从编程灵活性来看,SPSS既可基于Script下的Saxbasic调用外部的Python、SAS、R及.NET程序,又可以被这些语言编写的程序所调用。从支持的操作系统来看,它既支持UNIX环境,又支持Windows环境。从运行特性来讲,既可以在后台调用SPSS处理器来完成指定任务得到输出的分析结果,又可以构建前端界面,实现与用户的窗口交互。可见,SPSS为用户提供了越来越灵活的编程技术支持,而且可编程性扩展已经成为SPSS高级用户自定制应用的良好选择。用户基于SPSS使用可编程性扩展,可以构建灵活、综合、与现有系统高度集成的企业级应用。SPSS的可编程性扩展最权威的资料是SPSS的官方文档,对版本Statistics 17.0而言,主要是《Programming and Data Management for SPSS Statistics 17.0》、《SPSS Statistics Programmability Extension Developer's Guide for Windows》和《SPSS Statistics Programmability Extension Developer's Guide for UNIX》。此外,SPSS还在可编程性扩展包中发布了相关的简单编程实例,可谓是周到。上述这些资料都可以在SPSS的官方网站开发人员中心下载栏目免费获取。
使用SPSS的可编程性扩展来进行开发和应用,首先要很好的理解SPSS Statistics的基础是什么,以及它如何工作。SPSS支持三种应用方式下的开发:
可编程性扩展包含在SPSS的基本系统里,提供扩展SPSS与需要独立集成插件的外部程序语言交互的基本的支持。SPSS实现与外部语言的集成主要是通过两个动态链接库文件,第一个是SPSSXD API,它包括C语言应用编程接口(API)实现内部处理(spssxd.dll)和外部处理(spssxd_p.dll),该API允许外部处理器控制SPSS统计应用。第二个是通用接口spssdx.dll,它使SPSS可以执行写在命令语句“BEGIN PROGRAM-END PROGRAM”语句块间的外部语言代码。
通常,一个插件包含两种库文件,第一种是MyLanguageInvokeSPSSXD,负责装载spssxd.dll或者spssxd_p.dll,并且使外部语言可以使用SPSSXD API。第二种是InvokeMyLanguage,它通过spssdx.dll为SPSS激活外部处理器,是一个插件的备选组件。