stringtranslate.com

Кеннет Э. Айверсон

Кеннет Юджин Айверсон (17 декабря 1920 г. – 19 октября 2004 г.) был канадским ученым-компьютерщиком, известным разработкой языка программирования APL . В 1979 году он был удостоен премии Тьюринга «за его новаторские усилия в области языков программирования и математической нотации, приведшие к тому, что в вычислительной технике теперь известно как APL; за его вклад в реализацию интерактивных систем, в образовательное использование APL, а также в теорию и практику языка программирования». [1]

Жизнь

Кен Айверсон родился 17 декабря 1920 года недалеко от Камроуза , города в центральной Альберте , Канада. [2] Его родители были фермерами, которые приехали в Альберту из Северной Дакоты ; его предки были родом из Тронхейма , Норвегия . [3]

Во время Второй мировой войны он сначала служил в канадской армии , а затем в Королевских канадских военно-воздушных силах . [3] [4] Он получил степень бакалавра в Университете Квинс и степени магистра и доктора наук в Гарвардском университете . За свою карьеру он работал в Гарварде , IBM , IP Sharp Associates и Jsoftware Inc. (урожденная Iverson Software Inc.).

Айверсон перенес инсульт во время работы за компьютером в новой лаборатории J 16 октября 2004 года [5] и умер в Торонто 19 октября 2004 года в возрасте 83 лет [2].

Образование

Айверсон начал обучение в школе 1 апреля 1926 года в однокомнатной школе , [4] изначально в 1-м классе, перешел во 2-й класс через 3 месяца и в 4-й класс к концу июня 1927 года. Он оставил школу после 9-го класса, потому что это было в разгаре Великой депрессии и нужно было работать на семейной ферме , и потому что он думал, что дальнейшее обучение приведет только к тому, чтобы стать школьным учителем, а он не хотел им становиться. В возрасте 17 лет, еще не окончив школу, он записался на заочный курс по радио в De Forest Training в Чикаго и самостоятельно изучал исчисление по учебнику. [4] [6] Во время Второй мировой войны , во время службы в Королевских канадских военно-воздушных силах , он посещал заочные курсы, чтобы получить диплом средней школы.

После войны Айверсон поступил в Университет Квинс в Кингстоне, Онтарио , воспользовавшись государственной поддержкой бывших военнослужащих и находясь под угрозой со стороны приятеля по ВВС, который сказал, что он «вышибет себе мозги, если не воспользуется этой возможностью». [4] Он окончил его в 1950 году как лучший студент, получив степень бакалавра по математике и физике . [3]

Продолжив свое образование в Гарвардском университете , он начал на кафедре математики и получил степень магистра в 1951 году. Затем он перешел на кафедру инженерии и прикладной физики, работая с Говардом Эйкеном и Василием Леонтьевым .

Кеннет Айверсон вспоминал аспирантуру у Эйкена как «подобие ученичества», в ходе которого студент «изучал инструменты научной профессии». Каждая тема «использовалась скорее как фокус для развития таких навыков, как ясность мысли и выражения, чем как самоцель». После поступления в программу аспирант проходил обряд «принятия в лоно». Ему предоставлялся стол (или часть стола) среди группы других аспирантов, постоянного персонала или приглашенных ученых, «большинство из которых занимались каким-либо аспектом проектирования и создания компьютеров». Таким образом, студенту «давали почувствовать себя частью научного предприятия» и предоставляли, «часто впервые, легкий и близкий доступ к другим, более опытным в выбранной им области».

—  И. Бернард Коэн , Говард Эйкен: Портрет пионера компьютерной техники , MIT Press, 1999, стр. 215. [7]

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

—  И. Бернард Коэн и Грегори В. Уэлч, редакторы, Makin' Numbers , MIT Press, 1999, стр. xvi. [8]

Говард Эйкен разработал Harvard Mark I , один из первых крупномасштабных цифровых компьютеров, в то время как Василий Леонтьев был экономистом, который разрабатывал модель «затраты-выпуск» экономического анализа, работу, за которую он позже получил Нобелевскую премию . Модель Леонтьева требовала больших матриц, и Айверсон работал над программами, которые могли оценивать эти матрицы на компьютере Harvard Mark IV . Айверсон получил докторскую степень по прикладной математике в 1954 году, защитив диссертацию на основе этой работы. [9] [10]

В Гарварде Айверсон познакомился с Эоином Уитни, двукратным стипендиатом Патнэма и аспирантом из Альберты. [11] [12] Это имело будущие последствия.

Работа

Гарвард (1955–1960)

Симплексный алгоритм в нотации Айверсона [13] [14]

Айверсон остался в Гарварде в качестве доцента , чтобы реализовать первую в мире аспирантскую программу по «автоматической обработке данных». [15] [16] [17]

Многие думают, что Эйкен интересовался только научными компьютерами. Это было совсем не так. Во время одного из кофе-брейков Эйкен повернулся к Кену Айверсону, который только что получил докторскую степень, и сказал: «Эти машины будут иметь огромное значение для бизнеса, и я хочу, чтобы вы подготовили и вели курс по обработке бизнес-данных следующей осенью». Такого курса еще не было нигде в мире. Кен получил квалификацию только потому, что был математиком. Я был так взволнован этой перспективой, что сразу же вызвался стать ассистентом преподавателя-выпускника Кена.

—  Фредерик Брукс-младший , Эйкен и Гарвардская «Comp Lab», в I. Бернарде Коэне и Грегори У. Уэлче, редакторах, Makin' Numbers , MIT Press, 1999, стр. 141. [8]

Именно в этот период Айверсон разработал нотацию для описания и анализа различных тем в обработке данных, для преподавания классов и для написания (совместно с Бруксом) Автоматической обработки данных . [18] Он был «потрясен», обнаружив, что традиционная математическая нотация не удовлетворяет его потребностям, и начал работу над расширениями нотации, которые были бы более подходящими. В частности, он принял матричную алгебру, используемую в своей диссертационной работе, систематическое использование матриц и многомерных массивов в тензорном анализе и операторы в смысле Хевисайда в своей трактовке уравнений Максвелла , функции высшего порядка на аргументе(ах) функции с результатом функции. [4] Нотация также была опробована в деловом мире в 1957 году во время 6-месячного отпуска, проведенного в McKinsey & Company . [4] [19] Первой опубликованной статьей, в которой использовалась эта нотация, была «Описание конечных последовательных процессов» , первоначально доклад номер 23 для Bell Labs , а затем пересмотренная и представленная на Четвертом Лондонском симпозиуме по теории информации в августе 1960 года. [13] [20]

