Джон М. Скоулз

редактировать
Компьютерный ученый

Джон Скоулз
Scholes2011.jpg Джон Скоулз в 2011 году
Родился( 1948-04-24) 24 апреля 1948 года
Умер18 февраля 2019 года (2019-02-18) (в возрасте 70 лет)
ГражданствоСоединенное Королевство
ОбразованиеB.Sc. ; Манчестерский университет ; 1969
Известен заAPL. Прямые функции
НаградыПремия Айверсона
Научная карьера
ОбластиИнформатика
УчрежденияICL. W.S. Atkins Ltd.. Европейское космическое агентство. Dyalog Ltd.
ВлиянияКеннет Э. Айверсон. Джим Браун. Филип Уодлер
Веб-сайтdfns.dyalog.com

Джон Морли Скоулз (1948–2019) был британским ученым-компьютерщиком. Его профессиональная карьера была посвящена разработке языка программирования APL. Он был разработчиком и исполнителем прямых функций.

Содержание
  • 1 Личное
  • 2 Карьера
    • 2.1 Прямые функции (dfns)
    • 2.2 Статьи и презентации
    • 2.3 Остроумие
  • 3 Ссылки
  • 4 Внешние ссылки
Личные данные

Джон Скоулз родился 24 апреля 1948 года в семье Джерри и Эми Скоулз. Он вырос в Лимингтон-Спа, Уорикшир, Англия, и посещал Лимингтонский колледж для мальчиков в период с 1960 по 1966 год. В период с 1966 по 1969 год он учился в Манчестерском университете и получил степень бакалавра (с отличием) по математике.

Скоулз обладал поэтическими и романтическими качествами в своей работе. жизнь. Помимо APL, он также нашел красоту в природе, опере, музыке Тома Уэйтса, литературе Джеймса Джойса, поэзии У.Б. Йейтс. Он был членом общества Джойс в Дублине. В 2013 году он и его жена Флора Доулинг отправились в Слайго к W.B. Летняя школа Йейтса и познакомился с поэтом Симусом Хини летом перед смертью Хини.

Сторона APL и романтическая сторона часто встречались: видео «Поиск в глубину» (ниже) был записан на рассвете летнего солнцестояния 2014 года, когда в воздухе витало пение птиц, когда он и его жена находились на 21-дневном ретрите по дзэн во Франции под руководством Тич Нхет Хон. Скоулз был доволен как техническим содержанием, так и обстоятельствами этой работы.

Карьера

Первой работой Скоулза была стажировка компьютерного программиста в International Computers Limited (ICL) (1969-70), а оттуда он перешел в отдел исследований операций WS Atkins в Эпсом, Суррей (1971-75), а затем в Отдел поддержки продаж в Уоррингтоне, Ланкашире (1976-77). С 1977 по 1978 год он работал с Европейским космическим агентством в Мадриде, Испания, в качестве программиста в проекте International Ultraviolet Explorer. Затем он вернулся в ICL Dataskil, работая над APL для VME/B операционной системы (1978-82). В 1982 году он начал проект Dyalog APL для Unix машин, а в 1988 году стал партнером и директором компании Dyalog. В 2004 году Скоулз продал свою долю в компании, но продолжал работать консультантом и, по его словам, продолжал проявлять страстный интерес к программированию APL по различным математическим темам в целом и функциональному программированию и dfns в частности. Или «ботаник », как он это еще называл.

Прямые функции (dfns)

Кеннет Э. Айверсон, изобретатель APL, был недоволен тем, как пользователь функции были определены. В 1974 году он разработал «формальное определение функции» или «прямое определение» для использования в экспозиции. Прямое определение состоит из двух или четырех частей, разделенных двоеточиями:

имя: выражение имя: выражение0: предложение: выражение1

В прямом определении обозначает левый аргумент, а правильный аргумент. В первом случае результат выраженияявляется результатом функции; во втором случае результатом функции является результат выражение0, если предложениеоценивается как 0, или выражение1, если оно оценивается как 1. Присваивания внутри прямого определение являются динамически локальными. Примеры использования прямого определения можно найти в лекции Премии Тьюринга 1979 года, а также в книгах и прикладных документах.

Прямое определение было слишком ограничено для использования в более крупных системах. Идеи были развиты несколькими авторами в нескольких работах, но результаты были громоздкими. Из них «альтернативное определение функции APL» Бунда в 1987 году ближе всего к существующим возможностям, но имеет изъяны из-за конфликтов с существующими символами и обработки ошибок, которые вызвали бы практические трудности, и никогда не было реализовано. Основные дистилляты из различных предложений заключались в том, что (а) определяемая функция является анонимной, с последующим наименованием (если требуется), осуществляемым путем присвоения; (б) функция обозначается символом и, таким образом, обеспечивает анонимную рекурсию.

В 1996 году Шоулз изобрел прямые функции или dfns (произносится как «ди-фанс»), что стало большим отличительным достижением APL начала 21 века по сравнению с предыдущими версиями.. Dfns - это уникальная комбинация программирования массива, функций высшего порядка и функционального программирования. Идеи возникли в 1989 году, когда он прочитал специальный выпуск The Computer Journal о функциональном программировании. Затем он приступил к изучению функционального программирования и стал сильно мотивирован («болен желанием», как Йейтс), чтобы донести эти идеи до APL. Первоначально он работал в скрытности, потому что беспокоился, что изменения могут быть сочтены слишком радикальными и ненужным усложнением языка; другие наблюдатели говорят, что он действовал скрытно, потому что коллеги по Дьялогу не были так очарованы и думали, что он зря тратит свое время и причиняет людям неприятности. Dfns были впервые представлены на форуме поставщиков Dyalog на конференции APL '96 и выпущены в Dyalog APL в начале 1997 года. Принятие и признание шло медленно. Еще в 2008 году, в 25-летнем издании Dyalog, посвященном 25-летию компании Dyalog Ltd, dfns почти не упоминались (дважды упоминались как «динамические функции» и без пояснений). С 2019 года dfns реализованы в Dyalog APL, NARS2000 и ngn / apl. Они также играют ключевую роль в усилиях по использованию вычислительных возможностей GPU (графического процессора).

