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

Британский учёный-компьютерщик (1948-2019)

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

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

Личный

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

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

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

Карьера

Первой работой Шоулза была должность стажера-программиста в 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 [5] [6] , а в 1988 году стал партнером и директором компании Dyalog. В 2004 году Шоулз продал свои акции компании, но продолжил работать консультантом и, по его словам, следовал своему страстному интересу к программированию на APL по различным математическим темам в целом и функциональному программированию и dfns в частности. Или « ботаничеству », как он это еще называл. [2]

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

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

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

В прямом определении обозначает левый аргумент и правый аргумент. В первом случае результатом expressionявляется результат функции; во втором случае результатом функции является результат , expression0если она propositionоценивается как 0, или expression1если она оценивается как 1. Присваивания в прямом определении динамически локальны . Примеры использования прямого определения можно найти в лекции на премии Тьюринга 1979 года [8] , а также в книгах и прикладных статьях. [9] [10] [11] [12] [13]

Прямое определение было слишком ограничено для использования в более крупных системах. Идеи были далее развиты несколькими авторами в нескольких работах, [14] [15] [16] [17] [18] [19] [20] , но результаты были громоздкими. Из них «альтернативное определение функции APL» Бунды в 1987 году [19] было ближе всего к текущим возможностям, но имеет недостатки в конфликтах с существующими символами и в обработке ошибок, что могло бы вызвать практические трудности, и никогда не было реализовано. Главные выводы из различных предложений заключались в том, что (a) определяемая функция является анонимной , с последующим именованием (если требуется), осуществляемым путем присваивания; (b) функция обозначается символом и тем самым допускает анонимную рекурсию . [13]

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

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

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

 Q { 1 ≥≢ ⍵:⍵ ( ⌿⍨ 0 > s ) ( ⌿⍨ 0 = ​​s ) ⌿⍨ 0 < s ⍺⍺ ?≢ }       ⍝ предшествует ⍝ следует ⍝ равно 2 ( ×- ) 8 8 ( ×- ) 2 8 ( ×- ) 8 ¯1 1 0            х 2 19 3 8 3 6 9 4 19 7 0 10 15 14               ( ×- ) Q x 0 2 3 3 4 6 7 8 9 10 14 15 19 19               

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

 Q3 { 1 ≥≢ ⍵:⍵ ( ⌿⍨ 0 > s ) ( ⌿⍨ 0 = ​​s ) ⍪⊂ ⌿⍨ 0 < s ⍺⍺ ?≢ }       ( ×- ) Q3 x ┌───────────────────────────────────────── ─┬─────┬┐ │┌â€─────────────┬─┬────────────────────────┐│ 19 19 ││ ││┌──────┬───┬─┐│ 6 │┌──────┬─┬─────────────┐││ ││ │││┌┬─┬─┐│ 3 3 4 ││ ││┌┬─┬─┐│ 9 │┌┬──┬────────┐│││ ││ │││││ 0 2 ││ ││ ││││ 7 8 ││ │││ 10 │┌──┬──┬┐││││ ││ │││└┴─┴─┘│ ││ ││└┴─┴─┘│ │││ ││ 14 15 ││││││ ││ ││└──────┴──┴─┘│ ││ │││ │└──┴──┴┘││││ ││ ││ ││ │└┴──┴───────┘│││ ││ ││ │└──────┴─┴──────────────┘││ ││ │└─────────────┴─┴─ ─────────────────────────┘│ ││ └────────────────────────────────────────────┴──── ─┴┘ ( ×- ) Q3 x ┌───────────────────────────┬─┬────────────────── ──────────┐ │┌┬─┬─────────────────────┐│ 7 │┌────────────────── ──┬─────┬┐│ │││ 0 │┌┬─┬────────────────┐││ ││┌──────┬──┬────────┐│ 19 19 │││ │││ │││ 2 │┌───────────┬─┬┐│││ │││┌┬─┬─┐│ 10 │┌──┬──┬┐││ │││ │││ │││ ││┌───────┬─┬┐│ 6 │││││ │││││ 8 9 ││ ││ 14 15 ││││ │││ │││ │││ │││┌┬───┬┐│ 4 │││ │││││ │││└┴─┴─┘│ │└──┴──┴┘││ │││ │││ │││ │││││ 3 3 │││ │││ │││││ ││└─────┴──┴──────┘│ │││ │││ │││ │││└┴───┴┘│ │││ │││││ │└───────────────────┴─────┴┘│ │││ │││ ││└──────┴─┴ ┘│ │││││ │││ │││ │└───────────┴─┴┘│││ │││ │└┴─┴──────────────┘│ │                                                                            │└┴─┴──────────────────────┘│ └──────────────────────────┴─┴â€───────────────── ──────────┘  

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

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

  • 1985 Операторы и вложенные массивы в Dyalog APL [32]
  • 1989 ⎕ SM: полноэкранный менеджер для Dyalog APL [33]
  • 1990 Семинар по определенным операторам [34]
  • 1990 Новая среда разработки в Dyalog APL [35]
  • Встреча 1994 года : Пространства имен Dyalog APL [36]
  • 1996 Прямые функции в Dyalog APL [21]
  • 1998 APL98 Workshop – Потоки в Dyalog APL [37]
  • 1998 Threads: Введение в многопоточность [38]
  • 2001 D: Функциональное подмножество Dyalog APL [39]
  • Письмо 2001 г .: Локализация эффектов системных функций в D [40]
  • 2003 dfns@dyalog.com [41]
  • 2003 Венгерский метод распределения затрат [42]
  • 2004 Заметка о графиках [43]
  • 2005 Как писать компьютерные программы [44]
  • Расширения языка 2006 г. [45]
  • 2006 Функции как результаты [46]
  • 2007 Версия 11.1 Улучшения производительности [47]
  • 2007 Расследование в отношении операторов высшего звена [48]
  • Выступление переводчика 2008 г. [49]
  • 2008 Journaled Files (видео) [50] (текст) [51]
  • 2008 Призыв к простоте (видео) [52]
  • 2009 Игра жизни Конвея в APL (видео) [53]
  • 2009 Введение в D-функции (видео 1, [54] 2 [55] )
  • Сессия Whizbangs 2009 [56]
  • 2009 Комплексные числа (видео) [57]
  • Семинар 2010 г. — Введение в D-функции (видео 1) [58] (видео 2) [59]
  • Семинар по изданию конференции 2011 г. [60]
  • 2011 Представляем конференц-выпуск Dyalog '11 [61]
  • 2011 APL# (видео) [62] (текст) [63]
  • Функциональные поезда 2011 года для Dyalog APL [64]
  • 2011 Что такое функциональное программирование? (видео) [65]
  • Закрытия 2011 г. [66]
  • Потенциальные возможности языка версии 14.0 2012 года (видео) [67] (текст) [68]
  • 2012 Программирование без состояний (видео) [69]
  • 2012 Вызов Алана Тьюринга (видео) [70]
  • 2012 Решатель судоку в APL (видео) [71]
  • 2013 Train Spotting в версии 14.0 (видео) [72] (текст) [73]
  • 2013 Социальные навыки для программистов (видео) [74]
  • Поиск в глубину в APL 2014 (видео)[4]
  • 2014 Отвлечения (видео) [75]
  • 2015 Дя(б)лог (видео) [76] (текст) [77]
  • Предложения будущих операторов 2015 года : сокращение, подрыв и слияние (видео) [78] (текст) [79]
  • 2016 Новые примитивные функции и операторы (видео) [80] (текст) [81] (скрипт) [82]
  • Реализация Dyalog 2016 : Ранние годы (видео) [83]
  • 2017 Пример из практики: Перекодирование из процедурного в денотативный стиль (видео) [84] (текст) [85]
  • 2018 Dfns — прошлое, настоящее и будущее (видео) [23] (текст) [24]