Айверсон проработал в Гарварде пять лет, но не смог получить постоянную должность, поскольку «[он] не опубликовал ничего, кроме одной маленькой книги». [3]

IBM (1960–1980)

Айверсон присоединился к IBM Research в 1960 году (и удвоил свою зарплату). [4] Его предшественником в IBM был Фред Брукс , который посоветовал ему «заниматься тем, что [он] действительно хотел делать, потому что руководство было настолько изголодано по идеям, что все, что не было явно безумным, находило поддержку». В частности, ему разрешили закончить и опубликовать A Programming Language [20] [21] и (совместно с Бруксом) Automatic Data Processing [ 18] — две книги, в которых описывалась и использовалась нотация, разработанная в Гарварде. ( «Automatic Data Processing» и «A Programming Language» начинались как одна книга, «но материал рос как по величине, так и по уровню, пока разделение не оказалось мудрым». [18] [21] )

В IBM Айверсон вскоре встретил Адина Фалькоффа , и они работали вместе в течение следующих двадцати лет. Глава 2 «Языка программирования» использовала нотацию Айверсона для описания компьютера IBM 7090. [20] [21] В начале 1963 года Фалькофф, к которому позже присоединились Айверсон и Эд Сассенгут , приступил к использованию нотации для создания формального описания компьютера IBM System/360, который тогда находился в стадии разработки. [22] Результат был опубликован в 1964 году в двойном выпуске журнала IBM Systems Journal, [23] впоследствии известного как «серая книга» или «серое руководство». Книга использовалась в курсе по проектированию компьютерных систем в IBM Systems Research Institute. [23] Следствием формального описания стало то, что оно привлекло интерес ярких молодых умов. [4] [24] Одним из очагов интереса был Стэнфордский университет , в котором работали Ларри Брид , Фил Абрамс , Роджер Мур , Чарльз Бреннер , [25] и Майк Дженкинс, [26] [27], все из которых впоследствии внесли вклад в APL. Дональд Макинтайр, глава геологии в колледже Помона , где была первая установка системы 360 для общего клиента, использовал формальное описание, чтобы стать более экспертом, чем системный инженер IBM, назначенный в Помону. [4] [28]

Завершив формальное описание, Фалькофф и Айверсон обратили внимание на реализацию. Эта работа быстро дала свои плоды в 1965 году, когда к проекту присоединились Ларри Брид и Фил Абрамс . К осени 1965 года они создали реализацию на основе FORTRAN на 7090 под названием IVSYS (для системы Айверсона), сначала в пакетном режиме, а затем, в начале 1966 года, в интерактивном режиме с разделением времени. [25] [29] [30] Впоследствии Брид, Дик Латвелл (бывший сотрудник Университета Альберты ) и Роджер Мур (из IP Sharp Associates ) создали реализацию System/360; [31] все трое получили премию Грейс Мюррей Хоппер в 1973 году «за работу по проектированию и реализации APL\360, установившую новые стандарты простоты, эффективности, надежности и времени отклика для интерактивных систем». [32] Пока работа по внедрению 360 была в процессе, «нотация Айверсона» [30] [33] была переименована Фалькоффом в «APL». [34] Рабочее пространство «1 cleanspace» было сохранено 27 ноября 1966 г. в 22.53.58 UTC . [24] Служба APL\360 началась в IBM за несколько недель до этого [35], а за пределами IBM — в 1968 г. [29] Дополнительную информацию о внедрении APL\360 можно найти в разделе «Благодарности» Руководства пользователя APL\360 [36] и в «Приложении. Хронология разработки APL» книги «Проектирование APL» . [22]

Выражение APL для глубины вложенности скобок [37] [38]

Формальное описание и особенно реализация стимулировали эволюцию языка, процесс консолидации и регуляризации в типографике, линеаризации, синтаксисе и определении функций, описанный в APL\360 History [ 39] The Design of APL [ 22] и The Evolution of APL [19] . Два трактата этого периода, Conventions Governing the Order of Evaluation [40] и Algebra as a Language [41] , являются апологией нотации APL.

Эта нотация использовалась Фолкоффом и Айверсоном для преподавания различных предметов в различных университетах и ​​в IBM Systems Research Institute. [22] [39] В 1964 году Айверсон использовал нотацию в односеместровом курсе для старшеклассников в Fox Lane High School , [34] [42] а затем в Swarthmore High School . [4] После того, как APL стал доступен, его первым применением стало преподавание формальных методов проектирования систем в NASA Goddard . [39] [43] Он также использовался в Hotchkiss School , [25] Lower Canada College , [44] Scotch Plains High School , [45] государственных школах Атланты, [46] [47] и других. В одной школе ученики были настолько нетерпеливы, что врывались в школу после уроков, чтобы получить больше компьютерного времени APL; [24] [48] в другой энтузиасты APL направляли новичков на BASIC , чтобы максимизировать их собственное время APL. [25]

В 1969 году Айверсон и группа APL открыли Филадельфийский научный центр IBM. [29] [39] В 1970 году он был назначен стипендиатом IBM . [49] Он использовал финансирование, которое давало ему звание стипендиата IBM, чтобы приглашать преподавателей и профессоров из разных областей, включая Дональда Макинтайра из Помоны [28] и Джеффа Шаллита в качестве летнего студента. [24] В течение нескольких месяцев посетители начинали использовать APL для экспозиций в своих собственных областях, и была надежда, что позже они продолжат использовать APL в своих домашних учреждениях. [50] Работа Айверсона в это время была сосредоточена на нескольких дисциплинах, включая совместные проекты по теории цепей, генетике, геологии и исчислению. [51] [52] [53] [54] Когда PSC закрылся в 1974 году, [29] [34] часть группы переехала в Калифорнию, в то время как другие, включая Айверсона, остались на Востоке, позже перейдя обратно в IBM Research. Он получил премию Тьюринга в 1979 году. [1]