Dfns проиллюстрированы здесь примером. Гораздо более подробные объяснения и примеры можно найти в статье прямые функции и в справочных материалах.

Quicksort в массиве работает, выбирая «точку поворота» наугад среди его основных ячеек, а затем цепочка отсортированных основных ячеек, которые строго предшествуют стержню, основных ячеек, равных стержню, и отсортированных основных ячеек, которые строго следуют за стержнем, как определено функцией сравнения ⍺⍺. Определяется как доп (прямой оператор ) Q:

Q ← {1≥≢⍵: ⍵ ⋄ (∇ ⍵⌿⍨0>s) ⍪ (⍵⌿⍨0 = s) ⍪∇ ⍵⌿⍨0 

Q3- это вариант, который объединяет три части, заключенные в функцию , вместо частей как таковых. Три части, генерируемые на каждом рекурсивном шаге, проявляются в структуре конечного результата. Применение функции, производной от Q3к одному и тому же аргументу несколько раз дает разные результаты, поскольку точки поворота выбираются случайным образом. Обход результатов по порядку дает один и тот же отсортированный массив.

Q3 ← {1 ≥≢⍵: ⍵ ⋄ (⊂∇ ⍵⌿⍨0>s) ⍪ (⊂⍵⌿⍨0 = s) ⍪⊂∇ ⍵⌿⍨0 

Приведенная выше формулировка не нова; см., Например, рисунок 3.7 классический дизайн и анализ компьютерных алгоритмов. Однако, в отличие от программы pidgin ALGOL на рисунке 3.7, Qи Q3являются исполняемыми, а частичный порядок, используемый в сортировка является операндом, (× -)в примерах выше.

Статьи и презентации

  • 1985 Операторы и вложенные массивы в Dyalog APL
  • 1989 ⎕SM : Полный- Менеджер экрана для Dyalog APL
  • 1990 Семинар по определенным операторам
  • 1990 Новая среда разработки в Dyalog APL
  • Встреча 1994: Пространства имен Dyalog APL
  • 1996 Direct Функции в Dyalog APL
  • 1998 APL98 Workshop - Потоки в Dyalog APL
  • 1998 Threads: Введение в многопоточность
  • 2001 D: Функциональное подмножество Dyalog APL
  • 2001 Письмо: Локализация эффектов системных функций в D
  • 2003 [email#160;protected]
  • Присвоение стоимости по венгерскому методу 2003 г.
  • 2004 г. Примечание к графикам
  • 2005 Как писать компьютерные программы
  • Расширения языка 2006 года
  • 2006 Функции как результат
  • 2007 Версия 11.1 Повышение производительности
  • 2007 Исследование высших Операторы уровня
  • Работа переводчика в 2008 г.
  • Журналируемые файлы 2008 г. (видео) (текст)
  • Призыв к простоте 2008 г. (видео)
  • Игра Конвея, 2009 г. Жизнь в APL (видео)
  • 2009 Введение в D-func tions (видео 1, 2)
  • Whizbangs сеанса 2009
  • Комплексные числа 2009 г. (видео)
  • Семинар 2010 г. - Введение в D-функции (видео 1) (видео 2)
  • 2011 Conference Edition Workshop
  • 2011 Представляем Dyalog '11 Conference Edition
  • 2011 APL # (видео) (текст)
  • 2011 Функциональные тренинги для Dyalog APL
  • 2011 Что такое функциональное программирование? (видео)
  • Закрытия 2011 г.
  • Возможные языковые особенности версии 14.0 2012 г. (видео) (текст)
  • Программирование без состояния состояния 2012 г. (видео)
  • 2012 г. Вызов Алана Тьюринга (видео)
  • 2012 Решатель судоку в APL (видео)
  • 2013 Train Spotting в версии 14.0 (видео) (текст)
  • 2013 Социальные навыки для программистов (видео)
  • 2014 Depth-First Search в APL (видео)
  • 2014 Distractions (video)
  • 2015 Dya (b) log (видео) (текст)
  • Предложения будущих операторов 2015: вырезание, уменьшение и объединение (видео) (текст)
  • 2016 Новые примитивные функции и операторы (видео) (текст) (скрипт)
  • 2016 Dyalog Реализация: первые годы (видео)
  • 2017 г. Пример из практики: перекодирование из процедурного в денотативный стиль (видео) (текст)
  • Dfns 2018 - прошлое, настоящее и будущее (видео) (текст)

Остроумие

Скоулз известен среди коллег своим остроумием, чувством юмора и юмором. Его «послеобеденные» презентации на конференциях Dyalog были долгожданным событием. Их выбор из списка выше:

  • 2008 A Plea for Simplicity (видео)
  • 2009 Complex Numbers (video)
  • 2011 Что такое функциональное программирование? (видео)
  • 2012 State-Free Programming (видео)
  • 2012 Calling Alan Turing (отрывок из предыдущего пункта, видео)
  • 2013 социальные навыки для программистов (видео)
  • 2014 г. Отвлекающие факторы (видео)

Другие примеры можно найти в Схолизмах.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 13:41:05
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте