Британский учёный-компьютерщик (1948-2019)
Джон Морли Шоулз (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 [email protected] [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]
Ссылки
- ^ "Премия Кеннета Э. Айверсона". Ассоциация вычислительной техники . Получено 15 сентября 2019 г.
- ^ abcd Служба в честь жизни Джона Морли Скоулза , 4 марта 2019 г.
- ↑ Scholes, John (3 февраля 2015 г.), Чтение «Улисса» Джойса (аудио) , получено 24 сентября 2019 г.
- ^ ab Scholes, John (21 июня 2014 г.). Поиск в глубину в APL (видео). YouTube . Получено 21 сентября 2019 г. .
- ^ Поливка, Рэй (март 1998 г.). «Интервью с Питером Доннелли и Джоном Скоулзом». APL Quote Quad . 28 (3): 7–12. doi :10.1145/309730.309731. S2CID 28437582.
- ^ ab Dyalog (сентябрь 2008 г.). "Dyalog at 25" (PDF) . Вектор . Получено 20 сентября 2019 г.
- ^ Айверсон, Кеннет Э. (1974), «Глава 10, Формальное определение функции», Elementary Functions , IBM Corporation , получено 18 сентября 2019 г.
- ^ Айверсон, Кеннет Э. (август 1980 г.). «Нотация как инструмент мышления». Communications of the ACM . 23 (8): 444–465. doi : 10.1145/358896.358899 . Получено 8 апреля 2016 г.
- ^ Айверсон, Кеннет Э. (1976). Элементарный анализ . APL Press.
- ^ Орт, Д. Л. (1976). Исчисление в новом ключе . APL Press.
- ^ Хуэй, Роджер (май 1987). «Некоторые применения { и }». Труды конференции APL 87. Получено 15 апреля 2016 г.
- ↑ McDonnell, EE (май 1987 г.), «Жизнь: отвратительная, жестокая и короткая», APL 87 Conference Proceedings , получено 6 октября 2019 г.
- ^ abcde Хуэй, Роджер ; Кромберг, Мортен (июнь 2020 г.). «APL с 1978 года». Труды ACM по языкам программирования . 4 (HOPL): 1–108. doi : 10.1145/3386319 . S2CID 218517570.
- ↑ Айверсон, Кеннет Э. (26 апреля 1978 г.), «Операторы и функции, §8», номер исследовательского отчета #RC7091 , IBM Corporation , получено 19 сентября 2019 г.
- ^ Айверсон, Кеннет Э .; Вустер, Питер (сентябрь 1981 г.). «Оператор определения функции». Труды конференции APL81, APL Quote Quad . 12 (1).
- ^ Чейни, Карл М. (март 1981 г.), Справочное руководство по системе вложенных массивов APL*Plus, §4.17 (PDF) , STSC, Inc. , получено 18 сентября 2019 г.
- ↑ Айверсон, Кеннет Э. (6 января 1983 г.), Рационализированный APL, IP Sharp Associates , получено 19 сентября 2019 г.
- ^ Айверсон, Кеннет Э. (сентябрь 1987 г.). «Словарь APL». APL Quote Quad . 18 (1): 5–40. doi :10.1145/36983.36984. S2CID 18301178. Получено 19 сентября 2019 г.
- ^ ab Bunda, John (май 1987 г.). "APL Function Definition Notation". Труды конференции APL87, APL Quote Quad . 17 (4).
- ^ Хуэй, Роджер ; и др. (июль 1990 г.). "APL\?". Труды конференции по APL 90: для будущего . Том 20. стр. 192–200. doi :10.1145/97808.97845. ISBN 089791371X. S2CID 235453656 . Получено 10 сентября 2019 г. .
- ^ abc Scholes, John (октябрь 1996 г.). "Прямые функции в Dyalog APL" (PDF) . Vector . 13 (2) . Получено 16 сентября 2019 г. .
- ^ ab Scholes, John (1998–2019), Direct Functions Workspace , получено 15 сентября 2019 г.
- ^ abc Scholes, John (31 октября 2018 г.). Dfns: Past, Present and Future (видео). Встреча пользователей Dyalog '18 . Получено 21 сентября 2019 г.
- ^ abc Scholes, John (31 октября 2018 г.), Dfns: Past, Present and Future (текст) (PDF) , Dyalog '18 User Meeting , получено 21 сентября 2019 г.
- ^ Вадлер, Филип Л. и др. (1 января 1989 г.). «Специальный выпуск по функциональному программированию». The Computer Journal . 32 (2).
- ^ Dyalog (15 августа 2019 г.). Справочник по программированию Dyalog, версия 17.1, Dfns & Dops, стр. 133–147 (PDF) . Dyalog Ltd . Получено 30 сентября 2019 г. .
- ↑ Смит, Боб (2006–2019), NARS2000 , получено 18 сентября 2019 г.
- ^ Николов, Ник (сентябрь 2013 г.). «Компиляция APL в JavaScript». Vector . 26 (1) . Получено 19 сентября 2019 г. .
- ^ Хсу, Аарон (2019). Параллельный компилятор данных, размещенный на графическом процессоре (предварительный черновик) (диссертация). Университет Индианы .
- ↑ Хуэй, Роджер (26 ноября 2016 г.), История APL в 50 функциях , получено 21 сентября 2019 г.
- ^ Ахо, А.В .; Хопкрофт, Дж.Э .; Ульман, Дж.Д. (1974), Проектирование и анализ компьютерных алгоритмов , Эддисон-Уэсли
- ^ Шоулз, Джон (июль 1985 г.), «Операторы и вложенные массивы в Dyalog APL», Vector , 2 (1)
- ^ Кертин, А.Д.; Шоулз, Дж.М. (август 1989 г.). «⎕sm: полноэкранный менеджер для Dyalog APL». APL Quote Quad . 19 (4): 107–112. doi :10.1145/75145.75159.
- ^ Шоулз, Джон (апрель 1990 г.), «Семинар по определенным операторам», Vector , 6 (4)
- ^ Скоулз, Джон (апрель 1990 г.), «Новая среда разработки в Dyalog APL», Vector , 6 (4)
- ^ Scholes, John (июль 1994 г.), «Meeting: Dyalog APL Namespaces», Vector , 11 (1) , получено 21 сентября 2019 г.
- ^ Скоулз, Джон (октябрь 1998 г.), «Семинар APL98 – Потоки в Dyalog APL», Vector , 15 (2)
- ^ Скоулз, Джон (октябрь 1998 г.), «Потоки: Введение в многопоточность», Vector , 15 (2)
- ^ Scholes, John (апрель 2001 г.), «D: Функциональное подмножество Dyalog APL», Vector , 17 (4) , получено 21 сентября 2019 г.
- ^ Шоулз, Джон (июль 2001 г.), «Локализация эффектов системных функций в D», Vector , 18 (1)
- ^ Скоулз, Джон (июль 2003 г.), "[email protected]", Vector , 20 (1)
- ^ Scholes, John (июль 2003 г.), «Hungarian Method Cost Assignment», Vector , 20 (1) , получено 21 сентября 2019 г.
- ^ Скоулз, Джон (апрель 2004 г.), «Заметка о графиках», Vector , 20 (4)
- ^ Scholes, John (май 2005), «Как писать компьютерные программы» (PDF) , Vector , 21 (3) , получено 21 сентября 2019 г.
- ^ Скоулз, Джон (17 октября 2006 г.), Расширения языка , Конференция пользователей Dyalog '06
- ^ Scholes, John (17 октября 2006 г.), Функции как результаты (PDF) , Конференция пользователей Dyalog '06 , получено 21 сентября 2019 г.
- ^ Делькрос, Николас; Шоулз, Джон (1 октября 2007 г.), Улучшения производительности версии 11.1 , Конференция пользователей Dyalog '07
- ^ Шоулз, Джон (1 октября 2007 г.), Исследование операторов более высокого уровня , Конференция пользователей Dyalog '07
- ^ Делкрос, Николас; Шоулз, Джон (13 октября 2008 г.), Производительность переводчика , Конференция пользователей Dyalog '08
- ^ Scholes, John; Smith, Richard (13 октября 2008 г.). Journaled Files (видео). Конференция пользователей Dyalog '08 . Получено 21 сентября 2019 г.
- ↑ Scholes, John; Smith, Richard (13 октября 2008 г.), Journaled Files (текст), Dyalog '08 User Conference , получено 21 сентября 2019 г.
- ^ ab Scholes, John (13 октября 2008 г.). Призыв к простоте (видео). Конференция пользователей Dyalog '08 . Получено 21 сентября 2019 г.
- ^ Scholes, John (26 января 2009 г.). Conway's Game of Life в APL (видео). YouTube . Получено 21 сентября 2019 г.
- ^ Scholes, John (13 сентября 2009 г.). Введение в D-функции (видео). Конференция пользователей Dyalog '09 . Получено 21 сентября 2019 г.
- ^ Scholes, John (13 сентября 2009 г.). Введение в D-функции (видео). Конференция пользователей Dyalog '09 . Получено 21 сентября 2019 г.
- ^ Скоулз, Джон (13 сентября 2009 г.), Сессия Whizbangs , Конференция пользователей Dyalog '09
- ^ ab Scholes, John (14 сентября 2009 г.). Complex Numbers (видео). Dyalog '09 User Conference . Получено 21 сентября 2019 г.
- ^ Scholes, John (14 сентября 2010 г.). Workshop—Introduction to D-functions (видео). Dyalog '10 User Conference . Получено 21 сентября 2019 г.
- ^ Scholes, John (14 сентября 2010 г.). Workshop—Introduction to D-functions (видео). Dyalog '10 User Conference . Получено 21 сентября 2019 г.
- ^ Фоад, Джей; Скоулз, Джон; Хуэй, Роджер (2 октября 2011 г.), Conference Edition Workshop , Конференция пользователей Dyalog '11
- ↑ Скоулз, Джон; Хуэй, Роджер (3 октября 2011 г.), Знакомство с изданием Dyalog '11 Conference Edition , Конференция пользователей Dyalog '11
- ^ Кромберг, Мортен; Скоулз, Джон; Манктелов, Джонатан (3 октября 2011 г.). APL# (видео). Конференция пользователей Dialog '11 . Проверено 21 сентября 2019 г.
- ^ Кромберг, Мортен; Скоулз, Джон; Манктелов, Джонатан (3 октября 2011 г.), APL # (текст), Конференция пользователей Dyalog '11 , получено 21 сентября 2019 г.
- ^ Скоулз, Джон (3 октября 2011 г.), Функциональные поезда для Dyalog APL , Конференция пользователей Dyalog '11
- ^ ab Scholes, John; Hui, Roger (3 октября 2011 г.). Что такое функциональное программирование? (видео). Конференция пользователей Dyalog '11 . Получено 21 сентября 2019 г.
- ^ Скоулз, Джон (5 октября 2011 г.), Закрытия , Конференция пользователей Dyalog '11
- ^ Scholes, John; Hui, Roger (15 октября 2012 г.). Возможные возможности языка версии 14.0 (видео). Конференция пользователей Dyalog '12 . Получено 21 сентября 2019 г.
- ↑ Scholes, John; Hui, Roger (15 октября 2012 г.), Potential Version 14.0 Language Features (текст), Dyalog '12 User Conference , получено 21 сентября 2019 г.
- ^ ab Scholes, John (15 октября 2012 г.). State-Free Programming (видео). Dyalog '12 User Conference . Получено 21 сентября 2019 г.
- ^ ab Scholes, John (15 октября 2012 г.). Calling Alan Turing (видео). Конференция пользователей Dyalog '12 . Получено 22 сентября 2019 г.
- ^ Scholes, John (27 октября 2012 г.). A Sudoku Solver в APL (видео). YouTube . Получено 21 сентября 2019 г.
- ^ Scholes, John (22 октября 2013 г.). Train Spotting в версии 14.0 (видео). Конференция пользователей Dyalog '13 . Получено 21 сентября 2019 г.
- ^ Scholes, John (22 октября 2013 г.), Train Spotting in Version 14.0 (текст) (PDF) , Конференция пользователей Dyalog '13 , получено 21 сентября 2019 г.
- ^ ab Scholes, John (22 октября 2013 г.). Социальные навыки для программистов (видео). Конференция пользователей Dyalog '13 . Получено 21 сентября 2019 г.
- ^ ab Scholes, John (22 сентября 2014 г.). Отвлекающие факторы (видео). Dyalog '14 User Meeting . Получено 21 сентября 2019 г.
- ^ Смит, Фиона; Скоулз, Джон; Смит, Ричард; Хуэй, Роджер (7 сентября 2015 г.). Dya(b)log (видео). Встреча пользователей Dyalog '15 . Получено 21 сентября 2019 г.
- ^ Смит, Фиона; Скоулз, Джон; Смит, Ричард; Хуэй, Роджер (7 сентября 2015 г.), Dya(b)log (текст) (PDF) , Встреча пользователей Dyalog '15 , получено 21 сентября 2019 г.
- ^ Scholes, John; Hui, Roger (10 сентября 2015 г.), Future Operator Proposals: Cut, Under, and Merge (видео), Dyalog '15 User Meeting , получено 21 сентября 2019 г.(текст)
- ↑ Scholes, John; Hui, Roger (10 сентября 2015 г.), Future Operator Proposals: Cut, Under, and Merge (текст), Dyalog '15 User Meeting , получено 21 сентября 2019 г.(текст)
- ^ Scholes, John; Hui, Roger (10 октября 2016 г.). Новые примитивные функции и операторы (видео). Встреча пользователей Dyalog '16 . Получено 21 сентября 2019 г.
- ↑ Scholes, John; Hui, Roger (10 октября 2016 г.), New Primitive Functions and Operators (текст), Dyalog '16 User Meeting , получено 21 сентября 2019 г.
- ↑ Scholes, John; Hui, Roger (10 октября 2016 г.), New Primitive Functions and Operators (скрипт), Dyalog '16 User Meeting , получено 21 сентября 2019 г.
- ^ Тейлор, Стивен; Стритер, Джефф; Шоулз, Джон (12 октября 2016 г.). Реализация Dyalog: Ранние годы (видео). Встреча пользователей Dyalog '16 . Получено 21 сентября 2019 г.
- ^ Scholes, John (11 сентября 2017 г.). Пример: перекодирование из процедурного в денотативный стиль (видео). Dyalog '17 User Meeting . Получено 21 сентября 2019 г.
- ^ Scholes, John (11 сентября 2017 г.), A Case Study—Recoding from Procedural to Denotative Style (PDF) , Dyalog '17 User Meeting , получено 21 сентября 2019 г.
- ^ Scholes, John (март 2019), Hui, Roger (ред.), Scholisms , получено 20 сентября 2019
Внешние ссылки
- Официальный сайт , Джон Скоулз (1948–2019): гений, джентльмен и озорной школьник
- Диалог: Прямые функции