Остроумие

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

  • 2008 Призыв к простоте (видео) [52]
  • 2009 Комплексные числа (видео) [57]
  • 2011 Что такое функциональное программирование? (видео) [65]
  • 2012 Программирование без состояний (видео) [69]
  • 2012 Вызов Алана Тьюринга (отрывок из предыдущего материала, видео) [70]
  • 2013 Социальные навыки для программистов (видео) [74]
  • 2014 Отвлечения (видео) [75]

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

Ссылки

  1. ^ "Премия Кеннета Э. Айверсона". Ассоциация вычислительной техники . Получено 15 сентября 2019 г.
  2. ^ abcd Служба в честь жизни Джона Морли Скоулза , 4 марта 2019 г.
  3. Scholes, John (3 февраля 2015 г.), Чтение «Улисса» Джойса (аудио) , получено 24 сентября 2019 г.
  4. ^ ab Scholes, John (21 июня 2014 г.). Поиск в глубину в APL (видео). YouTube . Получено 21 сентября 2019 г. .
  5. ^ Поливка, Рэй (март 1998 г.). «Интервью с Питером Доннелли и Джоном Шоулзом». APL Quote Quad . 28 (3): 7– 12. doi :10.1145/309730.309731. S2CID  28437582.
  6. ^ ab Dyalog (сентябрь 2008 г.). "Dyalog at 25" (PDF) . Вектор . Получено 20 сентября 2019 г.
  7. ^ Айверсон, Кеннет Э. (1974), «Глава 10, Формальное определение функции», Elementary Functions , IBM Corporation , получено 18 сентября 2019 г.
  8. ^ Айверсон, Кеннет Э. (август 1980 г.). «Нотация как инструмент мышления». Communications of the ACM . 23 (8): 444– 465. doi : 10.1145/358896.358899 . Получено 8 апреля 2016 г.
  9. ^ Айверсон, Кеннет Э. (1976). Элементарный анализ . APL Press.
  10. ^ Орт, Д. Л. (1976). Исчисление в новом ключе . APL Press.
  11. ^ Хуэй, Роджер (май 1987). "Некоторые применения { и }". Материалы конференции APL 87. Получено 15 апреля 2016 г.
  12. McDonnell, EE (май 1987 г.), «Жизнь: отвратительная, жестокая и короткая», APL 87 Conference Proceedings , получено 6 октября 2019 г.[ постоянная мертвая ссылка ‍ ]
  13. ^ abcde Хуэй, Роджер ; Кромберг, Мортен (июнь 2020 г.). «APL с 1978 года». Труды ACM по языкам программирования . 4 (HOPL): 1– 108. doi : 10.1145/3386319 . S2CID  218517570.
  14. Айверсон, Кеннет Э. (26 апреля 1978 г.), «Операторы и функции, §8», номер исследовательского отчета #RC7091 , IBM Corporation , получено 19 сентября 2019 г.
  15. ^ Айверсон, Кеннет Э .; Вустер, Питер (сентябрь 1981 г.). «Оператор определения функции». Труды конференции APL81, APL Quote Quad . 12 (1).
  16. ^ Чейни, Карл М. (март 1981 г.), Справочное руководство по системе вложенных массивов APL*Plus, §4.17 (PDF) , STSC, Inc. , получено 18 сентября 2019 г.
  17. Айверсон, Кеннет Э. (6 января 1983 г.), Рационализированный APL, IP Sharp Associates , получено 19 сентября 2019 г.
  18. ^ Айверсон, Кеннет Э. (сентябрь 1987 г.). «Словарь APL». APL Quote Quad . 18 (1): 5– 40. doi :10.1145/36983.36984. S2CID  18301178. Получено 19 сентября 2019 г.
  19. ^ ab Bunda, John (май 1987 г.). "APL Function Definition Notation". Труды конференции APL87, APL Quote Quad . 17 (4).
  20. ^ Хуэй, Роджер ; и др. (июль 1990 г.). "APL\?". Труды конференции по APL 90: для будущего . Том 20. С.  192–200 . doi :10.1145/97808.97845. ISBN 089791371X. S2CID  235453656 . Получено 10 сентября 2019 г. .
  21. ^ abc Scholes, John (октябрь 1996 г.). "Прямые функции в Dyalog APL" (PDF) . Vector . 13 (2) . Получено 16 сентября 2019 г. .
  22. ^ ab Scholes, John (1998–2019), Direct Functions Workspace , получено 15 сентября 2019 г.
  23. ^ abc Scholes, John (31 октября 2018 г.). Dfns: Past, Present and Future (видео). Встреча пользователей Dyalog '18 . Получено 21 сентября 2019 г.
  24. ^ abc Scholes, John (31 октября 2018 г.), Dfns: Past, Present and Future (текст) (PDF) , Dyalog '18 User Meeting , получено 21 сентября 2019 г.
  25. ^ Вадлер, Филип Л. и др. (1 января 1989 г.). «Специальный выпуск по функциональному программированию». The Computer Journal . 32 (2).
  26. ^ Dyalog (15 августа 2019 г.). Справочник по программированию Dyalog, версия 17.1, Dfns & Dops, стр. 133–147 (PDF) . Dyalog Ltd . Получено 30 сентября 2019 г. .
  27. Смит, Боб (2006–2019), NARS2000 , получено 18 сентября 2019 г.
  28. ^ Николов, Ник (сентябрь 2013 г.). «Компиляция APL в JavaScript». Vector . 26 (1) . Получено 19 сентября 2019 г. .
  29. ^ Хсу, Аарон (2019). Параллельный компилятор данных, размещенный на графическом процессоре (предварительный черновик) (диссертация). Университет Индианы .
  30. Хуэй, Роджер (26 ноября 2016 г.), История APL в 50 функциях , получено 21 сентября 2019 г.
  31. ^ Ахо, А.В .; Хопкрофт, Дж.Э .; Ульман, Дж.Д. (1974), Проектирование и анализ компьютерных алгоритмов , Эддисон-Уэсли
  32. ^ Шоулз, Джон (июль 1985 г.), «Операторы и вложенные массивы в Dyalog APL», Vector , 2 (1)
  33. ^ Кертин, А.Д.; Шоулз, Дж.М. (август 1989 г.). «⎕sm: полноэкранный менеджер для Dyalog APL». APL Quote Quad . 19 (4): 107– 112. doi :10.1145/75145.75159.
  34. ^ Шоулз, Джон (апрель 1990 г.), «Семинар по определенным операторам», Vector , 6 (4)
  35. ^ Скоулз, Джон (апрель 1990 г.), «Новая среда разработки в Dyalog APL», Vector , 6 (4)
  36. ^ Scholes, John (июль 1994 г.), «Meeting: Dyalog APL Namespaces», Vector , 11 (1) , получено 21 сентября 2019 г.
  37. ^ Скоулз, Джон (октябрь 1998 г.), «Семинар APL98 – Потоки в Dyalog APL», Vector , 15 (2)
  38. ^ Скоулз, Джон (октябрь 1998 г.), «Потоки: Введение в многопоточность», Vector , 15 (2)
  39. ^ Scholes, John (апрель 2001 г.), «D: Функциональное подмножество Dyalog APL», Vector , 17 (4) , получено 21 сентября 2019 г.
  40. ^ Шоулз, Джон (июль 2001 г.), «Локализация эффектов системных функций в D», Vector , 18 (1)
  41. ^ Скоулз, Джон (июль 2003 г.), "dfns@dyalog.com", Vector , 20 (1)
  42. ^ Scholes, John (июль 2003 г.), «Hungarian Method Cost Assignment», Vector , 20 (1) , получено 21 сентября 2019 г.
  43. ^ Скоулз, Джон (апрель 2004 г.), «Заметка о графиках», Vector , 20 (4)
  44. ^ Scholes, John (май 2005), «Как писать компьютерные программы» (PDF) , Vector , 21 (3) , получено 21 сентября 2019 г.
  45. ^ Скоулз, Джон (17 октября 2006 г.), Расширения языка , Конференция пользователей Dyalog '06
  46. ^ Scholes, John (17 октября 2006 г.), Функции как результаты (PDF) , Конференция пользователей Dyalog '06 , получено 21 сентября 2019 г.
  47. ^ Делькрос, Николас; Шоулз, Джон (1 октября 2007 г.), Улучшения производительности версии 11.1 , Конференция пользователей Dyalog '07
  48. ^ Шоулз, Джон (1 октября 2007 г.), Исследование операторов более высокого уровня , Конференция пользователей Dyalog '07
  49. ^ Делкрос, Николас; Шоулз, Джон (13 октября 2008 г.), Производительность переводчика , Конференция пользователей Dyalog '08
  50. ^ Scholes, John; Smith, Richard (13 октября 2008 г.). Journaled Files (видео). Конференция пользователей Dyalog '08 . Получено 21 сентября 2019 г.
  51. Scholes, John; Smith, Richard (13 октября 2008 г.), Journaled Files (текст), Dyalog '08 User Conference , получено 21 сентября 2019 г.
  52. ^ ab Scholes, John (13 октября 2008 г.). Призыв к простоте (видео). Конференция пользователей Dyalog '08 . Получено 21 сентября 2019 г.
  53. ^ Scholes, John (26 января 2009 г.). Conway's Game of Life в APL (видео). YouTube . Получено 21 сентября 2019 г.
  54. ^ Scholes, John (13 сентября 2009 г.). Введение в D-функции (видео). Конференция пользователей Dyalog '09 . Получено 21 сентября 2019 г.
  55. ^ Scholes, John (13 сентября 2009 г.). Введение в D-функции (видео). Конференция пользователей Dyalog '09 . Получено 21 сентября 2019 г.
  56. ^ Скоулз, Джон (13 сентября 2009 г.), Сессия Whizbangs , Конференция пользователей Dyalog '09
  57. ^ ab Scholes, John (14 сентября 2009 г.). Complex Numbers (видео). Dyalog '09 User Conference . Получено 21 сентября 2019 г.
  58. ^ Scholes, John (14 сентября 2010 г.). Workshop—Introduction to D-functions (видео). Dyalog '10 User Conference . Получено 21 сентября 2019 г.
  59. ^ Scholes, John (14 сентября 2010 г.). Workshop—Introduction to D-functions (видео). Dyalog '10 User Conference . Получено 21 сентября 2019 г.
  60. ^ Фоад, Джей; Скоулз, Джон; Хуэй, Роджер (2 октября 2011 г.), Conference Edition Workshop , Конференция пользователей Dyalog '11
  61. Скоулз, Джон; Хуэй, Роджер (3 октября 2011 г.), Знакомство с изданием Dyalog '11 Conference Edition , Конференция пользователей Dyalog '11
  62. ^ Кромберг, Мортен; Скоулз, Джон; Манктелов, Джонатан (3 октября 2011 г.). APL# (видео). Конференция пользователей Dialog '11 . Проверено 21 сентября 2019 г.
  63. ^ Кромберг, Мортен; Скоулз, Джон; Манктелов, Джонатан (3 октября 2011 г.), APL # (текст), Конференция пользователей Dyalog '11 , получено 21 сентября 2019 г.
  64. ^ Скоулз, Джон (3 октября 2011 г.), Функциональные поезда для Dyalog APL , Конференция пользователей Dyalog '11
  65. ^ ab Scholes, John; Hui, Roger (3 октября 2011 г.). Что такое функциональное программирование? (видео). Конференция пользователей Dyalog '11 . Получено 21 сентября 2019 г.
  66. ^ Скоулз, Джон (5 октября 2011 г.), Закрытия , Конференция пользователей Dyalog '11
  67. ^ Scholes, John; Hui, Roger (15 октября 2012 г.). Возможные возможности языка версии 14.0 (видео). Конференция пользователей Dyalog '12 . Получено 21 сентября 2019 г.
  68. Scholes, John; Hui, Roger (15 октября 2012 г.), Potential Version 14.0 Language Features (текст), Dyalog '12 User Conference , получено 21 сентября 2019 г.
  69. ^ ab Scholes, John (15 октября 2012 г.). State-Free Programming (видео). Dyalog '12 User Conference . Получено 21 сентября 2019 г.
  70. ^ ab Scholes, John (15 октября 2012 г.). Calling Alan Turing (видео). Конференция пользователей Dyalog '12 . Получено 22 сентября 2019 г.
  71. ^ Scholes, John (27 октября 2012 г.). A Sudoku Solver в APL (видео). YouTube . Получено 21 сентября 2019 г.
  72. ^ Scholes, John (22 октября 2013 г.). Train Spotting в версии 14.0 (видео). Конференция пользователей Dyalog '13 . Получено 21 сентября 2019 г.
  73. ^ Scholes, John (22 октября 2013 г.), Train Spotting in Version 14.0 (текст) (PDF) , Конференция пользователей Dyalog '13 , получено 21 сентября 2019 г.
  74. ^ ab Scholes, John (22 октября 2013 г.). Социальные навыки для программистов (видео). Конференция пользователей Dyalog '13 . Получено 21 сентября 2019 г.
  75. ^ ab Scholes, John (22 сентября 2014 г.). Отвлекающие факторы (видео). Dyalog '14 User Meeting . Получено 21 сентября 2019 г.
  76. ^ Смит, Фиона; Скоулз, Джон; Смит, Ричард; Хуэй, Роджер (7 сентября 2015 г.). Dya(b)log (видео). Встреча пользователей Dyalog '15 . Получено 21 сентября 2019 г.
  77. ^ Смит, Фиона; Скоулз, Джон; Смит, Ричард; Хуэй, Роджер (7 сентября 2015 г.), Dya(b)log (текст) (PDF) , Встреча пользователей Dyalog '15 , получено 21 сентября 2019 г.
  78. ^ Scholes, John; Hui, Roger (10 сентября 2015 г.), Future Operator Proposals: Cut, Under, and Merge (видео), Dyalog '15 User Meeting , получено 21 сентября 2019 г.(текст)
  79. Scholes, John; Hui, Roger (10 сентября 2015 г.), Future Operator Proposals: Cut, Under, and Merge (текст), Dyalog '15 User Meeting , получено 21 сентября 2019 г.(текст)
  80. ^ Scholes, John; Hui, Roger (10 октября 2016 г.). Новые примитивные функции и операторы (видео). Встреча пользователей Dyalog '16 . Получено 21 сентября 2019 г.
  81. Scholes, John; Hui, Roger (10 октября 2016 г.), New Primitive Functions and Operators (текст), Dyalog '16 User Meeting , получено 21 сентября 2019 г.
  82. Scholes, John; Hui, Roger (10 октября 2016 г.), New Primitive Functions and Operators (скрипт), Dyalog '16 User Meeting , получено 21 сентября 2019 г.
  83. ^ Тейлор, Стивен; Стритер, Джефф; Шоулз, Джон (12 октября 2016 г.). Реализация Dyalog: Ранние годы (видео). Встреча пользователей Dyalog '16 . Получено 21 сентября 2019 г.
  84. ^ Scholes, John (11 сентября 2017 г.). Пример: перекодирование из процедурного в денотативный стиль (видео). Dyalog '17 User Meeting . Получено 21 сентября 2019 г.
  85. ^ Scholes, John (11 сентября 2017 г.), A Case Study—Recoding from Procedural to Denotative Style (PDF) , Dyalog '17 User Meeting , получено 21 сентября 2019 г.
  86. ^ Scholes, John (март 2019), Hui, Roger (ред.), Scholisms , получено 20 сентября 2019
  • Официальный сайт , Джон Скоулз (1948–2019): гений, джентльмен и озорной школьник
  • Диалог: Прямые функции
Взято с "https://en.wikipedia.org/w/index.php?title=Джон_М._Шоулз&oldid=1259284111"