~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 3EA4F1719F48282EE479F0A81BABD5F5__1716619860 ✰
Заголовок документа оригинал.:
✰ Futhark (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ Футарк (язык программирования) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Futhark_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/3e/f5/3ea4f1719f48282ee479f0a81babd5f5.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/3e/f5/3ea4f1719f48282ee479f0a81babd5f5__translat.html ✰
Дата и время сохранения документа:
✰ 11.06.2024 06:00:39 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 25 May 2024, at 09:51 (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: далее начало оригинального документа

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

Футарк (язык программирования)

Из Википедии, бесплатной энциклопедии
Футарк
Парадигма массив , функционал
Семья МЛ
Разработано Троэлс Хенриксен, Космин Оанча, Мартин Элсман
Разработчик Копенгагенский университет [1]
Впервые появился 2014 г .; 10 лет назад ( 2014 )
Дисциплина набора текста выведенный , статический , сильный , Хиндли-Милнер , уникальность , зависимый
ТЫ кроссплатформенный
Лицензия ISC
Веб-сайт язык Футарка .org
Под влиянием
APL , Haskell , NESL , Standard ML

Futhark — это многопарадигмальный , высокоуровневый , функциональный с параллельными данными и массивами язык программирования . Это диалект языка ML , первоначально разработанный на факультете компьютерных наук UCPH (DIKU) в рамках проекта HIPERFIT. [2] Основное внимание уделяется обеспечению возможности выполнения программ параллельного анализа данных, написанных в функциональном стиле, с высокой производительностью на аппаратном обеспечении с массовым параллелизмом , особенно на графических процессорах (GPU). Футарк сильно вдохновлен NESL , и его реализация использует вариант сглаживающего преобразования , но накладывает ограничения на то, как может быть выражен параллелизм, чтобы обеспечить более агрессивную оптимизацию компилятора. В частности, не поддерживается нерегулярный параллелизм вложенных данных. [3] Это бесплатное программное обеспечение с открытым исходным кодом, распространяемое по лицензии ISC .

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

Futhark — это язык семейства ML с нечувствительным к отступам синтаксисом, полученным из OCaml , Standard ML и Haskell . Система типов основана на системе типов Хиндли-Милнера с различными расширениями, такими как типы уникальности и типы, зависящие от размера . Futhark не задуман как язык программирования общего назначения для написания полноценных приложений, а вместо этого ориентирован на написание вычислительных ядер (не всегда таких же, как ядро ​​графического процессора ), которые затем вызываются из приложений, написанных на обычных языках. [4]

Футарк назван в честь первых шести букв рунического алфавита . [5] : 2 

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

Скалярное произведение [ править ]

Следующая программа вычисляет скалярное произведение двух векторов, содержащих числа двойной точности.

def   dotprod   xs   ys   =   f64  .   сумма   (  map2   (  *  )   xs   ys  )) 

Его также можно эквивалентно записать с явными аннотациями типов следующим образом.

def   dotprod   [  n  ]   (  xs  :   [  n  ]  f64  )   (  ys  :   [  n  ]  f64  )   :   f64   =   f64  .   сумма   (  map2   (  *  )   xs   ys  )) 

Это делает типы, зависящие от размера, явными: эту функцию можно вызвать только с двумя массивами одинакового размера, и средство проверки типов отклонит любую программу, в которой это не может быть определено статически.

Умножение матриц [ править ]

Следующая программа выполняет умножение матриц , используя приведенное выше определение скалярного произведения.

def   matmul   [  n  ][  m  ][  p  ]   (  A  :   [  n  ][  m  ]  f64  )   (  B  :   [  m  ][  p  ]  f64  )   :   [  n  ][  p  ]  f64   = 
   карта   (  \  A_row   -> 
          карта   (  \  B_col   ->   dotprod   A_row   B_col  ) 
              (  транспонировать   B  )) 
       A 

Это показывает, как типы обеспечивают вызов функции только с матрицами совместимого размера. Кроме того, это пример вложенного параллелизма данных .

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

  1. ^ «Лицензия» . futhark-lang.org . Проверено 26 марта 2023 г. Разработано в DIKU
  2. ^ "Дом" . hiperfit.dk .
  3. ^ Хенриксен, Троэльс; Серуп, Нильс Г.В.; Элсман, Мартин; Хенглейн, Фриц; Оанча, Космин (2017). «Футарк: чисто функциональное программирование на графическом процессоре с вложенным параллелизмом и обновлением массива на месте» (PDF) . Материалы 38-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . PLDI 2017. ACM.
  4. ^ «Руководство пользователя Футарка» . futhark.readthedocs.io .
  5. ^ Троэлс, Хенриксен (ноябрь 2017 г.). Проектирование и реализация языка программирования Футарк (PDF) (кандидатская диссертация). Копенгагенский университет . Проверено 25 мая 2024 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 3EA4F1719F48282EE479F0A81BABD5F5__1716619860
URL1:https://en.wikipedia.org/wiki/Futhark_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
Futhark (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)