(Слева направо) Дик Латуэлл, Кен Айверсон, Роджер Мур, Адин Фалькофф, Фил Абрамс и Ларри Брид. Крайний слева на заднем плане: Джон МакГрю. Снято в гостиничном номере IP Sharp Associates во время встречи пользователей APL в Торонто, Онтарио, 1978 год.

В следующей таблице перечислены публикации, автором или соавтором которых был Айверсон, пока он работал в IBM. Они отражают два основных направления его работы.

Образование
Разработка и реализация языка

Ассоциация IP Sharp (1980–1987)

Оператор ранга APL ⍤ [77] [78]

В 1980 году Айверсон ушел из IBM в IP Sharp Associates , [79] [80] компанию APL с разделением времени . До него там были его коллеги из IBM Пол Берри, Джоуи Таттл, Дик Латвелл и Юджин Макдоннелл . В IPSA группой языка и систем APL руководил Эрик Айверсон (сын Кена Айверсона); Роджер Мур , один из разработчиков APL\360, был вице-президентом.

Айверсон работал над разработкой и расширением APL в соответствии с принципами, представленными в Operators and Functions . [73] [81] Работа над языком получила импульс в 1981 году, когда Артур Уитни и Айверсон создали модель APL, написанную на APL [82] [83] в то же время, когда они работали над базой данных OAG IPSA . [3] [12] [84] (Айверсон познакомил Артура Уитни, сына Эоина Уитни, с APL, когда ему было 11 лет [12], и в 1974 году рекомендовал его на летнюю студенческую должность в IPSA Calgary . [24] ) В этой модели синтаксис APL управлялся таблицей 11 на 5. В процессе Уитни также изобрел оператор ранга . [85] Дизайн языка был еще больше упрощен и расширен в Рационализированном APL [86] в январе 1983 года, нескольких изданиях Словаря языка APL между 1984 и 1987 годами и Словаре APL [87] в сентябре 1987 года. В IPSA фраза «словарь APL» вошла в употребление для обозначения APL, указанного в Словаре APL , который сам по себе именуется «словарем». В словаре синтаксис APL контролируется таблицей 9 на 6, а процесс синтаксического анализа был точно и лаконично описан в Таблице 2, и есть примитив (монадический ⊥, смоделированный в APL) для словообразования ( лексинга ).

В 1970-х и 1980-х годах основными поставщиками APL были IBM , STSC и IPSA , и все три активно занимались разработкой и расширением языка. У IBM был APL2, основанный на работе Джима Брауна . [88] [89] [90] Работа над APL2 продолжалась с перерывами в течение 15 лет, [29] фактическое кодирование началось в 1971 году, а APL2 стал доступен как IUP (Installed User Program, классификация продуктов IBM) в 1982 году. У STSC была экспериментальная система APL под названием NARS, разработанная и реализованная Бобом Смитом. [91] [92] NARS и APL2 отличались в фундаментальных отношениях от словаря APL, [93] и отличались друг от друга.

IP Sharp реализовал новые идеи APL поэтапно: комплексные числа, [94] вложенные (боксовые) массивы, операторы сопоставления и композиции в 1981 году, [95] оператор детерминанта в 1982 году, [96] и оператор ранга, ссылка и левые и правые функции тождества в 1983 году. [97] Однако домены операторов по-прежнему были ограничены примитивными функциями или их подмножествами. В 1986 году IPSA разработала SAX, [77] [98] SHARP APL/Unix, написанный на языке C и основанный на реализации STSC . Язык был таким, как указано в словаре, без ограничений на домены операторов. Альфа-версия SAX стала доступна в IP Sharp примерно в декабре 1986 года или в начале 1987 года.

В сфере образования Айверсон разработал мини-курс SHARP APL [99] [100], который использовался для обучения клиентов IPSA использованию APL, а также курсы « Прикладная математика для программистов» [101] и «Математика и программирование» [102], которые использовались на курсах компьютерных наук в TH Twente .

Кен Айверсон и Артур Уитни, 1989 г.

Публикации, автором или соавтором которых был Айверсон во время своей работы в IP Sharp Associates :

Образование
Разработка и реализация языка

Jsoftware (1990–2004)

J неявный глагол для биномиальных коэффициентов [37] [109]
Эквивалентное вычисление Dyalog APL [110]

Айверсон ушел из IP Sharp Associates в 1987 году. Он был занят "между работами". Что касается дизайна языка, то наиболее значимой его деятельностью в этот период было изобретение "fork" в 1988 году. [111] В течение многих лет он боролся за то, чтобы найти способ записать f+g как в исчислении, от "скалярных операторов" в 1978 году, [73] через оператор "til" в 1982 году, [82] [86] операторы сцепления и изменения формы в 1984 году, [106] операторы объединения и пересечения в 1987 году, [87] "yoke" в 1988 году, [112] и, наконец, forks в 1988 году. Forks определяются следующим образом:

Более того, (fgpqr) ←→ (fg (pqr)). Таким образом, чтобы записать f+g как в исчислении, можно записать f+g в APL. Айверсон и Юджин Макдоннелл прорабатывали детали во время длительных перелетов на конференцию APL88 в Сиднее, Австралия, причем Айверсону пришла в голову первоначальная идея о пробуждении от дневного сна. [85] [113] [81] : §1.3, §3.8 

Айверсон представил обоснование своего назначения на должность в 1987 году следующим образом: [16]

Когда я ушел с оплачиваемой работы, я снова обратил внимание на этот вопрос [использование APL для преподавания] и вскоре пришел к выводу, что основным необходимым инструментом является диалект APL, который:

• Доступно как условно-бесплатное программное обеспечение и достаточно недорого, чтобы его могли приобрести как студенты, так и школы.
• Можно печатать на стандартных принтерах.
• Работает на самых разных компьютерах
• Обеспечивает простоту и универсальность новейших идей в APL

Результат был J , впервые сообщенный в [ материалах конференции APL 90 ]. [114]

Роджер Хуэй описал последний импульс, который побудил J начать работу, в Приложении А к «Внедрению J» : [115]

Однажды летом 1989 года Артур Уитни посетил Кена Айверсона в Kiln Farm и создал — на одной странице и за один день — фрагмент интерпретатора на компьютере AT&T 3B1 . Я изучал этот интерпретатор около недели на предмет его организации и стиля программирования; и в воскресенье, 27 августа 1989 года, около четырех часов дня, написал первую строку кода, которая стала реализацией, описанной в этом документе. Одностраничный фрагмент интерпретатора Артура выглядит следующим образом: ...

