~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 75BF997E87AC76BA92593724F43E5087__1717080720 ✰
Заголовок документа оригинал.:
✰ IDL (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ IDL (язык программирования) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/IDL_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/75/87/75bf997e87ac76ba92593724f43e5087.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/75/87/75bf997e87ac76ba92593724f43e5087__translat.html ✰
Дата и время сохранения документа:
✰ 18.06.2024 01:34:43 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 30 May 2024, at 17:52 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

IDL (язык программирования) — Википедия Jump to content

IDL (язык программирования)

Из Википедии, бесплатной энциклопедии
IDL (интерактивный язык данных)
Парадигма векторно-ориентированное программирование
Разработано Дэвид Стерн
Разработчик Дэвид Стерн и ITT Visual Information Solutions (ITT VIS)
Впервые появился 1977
Стабильная версия
ИДЛ 9.0 / 30 ноября 2023 г.
Дисциплина набора текста Динамический
Веб-сайт www .harrisgeospatial /Программное обеспечение-Технологии /IDL
Основные реализации
IDL, язык данных GNU , язык Fawlty

IDL , сокращение от Interactive Data Language , — это язык программирования , используемый для анализа данных . Он популярен в определенных областях науки, таких как астрономия , физика атмосферы и медицинская визуализация . [ нужна цитата ] IDL имеет общий синтаксис с PV-Wave и возник из одной и той же кодовой базы , хотя впоследствии языки разошлись в деталях. Существуют также бесплатные или бесплатные реализации, такие как язык данных GNU (GDL) и язык Fawlty (FL).

Обзор [ править ]

IDL является векторизованным , числовым и интерактивным и обычно используется для интерактивной обработки больших объемов данных (включая обработку изображений ). Синтаксис включает в себя множество конструкций из Фортрана и некоторые C. из

IDL произошел от раннего VMS Fortran, и его синтаксис все еще демонстрирует свое наследие:

 x   =   findgen  (  100  )  /  10 
  y   =   грех  (x)  /  x 
   сюжет  , х, у 
 

The Функция findgen в приведенном выше примере возвращает одномерный массив чисел с плавающей запятой, значения которого равны серии целых чисел, начиная с 0.

Обратите внимание, что операция во второй строке векторизованно применяется ко всему массиву из 100 элементов, созданному в первой строке, аналогично тому, как это языки программирования массивов общего назначения (такие как APL , J или K делают ). Этот пример содержит деление на ноль; IDL сообщит об арифметическом переполнении и сохранит значение NaN в соответствующем элементе y (первый), но остальные элементы массива будут конечными. NaN исключается из визуализации, созданной команда сюжета .

Как и большинство других языков программирования массивов, IDL очень быстро выполняет векторные операции (иногда так же быстро, как хорошо закодированный пользовательский цикл в Фортране или C), но довольно медленно, если элементы требуют обработки по отдельности. Следовательно, часть искусства использования IDL (или любого другого языка программирования массивов, если уж на то пошло) для тяжелых числовых вычислений заключается в использовании встроенных векторных операций.

История [ править ]

Предшествующие версии IDL были разработаны в 1970-х годах в Лаборатории физики атмосферы и космоса (LASP) Университета Колорадо в Боулдере . В LASP Дэвид Стерн участвовал в усилиях, направленных на то, чтобы позволить ученым проверять гипотезы, не нанимая программистов для написания или изменения отдельных приложений. Первая программа в эволюционной цепочке IDL, разработанная Штерном, называлась Rufus; это был простой векторно-ориентированный калькулятор, работавший на PDP-12 . Он принимал двухбуквенные коды, определяющие арифметическую операцию, входные регистры, служащие операндами, и регистр назначения. Версия Rufus, разработанная на PDP-8, называлась Mars Mariner Spectrum Editor (MMED). MMED использовался учёными LASP для интерпретации данных Mariner 7 и Mariner 9 . Позже Стерн написал программу SOL, которая также работала на PDP-8. В отличие от своих предшественников, это был настоящий язык программирования с синтаксисом, подобным FORTRAN. SOL был языком, ориентированным на массивы, с некоторыми примитивными графическими возможностями. [1]

Стерн покинул LASP и в 1977 году основал компанию Research Systems Inc. (RSI). Первым продуктом RSI был IDL для PDP-11. [1] В этом выпуске графика, поддерживаемая IDL, в основном представляла собой терминалы Tektronix и дисплеи с растровой графикой. НАСА RSI продала свои первые лицензии IDL Центру космических полетов имени Годдарда и корпорации Ball Aerospace & Technologies Corp. в 1979 году. Два года спустя RSI выпустила первоначальную версию IDL для VAX/VMS, написанную на VAX MACRO и FORTRAN. Он использовал преимущества виртуальной памяти VAX и 32-битного адресного пространства. [1] Национальный центр атмосферных исследований (NCAR), Мичиганский университет , Университет Колорадо и Военно-морская исследовательская лаборатория начали использовать IDL с этой версией.

В 1987 году RSI перенесла работу по разработке IDL в среду Unix , что потребовало полного переписывания кода на C, а не порта существующей версии VAX IDL. [1] Стерн и Али Бахрами переписали IDL для Unix на Sun 3, воспользовавшись переписыванием для расширения и улучшения языка. Впоследствии IDL был расширен и портирован на несколько вариантов Unix, VMS, Linux, Microsoft Windows (1992 г.) и Mac OS (1994 г.).

Виджеты были добавлены в IDL в 1992 году, обеспечивая событийно-ориентированное программирование с графическими пользовательскими интерфейсами . В 1997 году была коммерчески выпущена ION (IDL On the Net), система на базе веб-сервера. Первая версия ENVI , приложения для дистанционного анализа мультиспектральных и гиперспектральных изображений, написанная на IDL, была выпущена в 1994 году. ENVI была создана, разработана и принадлежала компании Better Solutions Consulting, LLC, пока она не была куплена у BSC в октябре 2000 года компанией Eastman. Kodak совпала с покупкой RSI. RSI продавала, продавала и поддерживала ENVI в соответствии с условиями лицензионного соглашения с BSC, LLC с 1994 по октябрь 2000 года. объектно-ориентированного программирования В 1997 году в IDL были добавлены новые типы объектов и указателей, а также ограниченные возможности .

IDL широко применяется в космической науке, например, в физике Солнца . Европейское космическое агентство использовало IDL для обработки почти всех снимков кометы Галлея, сделанных космическим кораблем Джотто . Команда, ремонтировавшая космический телескоп Хаббл, использовала IDL, чтобы диагностировать аномалии в главном зеркале. В 1995 году астронавты на борту космического корабля "Шаттл" использовали IDL, загруженный на ноутбук, для изучения ультрафиолетового излучения. В настоящее время, помимо других приложений, IDL используется для большей части анализа SECCHI-части миссии STEREO в NRL , США, и в лаборатории Резерфорда Эпплтона, Великобритания.

RSI стала дочерней компанией, находящейся в полной собственности ITT Industries, в марте 2004 года. С 15 мая 2006 года RSI начала вести бизнес как ITT Visual Information Solutions . С 31 октября 2011 года в результате реструктуризации эта компания стала Exelis Visual Information Solutions . В 2015 году IDL была приобретена компанией Harris Geospatial Solutions , которая позже стала L3Harris Geospatial Solutions . В апреле 2023 года IDL была приобретена NV5 Geospatial .

Особенности [ править ]

Как компьютерный язык, IDL:

  • является динамически типизированным .
  • имеет отдельные пространства имен для переменных, функций и процедур, но не имеет иерархии пространств имен.
  • изначально был однопоточным, но теперь имеет множество многопоточных функций и процедур.
  • все аргументы функции передаются по ссылке ; но см. «Проблемы» ниже.
  • имеет именованные параметры , называемые ключевыми словами, которые передаются по ссылке.
  • обеспечивает наследование именованных параметров во вложенных вызовах подпрограмм по ссылке или значению.
  • не требует предварительного объявления переменных.
  • предоставляет объявления блоков COMMON и системные переменные для совместного использования глобальных значений между подпрограммами.
  • предоставляет базовую форму объектно-ориентированного программирования, чем-то похожую на Smalltalk , а также перегрузку операторов .
  • реализует постоянную глобальную кучу указателей и переменных объекта, используя подсчет ссылок для сборки мусора.
  • компилируется в интерпретируемый промежуточный p-код на основе стека (а-ля виртуальная машина Java ).
  • предоставляет простой и эффективный синтаксис среза индекса для извлечения данных из больших массивов.
  • обеспечивает различные целые размеры, а также вещественные и комплексные числа с плавающей запятой одинарной и двойной точности.
  • предоставляет составные типы данных , такие как строки символов, массивы однородных типов, списки, хеш-таблицы и простые (неиерархические) структуры записей смешанных типов данных.

Проблемы [ править ]

Некоторые из этих функций, которые делают IDL очень простым в интерактивном использовании, также вызывают трудности при создании больших программ. Единственное пространство имен является особенно проблематичным; например, обновления языка, включающие новые встроенные функции, иногда приводили к аннулированию крупных научных библиотек. [2]

Массивы передаются по ссылке, и этот механизм является рекламируемой функцией языка для передачи данных обратно из подпрограммы. Напротив, фрагменты массива копируются перед передачей, поэтому изменения данных не возвращаются в диапазоны массивов (после выход из подпрограммы), что нарушает принцип наименьшего неожиданности .

Многие исторические нарушения сохранились из раннего наследия языка и требуют от программиста индивидуальных обходных решений. В качестве примера:

  • Индексация массива и вход в подпрограмму могут выполняться с использованием одного и того же синтаксиса (круглые скобки); эта неоднозначность в сочетании с единым пространством имен для всех переменных и подпрограмм может привести к тому, что код перестанет работать, когда вновь определенные подпрограммы или расширения языка конфликтуют с именами локальных переменных. Программисты IDL могут избежать многих из этих проблем, используя квадратные скобки для индексации массивов, избегая тем самым конфликтов с именами функций, в которых используются круглые скобки.

Предыдущую проблему можно решить, используя этот параметр компилятора:

COMPILE_OPT STRICTARR
 

ITT Visual Information Solutions (ITT VIS) , разработчики IDL, предприняли явные шаги для предотвращения совместимости байт-кода с другими средами. Файлы, содержащие скомпилированные процедуры, используют формат двоичной структуры данных с тегами, который не был официально опубликован, но был исследован и задокументирован пользователями. [3] но также содержать следующее уведомление в виде текста ASCII, встроенного в каждый сохраненный файл:

Файлы сохранения/восстановления IDL содержат неопубликованную конфиденциальную информацию о программе IDL. Поэтому обратное проектирование этого файла запрещено в соответствии с условиями Лицензионного соглашения с конечным пользователем IDL (IDL EULA). Все пользователи IDL обязаны прочитать и согласиться с условиями лицензионного соглашения IDL во время установки IDL. Программное обеспечение, которое читает или записывает файлы в формате IDL Save/Restore, должно иметь лицензию от NV5 Geospatial Solutions, Inc., явно дающую право на это. В этом случае лицензия будет включена в программное обеспечение для вашего ознакомления. Сообщите о программном обеспечении, не имеющем такой лицензии, своему менеджеру по работе с клиентами или торговому представителю.

По состоянию на август 2023 г. , утверждение не проверялось в суде. Кроме того, это положение IDL EULA не имеет силы в Австралии в соответствии с разделами 47D и 47H Закона об авторском праве этой страны.

Примеры [ править ]

Следующие графики были созданы с помощью IDL (исходный код включен):

См. также [ править ]

  • Список программного обеспечения для численного анализа
  • ENVI - пакет программного обеспечения для обработки изображений, встроенный в IDL.
  • IRAF - бесплатная среда графического сжатия данных, созданная NOAO.
  • MATLAB - техническая вычислительная среда, предоставляющая возможности, аналогичные IDL.
  • NumPy — расширение для Python , которое дает ему математические возможности массива, аналогичные возможностям IDL.
  • Perl Data Language (PDL) – расширение Perl , которое дает ему математические возможности массивов, аналогичные возможностям IDL.
  • Scilab — высокоуровневый числово-ориентированный язык программирования, предназначенный для научных вычислений и интерфейсов.
  • Solarsoft - библиотека для анализа солнечных данных и эксплуатации космических аппаратов, написанная преимущественно на IDL.
  • GDL — язык данных GNU, бесплатная реализация, похожая на IDL.
  • Fawlty Language — Fawlty Language — это компилятор, совместимый с IDL8 (интерактивный язык данных).

Ссылки [ править ]

  1. ^ Перейти обратно: а б с д Шиенле, Майк (19 января 1991 г.). «Часто задаваемые вопросы по IDL» . Проверено 8 февраля 2019 г.
  2. ^ Фаннинг, Дэвид. «Конфликты именования программ в IDL 8» . Архивировано из оригинала 6 марта 2014 года . Проверено 30 сентября 2014 г.
  3. ^ Марквардт, Крейг (21 декабря 2011 г.). «Неофициальная спецификация формата файла IDL «SAVE»» . Проверено 13 февраля 2013 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 75BF997E87AC76BA92593724F43E5087__1717080720
URL1:https://en.wikipedia.org/wiki/IDL_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
IDL (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)