대화형 데이터 언어
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
대화형 데이터 언어(IDL)는 1970년대 콜로라도 대학교 볼더 캠퍼스 대기 및 우주 물리학 연구소에서 개발된 컴퓨터 언어이다. 초기에는 과학자들이 프로그래머 없이도 가설을 검증할 수 있도록 돕는 프로그램으로 시작되었으며, 이후 Research Systems Inc.(RSI)에서 상용화되었다. IDL은 다양한 플랫폼에서 지원되며, 위젯, 객체 지향 프로그래밍, 그래픽 사용자 인터페이스 등의 기능을 제공한다. 우주 과학 분야에서 널리 사용되었으며, 현재는 NV5 지리 공간에 인수되었다. IDL은 동적 타이핑, 네임스페이스, 멀티 스레드, 객체 지향 프로그래밍 등을 특징으로 하지만, 단일 네임스페이스, 배열 슬라이싱 등의 문제점도 존재한다.
더 읽어볼만한 페이지
- 배열 프로그래밍 언어 - GNU 옥타브
GNU 옥타브는 MATLAB과 높은 호환성을 가지며 수치 해석 계산을 위해 사용되는 자유-오픈 소스 소프트웨어이다. - 배열 프로그래밍 언어 - NumPy
NumPy는 파이썬에서 다차원 배열을 효과적으로 다루기 위한 라이브러리로, C API를 제공하여 외부 라이브러리와 연동을 지원하며, 다양한 연산 기능과 멀티스레딩을 통한 성능 향상을 제공한다. - 수치 프로그래밍 언어 - GNU 옥타브
GNU 옥타브는 MATLAB과 높은 호환성을 가지며 수치 해석 계산을 위해 사용되는 자유-오픈 소스 소프트웨어이다. - 수치 프로그래밍 언어 - SciPy
SciPy는 NumPy 배열 구조를 기반으로 수치 적분, 선형 대수, 최적화, 통계 등 과학 및 공학 계산에 사용되는 다양한 기능을 제공하는 파이썬 과학 컴퓨팅 라이브러리이다. - 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. - 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
대화형 데이터 언어 - [IT 관련 정보]에 관한 문서 | |
---|---|
일반 정보 | |
이름 | IDL (대화형 데이터 언어) |
원래 이름 | Interactive Data Language |
종류 | 프로그래밍 언어 |
패러다임 | 벡터 지향 프로그래밍 |
설계자 | 데이비드 스턴 |
개발자 | 데이비드 스턴 & ITT 비주얼 인포메이션 솔루션 (ITT VIS) |
발표 연도 | 1977년 |
최신 안정화 버전 | IDL 9.1 |
최신 안정화 버전 날짜 | 2024년 9월 |
자료형 | 동적 타이핑 |
구현체 | IDL, GNU 데이터 언어, Fawlty Language |
영향을 준 언어 | (정보 없음) |
웹사이트 | IDL 공식 웹사이트 |
영향 받은 언어 | (정보 없음) |
2. 역사
콜로라도 대학교 볼더 캠퍼스 대기 및 우주 물리학 연구소(LASP)에서 개발된 초기 버전의 IDL은 과학자들이 프로그래밍 없이 가설을 검증할 수 있도록 하는 데 초점을 맞췄다. 데이비드 스턴은 PDP-12에서 실행되는 간단한 벡터 지향 계산기인 Rufus를 개발했고, 이후 PDP-8에서 실행되는 Mars Mariner Spectrum Editor(MMED)와 SOL을 개발했다. SOL은 FORTRAN과 유사한 구문을 가진 배열 지향 언어로, 기본적인 그래픽 기능도 갖추고 있었다.[1]
1977년 스턴은 리서치 시스템즈(Research Systems Inc., RSI)를 설립하고 PDP-11용 IDL을 출시하면서 상업화하였다. 1979년 NASA 고다드 우주 비행 센터 등에 IDL 라이선스를 판매했으며, 1981년에는 VAX MACRO 및 FORTRAN으로 작성된 VAX/VMS 버전 IDL을 출시했다. 1987년 유닉스용 IDL 개발을 위해 C 언어로 코드를 완전히 재작성하면서, IDL은 유닉스, VMS, 리눅스, 마이크로소프트 윈도우(1992), macOS(1994) 등 다양한 플랫폼으로 포팅되며 기능을 확장해왔다.[2]
1992년 IDL에 위젯이 추가되었고, 1994년에는 IDL 기반의 원격 감지 이미지 분석 소프트웨어 ENVI가 출시되었다. 1997년에는 웹 서버 기반 시스템인 ION과 객체 지향 프로그래밍 기능이 추가되었다. IDL은 유럽 우주국(ESA)이 지오토가 촬영한 핼리 혜성 이미지 분석, 허블 우주 망원경 수리 팀의 주 반사경 이상 진단, NRL 등의 STEREO 임무 데이터 분석 등 우주 과학 분야에서 널리 활용되었다.[1]
이후 RSI는 2004년 ITT 인더스트리 인수, 2006년 ITT Visual Information Solutions, 2011년 Exelis Visual Information Solutions, 2015년 해리스 지리 공간 솔루션(이후 L3해리스 지리 공간 솔루션)을 거쳐, 2023년 4월 [https://www.nv5geospatialsoftware.com/Products/IDL NV5 지리 공간]에 인수되었다.
2. 1. 개발 초기
콜로라도 대학교 볼더 캠퍼스 대기 및 우주 물리학 연구소(LASP)에서 1970년대에 IDL의 초기 버전이 개발되었다.[1] 데이비드 스턴은 과학자들이 프로그래밍 없이 가설을 검증할 수 있도록 Rufus, MMED, SOL 등의 프로그램을 개발하였다. SOL은 FORTRAN과 유사한 구문을 가진 배열 지향 언어로, 기본적인 그래픽 기능도 갖추고 있었다.[1]2. 2. 상용화 및 발전
1977년 스턴은 리서치 시스템즈(Research Systems Inc., RSI)를 설립하고 PDP-11용 IDL을 출시했다.[2] 1979년 NASA의 고다드 우주 비행 센터와 볼 에어로스페이스 & 테크놀로지스에 IDL 라이선스를 판매했다.[2] 1981년 VAX MACRO 및 FORTRAN으로 작성된 VAX/VMS 버전 IDL이 출시되어, 가상 메모리와 32비트 주소 공간을 활용했다.[2] 1987년 유닉스용 IDL 개발을 위해 C 언어로 코드를 완전히 재작성했다.[2] 이후 IDL은 유닉스, VMS, 리눅스, 마이크로소프트 윈도우(1992), macOS(1994) 등 다양한 플랫폼으로 포팅되며 기능을 확장해왔다.2. 3. 기능 확장 및 응용
1992년 IDL에 위젯이 추가되어 이벤트 구동 프로그래밍과 그래픽 사용자 인터페이스를 활용한 프로그래밍이 가능해졌다.[2] 1994년에는 IDL을 기반으로 하는 원격 감지 다중 스펙트럼 및 하이퍼스펙트럼 이미지 분석용 소프트웨어인 ENVI가 출시되었다. ENVI는 Better Solutions Consulting, LLC에서 개발되었으며, 2000년 10월 RSI와 함께 이스트만 코닥에 인수되기 전까지 RSI는 ENVI의 판매, 마케팅 및 지원을 담당하였다.[1] 1997년에는 웹 서버 기반 시스템인 ION(IDL On the Net)이 상업적으로 출시되었고, 새로운 객체 및 포인터 유형과 제한된 객체 지향 프로그래밍 기능이 IDL에 추가되었다.IDL은 우주 과학 분야에서 널리 활용되었다. 유럽 우주국(ESA)은 지오토 우주선이 촬영한 핼리 혜성 이미지의 대부분을 IDL로 처리했다.[1] 허블 우주 망원경 수리 팀은 IDL을 사용하여 주 반사경의 이상을 진단하는 데 도움을 받았다. 1995년 우주 왕복선 우주 비행사들은 자외선 복사 연구를 위해 랩톱에 IDL을 탑재하기도 했다. 현재 IDL은 NRL 등에서 STEREO 임무의 SECCHI 부분에 대한 데이터 분석에 사용되고 있다.[1]
2. 4. 소유권 변동
RSI는 2004년 3월 ITT 인더스트리의 완전 소유 자회사가 되었다.[2] 2006년 5월 15일부터 RSI는 ITT Visual Information Solutions로 사업을 시작했다. 2011년 10월 31일, 구조 조정의 결과로 해당 회사는 Exelis Visual Information Solutions가 되었다. 2015년, IDL은 해리스 지리 공간 솔루션에 인수되었고, 이후 L3해리스 지리 공간 솔루션이 되었다. 2023년 4월, IDL은 [https://www.nv5geospatialsoftware.com/Products/IDL NV5 지리 공간]에 인수되었다.3. 특징
IDL은 다음과 같은 특징을 가진다.
- 동적 타이핑을 지원한다.
- 변수, 함수, 프로시저에 대해 별도의 네임스페이스를 가지지만, 네임스페이스 계층 구조는 없다.
- 원래는 단일 스레드였으나, 현재는 많은 멀티 스레드 함수와 프로시저를 제공한다.
- 함수 인수는 참조에 의해 전달된다. (단, 일부 예외는 존재한다.)
- 키워드(명명된 매개변수)를 제공하며, 참조에 의해 전달된다.
- 중첩된 루틴 호출에서 명명된 매개변수 상속을 지원한다.
- 변수를 미리 선언할 필요가 없다.
- COMMON 블록 선언과 시스템 변수를 통해 전역 값을 공유할 수 있다.
- 스몰토크와 유사한 기본적인 객체 지향 프로그래밍 및 연산자 오버로딩을 제공한다.
- 참조 카운팅을 이용한 가비지 수집을 지원한다.
- 자바 가상 머신과 유사한 해석된 스택 기반 중간 p-코드로 컴파일된다.
- 배열에서 데이터를 추출하기 위한 효율적인 인덱스 슬라이스 구문을 제공한다.
- 다양한 정수 크기, 단정밀도/배정밀도 부동 소수점 실수 및 복소수를 지원한다.
- 문자열, 동종 형식 배열, 리스트, 해시 테이블, 혼합 데이터 형식의 레코드 구조와 같은 복합 데이터 형식을 제공한다.
4. 문제점
IDL을 대화형으로 사용하기 쉽게 만드는 기능들은 대규모 프로그램을 구축할 때 어려움을 야기하기도 한다. 특히 단일 네임스페이스는 문제가 되는데, 예를 들어 새로운 내장 함수를 포함하는 언어 업데이트는 경우에 따라 대규모 과학 라이브러리를 무효화할 수 있다.[2]
배열은 참조로 전달되지만, 배열 슬라이스는 전달되기 전에 복사되므로 데이터 수정 사항이 원래 배열 범위로 다시 반영되지 않아 최소 놀람의 원칙을 위반한다.
언어의 초기 유산에서 비롯된 많은 역사적 불규칙성이 남아있어 프로그래머가 개별적으로 해결해야 한다. 예를 들면 다음과 같다.
- 배열 인덱싱과 함수 호출은 정확히 동일한 구문(괄호)으로 수행할 수 있다. 이러한 모호성은 모든 변수와 함수에 대한 단일 네임스페이스와 결합되어, 새로 정의된 함수나 언어 확장이 기존 변수 이름과 충돌할 때 코드가 작동을 멈추게 할 수 있다. IDL 프로그래머는 배열 인덱싱에 대괄호를 사용하여 이러한 문제의 많은 부분을 피할 수 있으며, 괄호를 사용하는 함수 이름과의 충돌을 피할 수 있다.
다음 컴파일러 옵션을 사용하여 위에서 언급된 문제를 완화할 수 있다.
`COMPILE_OPT STRICTARR`
IDL 개발사인 ITT Visual Information Solutions (ITT VIS)는 다른 환경과의 바이트코드 호환성을 방지하기 위한 명시적인 조치를 취했다. 컴파일된 루틴을 포함하는 파일은 공식적으로 게시되지 않았지만, 사용자가 조사하고 문서화한[3] 이진 태그 데이터 구조 형식을 사용한다. 그러나 각 저장된 파일 내에 ASCII 텍스트로 포함된 다음 공지도 함께 포함되어 있다.
> IDL 저장/복원 파일은 IDL 프로그램에 대한 미발표된 독점 정보를 포함합니다. 따라서 이 파일의 리버스 엔지니어링은 IDL 최종 사용자 사용권 계약(IDL EULA)의 조건에 따라 금지됩니다. 모든 IDL 사용자는 IDL을 설치할 때 IDL EULA의 조건을 읽고 동의해야 합니다. IDL 저장/복원 형식으로 파일을 읽거나 쓰는 소프트웨어는 NV5 Geospatial Solutions, Inc.로부터 이 작업을 수행할 권한을 명시적으로 부여하는 라이선스를 받아야 합니다. 이 경우 라이선스는 검사를 위해 소프트웨어와 함께 포함됩니다. 이러한 라이선스가 없는 소프트웨어는 계정 관리자 또는 영업 담당자에게 보고하십시오.
이 진술은 법원에서 테스트되지 않았다. 또한 IDL EULA의 해당 조항은 호주 저작권법의 [http://www.austlii.edu.au/au/legis/cth/consol_act/ca1968133/s47d.html 47D] 및 [http://www.austlii.edu.au/au/legis/cth/consol_act/ca1968133/s47h.html 47H] 조항의 결과로 호주에서는 효력이 없다.
5. 한국에서의 활용
(내용 없음)
참조
[1]
웹사이트
IDL FAQ
http://www.faculty.v[...]
1991-01-19
[2]
웹사이트
Program Naming Conflicts in IDL 8
https://www.idlcoyot[...]
[3]
웹사이트
Unofficial Format Specification of the IDL "SAVE" File
http://www.physics.w[...]
2011-12-21
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com