交互式数据语言,或称IDL (Interactive Data Language),是一种科学家常用的编程语言。
概要
IDL是一种阵列化的、数值的以及互动的编程语言;主要用于互动式处理大量资料(含影像处理)。其语法结构大量来自于Fortran编程语言,也有部分来自C语言。
IDL最早源于早期的VAX/VMS/Fortran。其语法仍显示了以下的继承物:
历史
IDL的前身版本是在20世纪70年代在科罗拉多大学博尔德分校的大气和空间物理实验室(LASP)开发的。在LASP,David Stern参与了允许科学家在不雇用程序员编写或修改单个应用程序的情况下测试假设的努力。斯特恩开发的IDL演化链中的第一个程序名为Rufus;它是一个简单的面向矢量计算器,运行在PDP-12上。它接受指定算术运算的双字母代码,用作操作数的输入寄存器和目标寄存器。在PDP-8上开发的Rufus版本是Mars Mariner Spectrum Editor(MMED)。 LASP科学家使用MMED来解释Mariner 7和Mariner 9的数据。后来,Stern编写了一个名为SOL的程序,该程序也运行在PDP-8上。与它的前辈不同,它是一种真正的编程语言,具有类似FORTRAN的语法。 SOL是一种面向数组的语言,具有一些原始图形功能。
斯特恩于1977年离开LASP成立研究系统公司(RSI)。第一个RSI产品是PDP-11的IDL。在此版本中,IDL支持的图形主要是Tektronix终端和光栅图形显示。 RSI于1979年向NASA的戈达德太空飞行中心和Ball Aerospace&Technologies公司出售了第一批IDL许可证。两年后,RSI发布了IDL的初始VAX / VMS版本,该版本是用VAX-11 MACRO和FORTRAN编写的。它利用了VAX虚拟内存和32位地址空间。国家大气研究中心(NCAR),密歇根大学,科罗拉多大学和海军研究实验室开始使用IDL这个版本。
1987年,RSI将IDL的开发工作转移到Unix环境,这需要在C中完全重写代码,而不是现有版本的VAX IDL的端口。 Stern和Ali Bahrami在Sun 3上重写了IDL for Unix,利用重写来扩展和改进语言。随后,IDL进一步扩展并移植到Unix,VMS,Linux,Microsoft Windows(1992)和Mac OS(1994)的几种变体中。
小部件于1992年被添加到IDL,提供带有图形用户界面的事件驱动编程。 1997年,基于Web服务器的ION(IDL On the Net)在商业上发布。 ENVI的第一个版本是用IDL编写的遥感多光谱和高光谱图像分析应用程序,于1994年发布.ENVI由Better Solutions Consulting,LLC创建,开发和拥有,直到2000年10月由Eastman从BSC购买柯达与他们购买RSI一致。 RSI在1994年至2000年10月期间根据与BSC,LLC的许可协议条款出售,营销和支持ENVI。新的对象和指针类型以及有限的面向对象编程功能于1997年被添加到IDL。
IDL已广泛应用于太空科学,例如太阳物理学。欧洲航天局使用IDL处理几乎所有由Giotto太空船拍摄的哈雷彗星照片。修复哈勃太空望远镜的团队使用IDL来帮助他们诊断主镜中的异常。 1995年,航天飞机上的宇航员使用装在笔记本电脑上的IDL来研究紫外线辐射。目前,在其他应用中,IDL被用于美国NRL和英国Rutherford Appleton实验室的STEREO任务的SECCHI部分的大部分分析。
RSI于2004年3月成为ITT Industries的全资子公司。截至2006年5月15日,RSI开始作为ITT视觉信息解决方案开展业务。自2011年10月31日起,由于重组,该公司成为Exelis Visual Information Solutions。截至2015年,IDL现在由Harris Geospatial Solutions拥有和维护。
功能
作为一种计算机语言,IDL:
GNU数据语言
IDL的开源解释器是GDL。
GNU Data Language(GDL,GNU数据语言)是一个与
IDL(Interactive Data Language)兼容的开源软件。 GDL是一种阵列化的、交互式的数值编程语言,在天文、地质、遥感、医学成像等领域被用于数据分析与可视化。