admin管理员组

文章数量:1535838

2024年5月3日发(作者:)

和一个老乡聊天,她在做什么?答曰处理数据。无心地问了一句,你们用什么处理数据

呢,答曰: IDL、 MatLab. 出于职业地敏感,我详细地问了一下IDL的一些情况,不问

不知道,一问吓一跳,或许是咕噜寡闻,或许是隔行如隔山,如此强大的软件,我竟然不知

道了。实在惭愧!(以前觉得,在数据处理方面,SARS, SPSS, Matlab, Mathematic,Maple,

Fortran 几乎可以打遍天下!)从网上找了些IDL的资料,恶补一下。

1、IDL是什么?

美国RSI公司(现并入ittvis--编者注)的旗舰产品--IDL(Interactive Data Language)

交互式数据语言是进行二维及多维数据可视化表现、分析及应用开发的理想软件工具。作为

面向矩阵、语法简单的第四代可视化语言,IDL致力于科学数据的可视化和分析,是跨平台

应用开发的最佳选择。早在1982年NASA的火星飞越航空器的开发就使用IDL软件,到现在

IDL已经被列为国外许多大学的标准课程,

IDL使科研人员无须编写传

统程序就可直接研究数据

IDL(Interface Definition Language)即接口定义语言,是CORBA规范的一部分,是跨平台

开发的基础。IDL提供一套通用的数据类型,并以这些数据类型来定义更为复杂的数据类型。

可变化 IDL 基本类型 整数类型 OMG IDL 摒弃int 类型在不同平台上取值范围不同带来的

多义性的问题。常数定义常数可以是整数、字符、浮点数、字符串、Boolean、octet 或枚

举型,不能是 any 类型或用户定义的类型。OMG IDL数组类型IDL array 和 sequence,可

以轻易地被映射到实现语言中。序列可以包含所有类型的元素,不管是基本类型还是用户定

义的类型。

2、IDL语言是什么?

简单的说,IDL是VC、VB、JAVA、FORTRAN、MATLAB、OPENGL等语言的集成。 IDL语言与大

型图形和GIS应用软件相距近,应用IDL可以快速的开发出功能强大的三维图形图像处理软

件和三维GIS应用系统。

从本质上讲,OMG IDL接口定义语言不是作为程序设计语言体现在CORBA体系结构中的,而

是用来描述产生对象调用请求的客户对象和服务对象之间的接口的语言。OMG IDL文件描述

数据类型和方法框架,而服务对象则为一个指定的对象实现提供上述数据和方法。

OMG IDL文件描述了服务器提供的服务功能,客户机可以根据该接口文件描述的方法向

服务器提出业务请求。在大多数CORBA产品中都提供IDL到相关编程语言的编译器。程序设

计人员只需将定义的接口文件输入编译器,设定编译选项后,就可以得到与程序设计语言相

关的接口框架文件和辅助文件。

IDL文件应用过程如图1所示。

图1 OMG IDL文件编译过程

3、IDL语言能干什么?

由于其强大的功能和独特的特点,IDL语言可以应用于任何领域的三维数据可视化、数值计

算、三维图形建模、科学数据读取等功能中。概括说来,在地球科学(包括气象、水文、海

洋、土壤、地质、地下水等)、医学影像、图像处理、GIS系统、软件开发,大学教学,实

验室,测试技术,天文,航空航天、信号处理,防御工程,数学统计及分析,环境工程等很

多领域,IDL语言都可以得到广泛而又深远的应用。

采用OMG IDL这样的说明性语言,其目的在于克服特定编程语言在软件系统集成及互操作方

面的限制,这正是CORBA的诱人之处,同样也体现出采用CORBA构造分布式应用程序在网络

时代的强大生命力。OMG IDL已经为C、C++、Java等主要高级程序设计语言制定了IDL到

高级编程语言的映射标准。项目开发人员可以根据需要选择自己最熟悉的编程语言来独立开

发基于CORBA的应用,而对软件系统的互操作能力不产生影响。

4、IDL已干出了什么?

目前应用IDL语言,已经开发出了ENVI、IMAGIS、RiverTools、医学等成熟产品。具体的

应用实例也非常多,如在2000年澳大利亚悉尼奥运会综合预报系统、美国国家环境卫星数

据和信息服务中心的厄尔尼诺现象分析等工作中得到了成功的应用。作为面向矩阵、语法简

单的第四代可视化语言,IDL致力于科学数据的可视化和分析,是跨平台应用开发的最佳选

择。它集可视化、交互分析、大型商业开发为一体,为用户提供完善、灵活、有效地开发环

境。

OMG IDL的语法规则

1. OMG IDL文件举例

module Compute

{ typedef double radius;

typedef long times;

interface PI

{ double getResult( in radius aRadius, in times time); }

}

上述接口定义文件主要用于客户端向服务对象提出请求:计算π值。因此,模块中定

本文标签: 语言数据文件分析对象