Хуэй, однокурсник Уитни в Университете Альберты , изучал словарь языка APL , когда был между работами, [4] смоделировал процесс синтаксического анализа по крайней мере двумя различными способами, [85] и исследовал использование словаря APL в различных приложениях. [116] Кроме того, с января 1987 года по август 1989 года он имел доступ к SAX, [77] и в более поздней части этого периода использовал его ежедневно. [85]

J изначально взял словарь APL [87] в качестве спецификации, а интерпретатор J был построен вокруг Таблицы 2 словаря. Данные C и структуры программ были спроектированы так, чтобы таблица синтаксического анализа в C напрямую соответствовала таблице синтаксического анализа в словаре. [85] Оглядываясь назад, можно сказать, что статья Айверсона APL87 [107] на пяти страницах предписывала все основные шаги в написании интерпретатора APL, в частности разделы по словообразованию и синтаксическому анализу. Артур Уитни , в дополнение к «одностраничной вещи», внес вклад в разработку J, предложив, чтобы примитивы были ориентированы на ведущую ось, чтобы соглашение (обобщение скалярного расширения) было префиксом вместо суффикса [117] и чтобы был определен общий порядок массива. [118]

Одной из целей было реализовать fork. Это оказалось довольно просто, путем включения одной дополнительной строки в таблицу разбора. Выбор в пользу реализации fork был удачным и счастливым. Только позже [119] [120] было осознано , что fork делает неявные выражения (выражения-операторы) полными в следующем смысле: любое предложение, включающее один или два аргумента, которые не используют свои аргументы в качестве операнда, может быть записано неявно с fork, compose, левой и правой функциями тождества и константными функциями.

Два очевидных различия между J и другими диалектами APL: (a) использование терминов из естественных языков вместо терминов из математики или компьютерных наук (практика началась со словаря APL ): существительное, глагол, наречие, алфавит, словообразование, предложение, ... вместо массива, функции, оператора, набора символов, лексического анализа, выражения, ... ; и (b) использование 7-битных символов ASCII вместо специальных символов. Другие различия между J и APL описаны в J для программиста APL [121] и APL и J . [122]

Исходный код J доступен на Jsoftware по лицензии GNU General Public License версии 3 (GPL3) или в качестве коммерческой альтернативы. [123]

Эрик Айверсон основал Iverson Software Inc. в феврале 1990 года, чтобы предоставить улучшенный продукт SHARP APL/PC. Быстро стало очевидно, что у них есть общие интересы и цели, и в мае 1990 года Айверсон и Хуэй присоединились к Iverson Software Inc.; позже к ним присоединился Крис Берк. Вскоре компания стала называться J only. Название было изменено на Jsoftware Inc. в апреле 2000 года. [85]

Кен Айверсон (справа) и Роджер Хуэй, 1996 г.

Публикации, автором или соавтором которых был Айверсон, работая в Iverson Software Inc. и Jsoftware Inc.:

Образование
Разработка и реализация языка

Награды и почести

Смотрите также

Ссылки

  1. ^ abcde Айверсон, Кеннет Э. (август 1980 г.). «Нотация как инструмент мышления». Communications of the ACM . 23 (8): 444–465. doi : 10.1145/358896.358899 . Получено 8 апреля 2016 г.
  2. ^ ab Campbell-Kelly, Martin (16 ноября 2004 г.). "Кеннет Айверсон". The Independent . Получено 15 декабря 2022 г. .
  3. ^ abcde Hui, Roger , ed. (30 сентября 2005 г.). Ken Iverson Quotations and Anecdotes . Получено 12 февраля 2019 г.
  4. ^ abcdefghijk Айверсон, Кеннет Э.; Макинтайр, Дональд Э. (2008). Кеннет Э. Айверсон (Автобиография) . Получено 8 апреля 2016 г.
  5. ^ Айверсон, Эрик Б. (21 октября 2004 г.). Доктор Кеннет Э. Айверсон (сообщение на форуме J). Архивировано из оригинала 25 января 2020 г. Получено 8 апреля 2016 г.
  6. Марч, Герман В.; Вольф, Генри К. (1917). Исчисление. McGraw-Hill.
  7. ^ Коэн, И. Бернард (1999). Говард Эйкен: Портрет пионера компьютерной техники . MIT Press. ISBN 978-0-262-03262-9.
  8. ^ ab Cohen, I. Bernard ; Welch, Gregory W., ред. (1999). Makin' Numbers . MIT Press. ISBN 978-0-262-03263-6.
  9. ^ Айверсон, Кеннет Э. (1954). Машинные решения линейных дифференциальных уравнений – приложения к динамической экономической модели (диссертация доктора философии). Гарвардский университет . Получено 7 апреля 2016 г.
  10. Хуэй, Роджер (август 2012 г.). "MSLDE". Jwiki Essay . Получено 22 апреля 2016 г.
  11. ^ Уитни, Артур (август 2006 г.). «Воспоминания о Кене». Вектор . 22 (3) . Получено 25 апреля 2016 г.
  12. ^ abc Cantrill, Bryan (февраль 2009). "A Conversation with Arthur Whitney". ACM Queue . 7 (2) . Получено 7 апреля 2016 .
  13. ^ ab Iverson, Kenneth E. (август 1960 г.). «Описание конечных последовательных процессов». Симпозиум по теории информации . Королевский институт, Лондон . Получено 9 апреля 2016 г.
  14. ^ Монтальбано, Майкл С. (октябрь 1982 г.). Личная история APL . Получено 10 апреля 2016 г.
  15. ^ Айверсон, Кеннет Э. (июнь 1954 г.). Якобсон, Арвид В. (ред.). «Обучение и исследования в аспирантуре». Труды Первой конференции по подготовке кадров для области вычислительных машин . Университет Уэйна . Получено 9 апреля 2016 г.
  16. ^ abc Iverson, Kenneth E. (декабрь 1991 г.). «Личный взгляд на APL». IBM Systems Journal . 30 (4): 582–593. doi :10.1147/sj.304.0582 . Получено 9 апреля 2016 г.
  17. ^ Брукс, Фредерик П. (август 2006 г.). «Язык, разум и человек». Вектор . 22 (3): 72. Архивировано из оригинала 17 марта 2018 г. Получено 16 марта 2018 г.
  18. ^ abcd Брукс-младший, Фредерик П .; Айверсон, Кеннет Э. (1963). Автоматическая обработка данных . Wiley. ISBN 978-0-471-10599-2.
  19. ^ abc Falkoff, Adin D. ; Iverson, Kenneth E. (август 1978 г.). «Эволюция APL». ACM SIGPLAN Notices . 13 (8): 47–57. doi : 10.1145/960118.808372 . S2CID  6050177 . Получено 9 апреля 2016 г. .
  20. ^ abc Iverson, Kenneth E. (14 декабря 1983 г.). Письмо Дж. К. Таттлу . Получено 16 апреля 2016 г.
  21. ^ abcd Айверсон, Кеннет Э. (1962). Язык программирования. John Wiley & Sons. ISBN 978-0-471-43014-8. Получено 9 апреля 2016 г.
  22. ^ abcde Falkoff, Adin D. ; Iverson, Kenneth E. (июль 1973 г.). «Проект APL». IBM Journal of Research and Development . 17 (4): 324–334. doi : 10.1147/rd.174.0324 . Получено 9 апреля 2016 г. .
  23. ^ abc Falkoff, Adin D. ; Iverson, Kenneth E.; Sussenguth, Edward H. (1964). "Формальное описание System/360" (PDF) . IBM Systems Journal . 3 (3): 198–261. doi :10.1147/sj.32.0198. Архивировано из оригинала (PDF) 13 августа 2006 г.
  24. ^ abcde Hui, Roger , ed. (сентябрь 2010 г.). APL Quotations and Anecdotes. Архивировано из оригинала 5 июля 2018 г. Получено 9 апреля 2016 г.
  25. ^ abcd Брид, Ларри (август 2006 г.). «Как мы добрались до APL\1130». Вектор . 22 (3). Архивировано из оригинала 18 марта 2016 г. Получено 13 апреля 2016 г.
  26. ^ Дженкинс, Майкл А. (июнь 1970 г.). «Решение линейных систем уравнений и линейных задач наименьших квадратов в APL». Технический отчет номер 320-2989 . IBM Corp.
  27. ^ Дженкинс, Майкл А. (10 февраля 1972 г.). «Домино – примитивная функция APL для обратной матрицы – ее реализация и применение». APL Quote Quad . 3 (4).Перепечатано в Jenkins, MA (1972). "DOMINO: примитивная функция APL для обращения матриц – ее реализация и применение". ACM SIGPLAN Notices . 7 (4): 29–40. doi : 10.1145/1115910.1115911 .
  28. ^ ab McIntyre, Donald B. (август 2006 г.). "Дань памяти Кену Айверсону". Vector . 22 (3) . Получено 25 апреля 2016 г. .
  29. ^ abcde Falkoff, Adin D. (декабрь 1991 г.). «Семейство систем APL IBM». IBM Systems Journal . 30 (4): 416–432. doi :10.1147/sj.304.0416.
  30. ^ ab Abrams, Philip S. (17 августа 1966 г.). "An Interpreter for "Iverson Notation"" (PDF) . Технический отчет: CS-TR-66-47 . Department of Computer Science, Stanford University . Получено 17 апреля 2016 г. .
  31. ^ Falkoff, Adin D. ; Iverson, Kenneth E. (16 октября 1967 г.). "The APL\360 Terminal System". Исследовательский отчет RC-1922 . IBM . Получено 9 апреля 2016 г. .
  32. Премия ACM Грейс Мюррей Хоппер (1973): Брид, Латвелл и Мур; получено 14 апреля 2016 г.
  33. ^ Хорват, Роберт В. (август 1966 г.). Введение в нотацию Айверсона . Отдел разработки систем IBM, Покипси, Нью-Йорк.
  34. ^ abc McDonnell, Eugene , ed. (1981). A Source Book in APL, Introduction. APL Press . Получено 19 апреля 2016 г.
  35. Брид, Ларри (сентябрь 1991 г.). «Первый сеанс APL Terminal». APL Quote Quad . 22 (1): 2–4. doi : 10.1145/138094.140933 . S2CID  43138444.
  36. ^ ab Falkoff, Adin D. ; Iverson, Kenneth E. (1968). Руководство пользователя APL\360 (PDF) . IBM . Получено 11 апреля 2016 г. .
  37. ^ ab Hui, Roger (11 октября 2014 г.). Шестнадцать APL Amuse-Bouches . Получено 12 апреля 2016 г.
  38. ^ Перлис, Алан Дж. (29 марта 1978 г.). «Почти идеальные артефакты улучшаются только в небольших пределах: APL больше французский, чем английский». Труды конференции APL 78. Получено 12 апреля 2016 г.
  39. ^ abcd Falkoff, Adin D. (июль 1969). "История APL\360". Труды конференции пользователей APL в SUNY Binghamton . Получено 9 апреля 2016 г.
  40. ^ Айверсон, Кеннет Э. (1966). Соглашения, регулирующие порядок оценки (Приложение А к элементарным функциям: алгоритмическое рассмотрение). Science Research Associates . Получено 16 апреля 2016 г.
  41. ^ Айверсон, Кеннет Э. (1972). Алгебра как язык (Приложение А к алгебре: алгоритмическое лечение). Addison-Wesley . Получено 16 апреля 2016 г.
  42. ^ ab Айверсон, Кеннет Э. (март 1966 г.). Элементарные функции: алгоритмическое лечение . Science Research Associates.
  43. ^ Макдоннелл, Юджин (декабрь 1979 г.). «Социально-технические истоки APL». APL Quote Quad . 10 (2): 13. doi : 10.1145/586148.586155 . S2CID  18025422. Получено 24 апреля 2016 г.
  44. ^ Голдсмит, Лесли Х. Хуэй, Роджер (ред.). APL Quotations and Anecdotes. Архивировано из оригинала 5 июля 2018 г. Получено 13 апреля 2016 г.
  45. ^ Макдоннелл, Юджин (сентябрь 1980 г.). "Recreational APL, Pyramigram". APL Quote Quad . 11 (1) . Получено 13 апреля 2016 г.
  46. ^ "APL в государственных школах Атланты". SHARE*APL\360 Newsletter (3). Октябрь 1969.
  47. ^ APL IV: Четвертая международная конференция APL. Июнь 1972 г. Получено 29 апреля 2016 г.
  48. ^ Бьянкуцци, Федерико; Уорден, Шейн (март 2009 г.). Masterminds of Programming. O'Reilly Media. Архивировано из оригинала 5 июля 2018 г. Получено 13 апреля 2016 г.
  49. ^ abc "Айверсон получает премию Гарри Гуда". APL Quote Quad . 6 (2). Июнь 1975. Получено 8 апреля 2016 .
  50. ^ Берри, Пол (август 2006 г.). «Описательное программирование». Вектор . 22 (3) . Получено 25 апреля 2015 г.
  51. ^ Берри, Пол; Бартоли, Г.; Делл'Акуила, К.; Спадавеккья, В. (март 1973 г.). "APL и Insight". TR No. CRB 002/513-3502 . IBM Corp.
  52. Спенс, Роберт (март 1973 г.). Теория резистивных цепей . IBM.
  53. ^ Орт, Дональд Л. (1976). Исчисление в новом ключе . APL Press. ISBN 978-0-917326-05-9.
  54. ^ Берри, Пол; Торстенсен, Джон (1973). «Звездная карта». TR No. 02.665 . IBM Corp.
  55. ^ Айверсон, Кеннет Э. (1969). Использование APL в обучении. IBM Pub. № G320-0996 . Получено 15 апреля 2016 г.
  56. ^ Берри, Пол; Фалькофф, Адин Д.; Айверсон, Кеннет Э. (24 августа 1970 г.). «Использование компьютера для вычислений: прямой, но забытый подход к преподаванию математики». Всемирная конференция IFIP по компьютерному образованию .
  57. ^ Айверсон, Кеннет Э. (1972). Алгебра: алгоритмическое лечение . Эддисон-Уэсли.
  58. ^ Айверсон, Кеннет Э. (январь 1972 г.). "APL in Exposition" (PDF) . Технический отчет номер RC 320-3010 . Филадельфийский научный центр IBM . Получено 9 апреля 2016 г.
  59. ^ Айверсон, Кеннет Э. (март 1973 г.). «Введение в APL для ученых и инженеров». Технический отчет номер RC 320-3019 . Филадельфийский научный центр IBM . Получено 9 апреля 2016 г.
  60. ^ Айверсон, Кеннет Э. (июль 1972 г.). «Введение в APL для учителей». Технический отчет № RC 320-3014 . Филадельфийский научный центр IBM . Получено 9 апреля 2016 г.
  61. ^ Айверсон, Кеннет Э. (1976). Элементарный анализ . APL Press.
  62. ^ Айверсон, Кеннет Э. (сентябрь 1978 г.). «Стиль программирования в APL». Труды встречи пользователей APL . IP Sharp Associates . Получено 9 апреля 2016 г.
  63. ^ Айверсон, Кеннет Э. (май 1962 г.). «Язык программирования». Труды весенней совместной компьютерной конференции AFIPS, Сан-Франциско . Получено 13 апреля 2016 г.
  64. ^ Айверсон, Кеннет Э. (декабрь 1962 г.). «Общий язык для оборудования, программного обеспечения и приложений». Труды осенней совместной компьютерной конференции AFIPS, Филадельфия . Получено 13 апреля 2016 г.
  65. ^ Айверсон, Кеннет Э. (июнь 1963 г.). «Programming Notation in System Design». IBM Systems Journal . 2 (2): 117–128. doi :10.1147/sj.22.0117 . Получено 13 апреля 2016 г.
  66. ^ Айверсон, Кеннет Э. (февраль 1964 г.). «Формализм в языках программирования». Communications of the ACM . 7 (2): 80–88. doi : 10.1145/363921.363933 . S2CID  14145756. Получено 13 апреля 2016 г.
  67. ^ Айверсон, Кеннет Э. (октябрь 1964 г.). «Метод спецификации синтаксиса». Сообщения ACM . 7 (10): 588–589. doi : 10.1145/364888.364969 . S2CID  194665.
  68. ^ Фалькофф, Адин Д .; Айверсон, Кеннет Э. (май 1973 г.). «Связь в системах APL». Технический отчет 320-3022 . Филадельфийский научный центр IBM.
  69. ^ Айверсон, Кеннет Э. (1973). APL как аналитическая нотация . Филадельфийский научный центр IBM.
  70. ^ Falkoff, Adin D. ; Iverson, Kenneth E. (1973). "APLSV User's Manual" (PDF) . Sh20-1460 . IBM Philadelphia Scientific Center . Получено 16 апреля 2016 г. .
  71. ^ Фалькофф, Адин Д .; Айверсон, Кеннет Э. (март 1975 г.). Язык APL (Форма № GC26-3847) (PDF) . IBM.
  72. ^ Айверсон, Кеннет Э. (сентябрь 1976 г.). «Два комбинаторных оператора». Труды восьмой международной конференции по APL - APL '76 . стр. 233–237. doi : 10.1145/800114.803681 . S2CID  20408139.
  73. ^ abc Айверсон, Кеннет Э. (26 апреля 1978 г.). «Операторы и функции». Исследовательский отчет № RC7091 . IBM . Получено 9 апреля 2016 г. .
  74. ^ Айверсон, Кеннет Э. (июнь 1979). «Роль операторов в APL». Труды международной конференции по APL: Часть 1 - APL '79. С. 128–133. doi : 10.1145/800136.804450 . Получено 10 апреля 2016 .
  75. ^ Айверсон, Кеннет Э. (июнь 1979). «Производный оператор». Труды международной конференции по APL: Часть 1 - APL '79 . С. 347–354. doi : 10.1145/800136.804486 .
  76. ^ Айверсон, Кеннет Э. (октябрь 1979 г.). «Операторы». Труды ACM по языкам и системам программирования . 1 (2): 161–176. doi : 10.1145/357073.357074 .
  77. ^ abc Steinbrook, David H. (1986). Справочник SAX . IP Sharp Associates .
  78. ^ Хуэй, Роджер (август 2010 г.). "В среднем". Вектор . 22 (4) . Получено 12 апреля 2016 г.
  79. ^ IPSA (январь 1980 г.). "Dr. Kenneth E. Iverson" (PDF) . Информационный бюллетень IP Sharp . 8 (1) . Получено 8 августа 2019 г. .
  80. ^ Хуэй, Роджер , ред. (14 мая 2009 г.). Цитаты и анекдоты Юджина Макдоннелла . Получено 5 апреля 2016 г.
  81. ^ ab Hui, Roger; Kromberg, Morten (июнь 2020 г.). «APL Since 1978». Труды ACM по языкам программирования . 4 (HOPL): 1–108. doi : 10.1145/3386319 . S2CID  218517570.
  82. ^ abc Айверсон, Кеннет Э. и Артур Т. Уитни (сентябрь 1982 г.). «Практическое использование модели APL». Труды конференции APL 82. Получено 10 апреля 2016 г.
  83. ^ ab Iverson, Kenneth E. (март 1983 г.). "APL Syntax and Semantics". Труды конференции APL 83. Получено 10 апреля 2016 г.
  84. ^ Чествование Кеннета Айверсона. Музей истории компьютеров . 30 ноября 2004 г. Получено 17 апреля 2016 г.
  85. ^ abcdef Хуэй, Роджер (ноябрь 2014 г.). Вспоминая Кена Айверсона . Получено 10 апреля 2016 г.
  86. ^ abc Iverson, Kenneth E. (6 января 1983 г.). Рационализированный APL. IP Sharp Associates . Получено 10 апреля 2016 г.
  87. ^ abcd Айверсон, Кеннет Э. (сентябрь 1987 г.). «Словарь APL». APL Quote Quad . 18 (1): 5–40. doi : 10.1145/36983.36984 . S2CID  18301178. Получено 10 апреля 2016 г.
  88. ^ Браун, Джеймс А. (1971). Обобщение APL (диссертация на соискание степени доктора философии). Кафедра компьютерных и информационных наук, Сиракузский университет.
  89. ^ Браун, Джеймс А. (1984). "Принципы APL2". Технический отчет 03.247 . Лаборатория IBM в Санта-Терезе.
  90. ^ Браун, Джеймс А. (1988). «Программирование на языке APL2: Справочник по языку». Sh20-9227 . Корпорация IBM.
  91. ^ Смит, Боб (1981). "Вложенные массивы, операторы и функции". Труды международной конференции по APL - APL '81 . С. 286–290. doi : 10.1145/800142.805376 . ISBN 0-89791-035-4.
  92. ^ Чейни, Карл М. (1981). Система вложенных массивов APL*PLUS (PDF) . STSC, Inc. Получено 19 апреля 2016 г. .
  93. ^ Орт, Дональд Л. (декабрь 1981 г.). «Сравнение реализаций операторов и общих массивов IPSA и STSC». APL Quote Quad . 12 (2): 11. doi : 10.1145/586656.586662 . S2CID  1642446. Получено 13 апреля 2016 г.
  94. ^ Макдоннелл, Юджин (20 июня 1981 г.). «Комплексные числа». Техническое примечание SHARP APL . 40. Получено 11 апреля 2016 г.
  95. ^ ab Iverson, Kenneth E. (20 июня 1981 г.). «Состав и приложение». Техническое примечание SHARP APL . 41. Получено 11 апреля 2016 г.
  96. ^ ab Iverson, Kenneth E. (1 апреля 1982 г.). «Определительно-подобные функции, создаваемые оператором Dot». Техническое примечание SHARP APL . 42. Получено 11 апреля 2016 г.
  97. ^ ab Бернеки, Роберт; Айверсон, Кеннет Э.; Макдоннелл, Юджин ; Мецгер, Роберт; Шулер, Дж. Анри (2 мая 1983 г.). «Расширения языка от мая 1983 г.». Техническое примечание SHARP APL . 45. Получено 11 апреля 2016 г.
  98. ^ Tuttle, Joey K. (август 2006 г.). «Что не так с моим программированием?». Vector . 22 (3) . Получено 25 апреля 2016 г.
  99. ^ ab Iverson, Kenneth E. (6 октября 1980 г.). «Индуктивный метод введения в APL». Труды встречи пользователей APL 1980 г. Получено 10 апреля 2016 г.
  100. ^ ab Айверсон, Кеннет Э. (январь 1981 г.). Миникурс SHARP APL . IP Sharp Associates .
  101. ^ ab Айверсон, Кеннет Э. (1984). Прикладная математика для программистов . IP Sharp Associates .
  102. ^ ab Айверсон, Кеннет Э. (июль 1986 г.). Математика и программирование . IP Sharp Associates .
  103. ^ Бернеки, Роберт; Айверсон, Кеннет Э. (6 октября 1980 г.). «Операторы и замкнутые массивы». Труды встречи пользователей APL 1980 г. Получено 10 апреля 2016 г.
  104. ^ Айверсон, Кеннет Э. (октябрь 1980 г.). «Прямое определение». Техническое примечание SHARP APL . 36 .
  105. ^ Айверсон, Кеннет Э.; Вустер, Питер К. (сентябрь 1981 г.). «Оператор определения функции». APL Quote Quad . 12 : 142–145. doi : 10.1145/390007.805349 .
  106. ^ аб Айверсон, Кеннет Э.; Пеш, Роланд Х.; Шуелер, Дж. Анри (июнь 1984 г.). «Операторное исчисление». Материалы конференции APL 84 . Проверено 10 апреля 2016 г. .
  107. ^ ab Iverson, Kenneth E. (май 1987 г.). "APL87". Труды конференции APL 87. Получено 10 апреля 2016 г.
  108. ^ Хагамен, В. Д.; Берри, П. К.; Айверсон, К. Э.; Вебер, Дж. К. (август 1989 г.). «Обработка синтаксических и семантических механизмов естественного языка». Труды конференции по APL как инструменту мышления, APL 1989, Нью-Йорк, штат Нью-Йорк, США, 7–10 августа 1989 г. APL Quote Quad . 19 (4): 184–189. doi :10.1145/75144.75170. ISBN 0897913272. S2CID  14004227.
  109. Хуэй, Роджер (3 декабря 2014 г.). «Любимое выражение Кена Айверсона в APL?». Блог Dyalog . Получено 12 апреля 2016 г.
  110. ^ Справочник языка Dyalog APL (версия 14.0 или более поздняя) (PDF) . Dyalog Limited. 2014. Получено 16 апреля 2016 .
  111. ^ ab Iverson, Kenneth E. и Eugene McDonnell (август 1989). «Фразовые формы». Материалы конференции APL 89. Получено 10 апреля 2016 г.
  112. ^ ab Iverson, Kenneth E. (сентябрь 1988 г.). «Комментарий к разработке APL». APL Quote Quad . 19 (1): 3–8. doi : 10.1145/379279.379330 . S2CID  18392328. Получено 13 апреля 2016 г.
  113. Hodgkinson, Rob (19 октября 2017 г.). Запись на форуме J Programming.
  114. ^ ab Hui, Roger ; Iverson, Kenneth E.; McDonnell, Eugene ; Whitney, Arthur (июль 1990 г.). "APL/?". Материалы конференции APL 90 . Получено 10 апреля 2016 г. .
  115. ^ Хуэй, Роджер (27 января 1992 г.). Реализация J (PDF) . Iverson Software Inc . Получено 10 апреля 2016 г. .
  116. ^ Хуэй, Роджер (май 1987). «Некоторые применения { и }». Труды конференции APL 87. Получено 15 апреля 2016 г.
  117. ^ Хуэй, Роджер (июнь 1995 г.). «Ранг и однородность». Материалы конференции APL 95. Получено 15 апреля 2016 г.
  118. Хуэй, Роджер (27 января 2006 г.). «Дао J». J Wiki Essay . Получено 24 мая 2016 г.
  119. ^ ab Hui, Roger ; Iverson, Kenneth E.; McDonnell, Eugene (август 1991 г.). "Молчаливое определение". Труды международной конференции по APL '91 - APL '91 . стр. 202–211. doi : 10.1145/114054.114077 . ISBN 0897914414. S2CID  8940369 . Получено 10 апреля 2016 г. .
  120. ^ Черлин, Эдвард (август 1991). "Чистые функции в APL и J". Труды международной конференции по APL '91 - APL '91 . стр. 88–93. doi : 10.1145/114054.114065 . ISBN 0897914414. S2CID  25802202.
  121. ^ Берк, Крис; Хуэй, Роджер (сентябрь 1996 г.). «J для программиста APL». APL Quote Quad . 27 (1): 11–17. doi : 10.1145/1151395.1151400 . S2CID  9203778. Получено 14 апреля 2016 г.
  122. ^ Берк, Крис (2 марта 2005 г.). APL и J (PDF) . Получено 16 апреля 2016 г.
  123. ^ Источник J. Jsoftware, Inc. Получено 15 апреля 2016 г.
  124. ^ Айверсон, Кеннет Э. (1991). Осязаемая математика . Iverson Software Inc.
  125. ^ Айверсон, Кеннет Э. (1991). Программирование в J. Iverson Software Inc.
  126. ^ Айверсон, Кеннет Э. (1991). Арифметика (PDF) . Iverson Software Inc . Получено 10 апреля 2016 г. .
  127. ^ Айверсон, Кеннет Э. (1993). Исчисление (PDF) . Iverson Software Inc . Получено 10 апреля 2016 г. .
  128. ^ Айверсон, Кеннет Э. (1995). Concrete Math Companion (PDF) . Iverson Software Inc . Получено 10 апреля 2016 г. .
  129. ^ Айверсон, Кеннет Э. (1996). Exploring Math (PDF) . Iverson Software Inc . Получено 10 апреля 2016 г. .
  130. ^ Берк, Крис; Хуэй, Роджер ; Айверсон, Кеннет Э.; Макдоннелл, Юджин ; Макинтайр, Дональд Б. (1996). J Phrases. Iverson Software Inc. Получено 10 апреля 2016 г.
  131. ^ Берк, Крис; Хуэй, Роджер ; Айверсон, Эрик; Айверсон, Кеннет Э.; Айверсон, Кирк (1998). Победители конкурса ICFP '98 . Получено 15 апреля 2016 г.
  132. ^ Айверсон, Кеннет Э. (1999). Математика для неспециалистов. JSoftware Inc. Получено 10 апреля 2016 г.
  133. ^ Хуэй, Роджер ; Айверсон, Кеннет Э. (1991). "J Introduction and Dictionary". Jsoftware Inc. Получено 9 апреля 2016 г.
  134. ^ Айверсон, Кеннет Э. (март 1994 г.). «Revisiting Rough Spots». APL Quote Quad . 24 (3): 13–16. doi : 10.1145/181983.181986 . S2CID  2140469. Получено 13 апреля 2016 г.
  135. ^ Айверсон, Кеннет Э. (1996). Компьютеры и математическая нотация. Iverson Software Inc. Получено 10 апреля 2016 г.
  136. ^ Хуэй, Роджер ; Айверсон, Кеннет Э. (январь 1998 г.). «Математические корни J». Труды конференции «Обмен знаниями, обмен успехами — APL '97» . С. 21–30. doi : 10.1145/316689.316698 . S2CID  2317632.
  137. ^ Айверсон, Кеннет Э. (август 2006 г.). «APL в новом тысячелетии». Вектор . 22 (3) . Получено 25 апреля 2016 г.
  138. ^ Справочник членов NAE. Национальная инженерная академия . Получено 22 апреля 2016 г.
  139. ^ Премия Computer Pioneer Award (обладатель хартии). IEEE Computer Society . 1982. Получено 8 апреля 2016 г.
  140. ^ Драммонд, Б. (11 июня 1998 г.). Цитата для доктора Кеннета Айверсона. Йоркский университет . Получено 8 апреля 2016 г.
  141. ^ Ковтунович, Василий Н.; Устюжанин, Петр Я. (2015). "Новые виды плюмовых молей рода Agdistis Hübner, 1825 (Lepidoptera: Pterophoridae: Agdistinae) из южной Африки". African Invertebrates . 56 (1): 137–139. Bibcode :2015AfrIn..56..137K. doi : 10.5733/afin.056.0110 . Вид назван в честь Кеннета Юджина Айверсона (1920–2004), канадского ученого-компьютерщика, который разработал языки программирования APL и J.

Внешние ссылки