Kenneth E. Iverson - Kenneth E. Iverson

Kenneth Eugene Iverson
Kei young.jpg
Nascer ( 1920-12-17 )17 de dezembro de 1920
Camrose, Alberta , Canadá
Faleceu 19 de outubro de 2004 (19/10/2004)(com 83 anos)
Toronto , Ontário , Canadá
Cidadania canadense
Alma mater Queen's University
Harvard University
Conhecido por Linguagens de programação : APL , J
Prêmios
Prêmio IBM Fellow Harry H. Goode Memorial Award
Turing Award
Prêmio pioneiro da computação
Carreira científica
Campos Matemática
Ciência da Computação
Instituições Harvard University
IBM I.P.
Sharp Associates
Jsoftware Inc.
Tese Soluções de máquina de equações diferenciais lineares - aplicações a um modelo econômico dinâmico  (1954)
Orientador de doutorado Howard Aiken
Wassily Leontief

Kenneth Eugene Iverson (17 de dezembro de 1920 - 19 de outubro de 2004) foi um cientista da computação canadense conhecido pelo desenvolvimento da linguagem de programação APL . Ele foi homenageado com o Prêmio Turing em 1979 "por seu esforço pioneiro em linguagens de programação e notação matemática, resultando no que o campo da computação agora conhece como APL; por suas contribuições para a implementação de sistemas interativos, para usos educacionais de APL e para programação teoria e prática da linguagem ".

Vida

Ken Iverson nasceu em 17 de dezembro de 1920 perto de Camrose , uma cidade no centro de Alberta , Canadá. Seus pais eram agricultores que vieram para Alberta da Dakota do Norte ; seus ancestrais vieram de Trondheim , Noruega .

Durante a Segunda Guerra Mundial , ele serviu primeiro no Exército canadense e depois na Força Aérea Real Canadense . Ele recebeu um diploma de BA pela Queen's University e o M.Sc. e Ph.D. graduados pela Harvard University . Em sua carreira, ele trabalhou para Harvard , IBM , IP Sharp Associates e Jsoftware Inc. (nascida Iverson Software Inc.).

Iverson sofreu um derrame enquanto trabalhava no computador em um novo J lab em 16 de outubro de 2004 e morreu em 19 de outubro de 2004 com 83 anos de idade.

Educação

Iverson começou a estudar em 1 de abril de 1926 em uma escola de uma sala , inicialmente na 1ª série, promovida para a 2ª série após 3 meses e para a 4ª série no final de junho de 1927. Ele deixou a escola após a 9ª série porque era o mais profundo do Grande Depressão e havia trabalho a fazer na fazenda da família , e porque ele pensava que mais estudos apenas o levaria a se tornar professor e ele não tinha desejo de se tornar um. Aos 17 anos, quando ainda estava fora da escola, ele se matriculou em um curso por correspondência em rádios com De Forest Training em Chicago, e aprendeu cálculo por auto-estudo em um livro didático. Durante a Segunda Guerra Mundial , enquanto servia na Força Aérea Real Canadense , ele fez cursos por correspondência para obter um diploma do ensino médio.

Depois da guerra, Iverson matriculou-se na Queen's University em Kingston, Ontário , aproveitando o apoio do governo para ex-militares e sob a ameaça de um camarada da Força Aérea que disse que "quebraria a cabeça se não aproveitasse a oportunidade". Ele se formou em 1950 como o melhor aluno com um diploma de bacharel em matemática e física .

Continuando sua educação na Universidade de Harvard , ele começou no Departamento de Matemática e recebeu o grau de Mestre em 1951. Ele então mudou para o Departamento de Engenharia e Física Aplicada, trabalhando com Howard Aiken e Wassily Leontief .

Kenneth Iverson lembrou o estudo de pós-graduação com Aiken como "como um aprendizado", no qual o aluno "aprendeu as ferramentas da bolsa de estudos". Cada tópico foi "usado mais como um foco para o desenvolvimento de habilidades como clareza de pensamento e expressão do que como um fim em si mesmo". Uma vez admitido no programa, um estudante graduado passava por um rito de "adoção pelo rebanho". Ele recebeu uma mesa (ou uma parte dela) entre um grupo de outros alunos de pós-graduação, a equipe permanente ou acadêmicos visitantes, "muitos dos quais estavam envolvidos em algum aspecto do projeto e construção de computadores". Assim, um aluno "sentia-se parte de uma empresa acadêmica" e recebia, "muitas vezes pela primeira vez, acesso fácil e íntimo a outros mais experientes no campo escolhido".

-  I. Bernard Cohen , Howard Aiken: Retrato de um Pioneiro do Computador , MIT Press, 1999, página 215.

Ao entrevistar Aiken, perguntei-lhe se Tropp e eu poderíamos ver suas notas de aula; Aiken respondeu que ele sempre destruiu suas notas de aula no final de cada ano, para que ele não fosse tentado a repetir suas aulas.

-  I. Bernard Cohen e Gregory W. Welch, editores, Makin 'Numbers , MIT Press, 1999, página xvi.

Howard Aiken havia desenvolvido o Harvard Mark I , um dos primeiros computadores digitais de grande escala, enquanto Wassily Leontief era um economista que estava desenvolvendo o modelo de entrada e saída da análise econômica, trabalho pelo qual mais tarde receberia o prêmio Nobel . O modelo de Leontief exigia grandes matrizes e Iverson trabalhou em programas que pudessem avaliar essas matrizes no computador Harvard Mark IV . Iverson recebeu um Ph.D. em Matemática Aplicada em 1954 com uma dissertação baseada neste trabalho.

Em Harvard, Iverson conheceu Eoin Whitney, duas vezes Putnam Fellow e colega de pós-graduação de Alberta. Isso teve ramificações futuras.

Trabalhos

Harvard (1955-1960)

Algoritmo Simplex em notação Iverson

Iverson permaneceu em Harvard como professor assistente para implementar o primeiro programa de pós-graduação do mundo em "processamento automático de dados".

Muitas pessoas pensam que Aiken estava interessado apenas em computadores científicos . Simplesmente não era assim. Durante uma hora do café, Aiken voltou-se para Ken Iverson, que havia acabado de concluir seu Ph.D., e disse: "Essas máquinas serão imensamente importantes para os negócios e quero que você prepare e dê um curso de processamento de dados empresariais próximo Outono." Nunca houve tal curso em qualquer lugar do mundo. Ken foi qualificado apenas porque era matemático. Fiquei tão animado com a perspectiva que imediatamente me ofereci para ser assistente de ensino de pós-graduação de Ken.

-  Frederick Brooks Jr. , Aiken and the Harvard "Comp Lab", em I. Bernard Cohen e Gregory W. Welch, editores, Makin 'Numbers , MIT Press, 1999, página 141.

Foi neste período que Iverson desenvolveu notação para descrever e analisar vários tópicos em processamento de dados, para dar aulas e para escrever (com Brooks) Processamento Automático de Dados . Ele ficou "chocado" ao descobrir que a notação matemática convencional não atendia às suas necessidades e começou a trabalhar em extensões da notação que fossem mais adequadas. Em particular, ele adotou a álgebra de matriz usada em seu trabalho de tese, o uso sistemático de matrizes e matrizes de dimensões superiores na análise de tensores e operadores no sentido de Heaviside em seu tratamento das equações de Maxwell , funções de ordem superior no argumento de função ( s) com um resultado de função. A notação também foi testada em campo no mundo dos negócios em 1957, durante um período sabático de 6 meses passado na McKinsey & Company . O primeiro artigo publicado usando a notação foi The Description of Finite Sequential Processes , inicialmente Report Number 23 to Bell Labs e posteriormente revisado e apresentado no Fourth London Symposium on Information Theory em agosto de 1960.

Iverson permaneceu em Harvard por cinco anos, mas não conseguiu obter estabilidade, porque "[ele não tinha] publicado nada além de um livrinho".

IBM (1960-1980)

Iverson ingressou na IBM Research em 1960 (e dobrou seu salário). Ele foi precedido pela IBM por Fred Brooks , que o aconselhou a "se limitar a tudo o que [ele] realmente queria fazer, porque a administração estava tão faminta por ideias que qualquer coisa que não fosse claramente louca encontraria apoio". Em particular, ele foi autorizado a terminar e publicar A Programming Language e (com Brooks) Automatic Data Processing , dois livros que descreviam e usavam a notação desenvolvida em Harvard. ( Automatic Data Processing and A Programming Language começou como um livro "mas o material cresceu em magnitude e nível até que uma separação se mostrou acertada".)

Na IBM, Iverson logo conheceu Adin Falkoff , e eles trabalharam juntos pelos próximos vinte anos. O Capítulo 2 de A Programming Language usou a notação de Iverson para descrever o computador IBM 7090 . No início de 1963, Falkoff, mais tarde acompanhado por Iverson e Ed Sussenguth , passou a usar a notação para produzir uma descrição formal do computador IBM System / 360 então em projeto. O resultado foi publicado em 1964 em uma edição dupla do IBM Systems Journal, posteriormente conhecido como "livro cinza" ou "manual cinza". O livro foi usado em um curso sobre design de sistemas de computador no IBM Systems Research Institute. Uma consequência da descrição formal foi que atraiu o interesse de jovens mentes brilhantes. Um foco de interesse foi a Universidade de Stanford, que incluiu Larry Breed , Phil Abrams , Roger Moore , Charles Brenner e Mike Jenkins, todos os quais mais tarde fizeram contribuições para a APL. Donald McIntyre, chefe de geologia do Pomona College, que teve a primeira instalação geral do cliente de um sistema 360, usou a descrição formal para se tornar mais especialista do que o engenheiro de sistemas IBM designado para Pomona.

Com a conclusão da descrição formal, Falkoff e Iverson voltaram sua atenção para a implementação. Este trabalho teve uma rápida fruição em 1965, quando Larry Breed e Phil Abrams se juntaram ao projeto. Eles produziram uma implementação baseada em FORTRAN no 7090 chamada IVSYS (para o sistema Iverson) no outono de 1965, primeiro no modo batch e depois, no início de 1966, no modo interativo time-shared. Posteriormente, Breed, Dick Lathwell (ex- University of Alberta ) e Roger Moore (da IP Sharp Associates ) produziram a implementação do System / 360; os três receberam o prêmio Grace Murray Hopper em 1973 "por seu trabalho no projeto e implementação do APL \ 360, estabelecendo novos padrões em simplicidade, eficiência, confiabilidade e tempo de resposta para sistemas interativos". Enquanto o trabalho de implementação do 360 estava em andamento, a "notação de Iverson" foi renomeada para "APL", por Falkoff. O espaço de trabalho "1 cleanspace" foi salvo em 1966-11-27 22.53.58 UTC . O serviço APL \ 360 começou dentro da IBM várias semanas antes disso e fora da IBM em 1968. Informações adicionais sobre a implementação do APL \ 360 podem ser encontradas nos Agradecimentos do Manual do Usuário do APL \ 360 e no "Apêndice. Cronologia do desenvolvimento do APL" de O Design do APL .

Expressão APL para a profundidade do aninhamento de parênteses

A descrição formal e especialmente a implementação impulsionaram a evolução da linguagem, um processo de consolidação e regularização em tipografia, linearização, sintaxe e definição de funções descritas em APL \ 360 History , The Design of APL e The Evolution of APL . Dois tratados desse período, as Convenções que Regem a Ordem da Avaliação e a Álgebra como Linguagem , são apologias da notação APL.

A notação foi usada por Falkoff e Iverson para ensinar vários tópicos em várias universidades e no IBM Systems Research Institute. Em 1964, Iverson usou a notação em um curso de um semestre para alunos do último ano na Fox Lane High School e, mais tarde, na Swarthmore High School . Depois que o APL se tornou disponível, sua primeira aplicação foi ensinar métodos formais em projeto de sistemas na NASA Goddard . Também foi usado na Hotchkiss School , Lower Canada College , Scotch Plains High School , escolas públicas de Atlanta, entre outras. Em uma escola, os alunos ficaram tão ansiosos que invadiram a escola depois do expediente para obter mais tempo de computador APL; em outro, os entusiastas do APL orientaram os novatos para o BASIC de modo a maximizar seu próprio tempo de APL.

Em 1969, Iverson e o grupo APL inauguraram o IBM Philadelphia Scientific Center. Em 1970 ele foi nomeado IBM Fellow . Ele usou o financiamento que veio por ser um IBM Fellow para trazer professores visitantes e professores de várias áreas, incluindo Donald McIntyre de Pomona e Jeff Shallit como um estudante de verão. Por um período de vários meses, os visitantes começariam a usar o APL para exposições em seus próprios campos, e a esperança era que mais tarde continuassem a usar o APL em suas instituições de origem. O trabalho de Iverson nessa época se concentrava em várias disciplinas, incluindo projetos colaborativos em teoria de circuitos, genética, geologia e cálculo. Quando o PSC foi fechado em 1974, parte do grupo foi transferida para a Califórnia, enquanto outros, incluindo Iverson, permaneceram no Leste, sendo posteriormente transferidos de volta para a IBM Research. Iverson recebeu o Prêmio Turing em 1979.

(Da esquerda para a direita) Dick Lathwell, Ken Iverson, Roger Moore, Adin Falkoff, Phil Abrams e Larry Breed. Na extrema esquerda ao fundo: Jon McGrew. Tirada na suíte de hospitalidade da IP Sharp Associates durante o APL Users Meeting de 1978 em Toronto, Ontário.

A tabela a seguir lista as publicações de autoria ou co-autoria de Iverson enquanto estava na IBM. Eles refletem as duas vertentes principais de seu trabalho.

Educação
  • Processamento Automático de Dados
  • Funções Elementares: Um Tratamento Algorítmico
  • O uso de APL no ensino
  • Usando o computador para calcular
  • Álgebra: Um Tratamento Algorítmico
  • APL em exposição
  • Uma introdução ao APL para cientistas e engenheiros
  • Apresentando o APL para professores
  • Análise Elementar
  • Estilo de programação em APL
Desenho e implementação de linguagem
  • Uma linguagem de programação
  • Uma linguagem de programação
  • Uma linguagem comum para hardware, software e aplicativos
  • Notação de programação no design do sistema
  • Formalismo em Linguagens de Programação
  • Um método de especificação de sintaxe
  • Uma descrição formal do sistema / 360
  • APL \ 360 Manual do usuário
  • Comunicação em Sistemas APL
  • O Design do APL
  • APL como uma notação analítica
  • Manual do Usuário APLSV
  • Linguagem APL
  • Dois Operadores Combinatórios
  • A Evolução do APL
  • Operadores e funções
  • O papel dos operadores no APL
  • O Operador Derivativo
  • Operadores
  • Notação como ferramenta de pensamento

IP Sharp Associates (1980–1987)

Operador de classificação APL ⍤

Em 1980, Iverson trocou a IBM pela IP Sharp Associates , uma empresa de compartilhamento de tempo APL . Ele foi precedido por seus colegas da IBM, Paul Berry, Joey Tuttle, Dick Lathwell e Eugene McDonnell . Na IPSA, o grupo de sistemas e linguagem APL era gerenciado por Eric Iverson (filho de Ken Iverson); Roger Moore , um dos implementadores do APL \ 360, era vice-presidente.

Iverson trabalhou para desenvolver e estender o APL nas linhas apresentadas em Operadores e Funções . O trabalho com a linguagem ganhou ímpeto em 1981, quando Arthur Whitney e Iverson produziram um modelo de APL escrito em APL ao mesmo tempo em que trabalhavam no banco de dados OAG da IPSA . (Iverson apresentou Arthur Whitney, filho de Eoin Whitney, ao APL quando ele tinha 11 anos e em 1974 o recomendou para um cargo de estudante de verão na IPSA Calgary .) No modelo, a sintaxe do APL era impulsionada por um 11-by -5 mesa. Whitney também inventou o operador de classificação no processo. O design da linguagem foi ainda mais simplificado e estendido no APL Racionalizado em janeiro de 1983, várias edições de Um Dicionário da Língua APL entre 1984 e 1987 e Um Dicionário de APL em setembro de 1987. Dentro da IPSA, a frase "dicionário APL" entrou em uso para denotar o APL especificado por Um Dicionário de APL , ele próprio referido como "o dicionário". No dicionário, a sintaxe APL é controlada por uma tabela 9 por 6 e o ​​processo de análise foi descrito de forma precisa e sucinta na Tabela 2, e há um primitivo (monádico ⊥, modelado em APL) para a formação de palavras ( lexing ).

Nas décadas de 1970 e 1980, os principais fornecedores de APL eram IBM , STSC e IPSA , e todos os três atuavam no desenvolvimento e extensão da linguagem. A IBM tinha o APL2, baseado no trabalho de Jim Brown . O trabalho no APL2 prosseguiu intermitentemente por 15 anos, com a codificação real começando em 1971 e o APL2 se tornando disponível como um IUP (Programa de Usuário Instalado, uma classificação de produto IBM) em 1982. O STSC tinha um sistema APL experimental chamado NARS, projetado e implementado por Bob Smith . NARS e APL2 diferiam em aspectos fundamentais do APL de dicionário e diferiam um do outro.

A IP Sharp implementou as novas ideias de APL em estágios: números complexos, matrizes fechadas (em caixas), operadores de correspondência e composição em 1981, o operador determinante em 1982 e o operador de classificação, link e as funções de identidade esquerda e direita em 1983. No entanto, os domínios dos operadores ainda eram restritos às funções primitivas ou subconjuntos delas. Em 1986, a IPSA desenvolveu o SAX, SHARP APL / Unix, escrito em C e baseado em uma implementação do STSC . O idioma foi especificado no dicionário, sem restrições aos domínios dos operadores. Uma versão alfa do SAX tornou-se disponível na IP Sharp por volta de dezembro de 1986 ou início de 1987.

Na educação, Iverson desenvolveu um Minicurso SHARP APL usado para ensinar clientes IPSA no uso de APL e Matemática Aplicada para Programadores e Matemática e Programação que foram usados ​​em cursos de ciência da computação na TH Twente .

Ken Iverson e Arthur Whitney, 1989

Publicações de autoria ou co-autoria de Iverson enquanto estava na IP Sharp Associates :

Educação
  • O método indutivo de introdução do APL
  • Um Minicurso SHARP APL
  • Matemática Aplicada para Programadores
  • Matemática e Programação
Desenho e implementação de linguagem
  • Operadores e matrizes fechadas
  • Definição Direta
  • Composição e Invólucro
  • Um operador de definição de função
  • Funções semelhantes a determinantes produzidas pelo operador de ponto
  • Usos práticos de um modelo de APL
  • APL Racionalizado
  • Sintaxe e semântica APL
  • Extensões de linguagem de maio de 1983
  • Um cálculo do operador
  • APL87
  • Um Dicionário de APL
  • Processamento de linguagem natural: mecanismos sintáticos e semânticos

Jsoftware (1990–2004)

J verbo tácito para coeficientes binomiais
Cálculo equivalente Dyalog APL

Iverson aposentou-se da IP Sharp Associates em 1987. Ele se mantinha ocupado durante os "intervalos de trabalho". Em relação ao design de linguagem, a mais significativa de suas atividades neste período foi a invenção do "garfo" em 1988. Durante anos, ele lutou para encontrar uma maneira de escrever f + g como no cálculo, a partir dos "operadores escalares" em 1978 , por meio do operador "til" em 1982, os operadores de catenação e remodelagem em 1984, os operadores de união e interseção em 1987, "yoke" em 1988 e, finalmente, garfos em 1988. Os garfos são definidos da seguinte forma:

      (fgh) y   ← →   (fy) g (hy)
    x (fgh) y   ← →   (xfy) g (xhy)

Além disso, (fgpqr) ← → (fg (pqr)). Assim, para escrever f + g como no cálculo, pode-se escrever f + g no APL. Iverson e Eugene McDonnell trabalharam nos detalhes das longas viagens de avião para a conferência APL88 em Sydney, Austrália, com Iverson tendo a ideia inicial de acordar de um cochilo.

Iverson apresentou a justificativa para seu trabalho após 1987 da seguinte forma:

Quando me aposentei do emprego remunerado, voltei minha atenção para este assunto [o uso do APL para o ensino] e logo concluí que a ferramenta essencial necessária era um dialeto do APL que:

• Está disponível como "shareware" e é barato o suficiente para ser adquirido por alunos e também por escolas
• Pode ser impresso em impressoras padrão
• Funciona em uma ampla variedade de computadores
• Fornece a simplicidade e a generalidade do pensamento mais recente em APL

O resultado foi J , relatado pela primeira vez em [os procedimentos da conferência APL 90 ].

Roger Hui descreveu o ímpeto final que deu início a J no Apêndice A de Uma Implementação de J :

Em um fim de semana de verão em 1989, Arthur Whitney visitou Ken Iverson em Kiln Farm e produziu - em uma página e em uma tarde - um fragmento de intérprete no computador AT&T 3B1 . Estudei este intérprete por cerca de uma semana para sua organização e estilo de programação; e no domingo, 27 de agosto de 1989, por volta das quatro horas da tarde, escrevi a primeira linha do código que se tornou a implementação descrita neste documento. O fragmento do intérprete de uma página de Arthur é o seguinte: ...

Hui, um colega de Whitney na Universidade de Alberta , tinha estudado um dicionário da APL Idioma quando ele estava entre empregos, modelou o processo de análise em pelo menos duas maneiras diferentes, e investigados usos da APL dicionário em diversas aplicações. Além disso, de janeiro de 1987 a agosto de 1989 ele teve acesso ao SAX, e na parte posterior desse período o utilizou diariamente.

J inicialmente considerou A Dictionary of APL como a especificação, e o interpretador J foi construído em torno da Tabela 2 do dicionário. Os dados C e as estruturas do programa foram projetados de forma que a tabela de análise em C correspondesse diretamente à tabela de análise no dicionário. Em retrospecto, o artigo APL87 de Iverson no APL87 , em cinco páginas, prescreveu todas as etapas essenciais para escrever um intérprete de APL, em particular as seções sobre formação de palavras e análise sintática. Arthur Whitney , além da "coisa de uma página", contribuiu para o desenvolvimento de J sugerindo que as primitivas sejam orientadas no eixo principal, que a concordância (uma generalização da extensão escalar) deve ser prefixo em vez de sufixo e que uma matriz total o pedido seja definido.

Um dos objetivos era implementar o fork. Isso acabou sendo bastante simples, pela inclusão de uma linha adicional na tabela de análise. A escolha de implementar garfos foi fortuita e afortunada. Só mais tarde percebeu-se que os bifurcações tornavam as expressões tácitas ( expressões de operador) completas no seguinte sentido: qualquer frase envolvendo um ou dois argumentos que não usava seus argumentos como operando, pode ser escrita tacitamente com fork, compose, the left e right funções de identidade e funções constantes.

Duas diferenças óbvias entre J e outros dialetos APL são: (a) seu uso de termos de línguas naturais em vez de matemática ou ciência da computação (a prática começou com Um Dicionário de APL ): substantivo, verbo, advérbios, alfabeto, formação de palavras, frase, ... em vez de array, função, operador, conjunto de caracteres, lexing, expressão, ...; e (b) seu uso de caracteres ASCII de 7 bits em vez de símbolos especiais. Outras diferenças entre J e APL são descritos em J sobre o APL programador e APL e J .

O código-fonte J está disponível no Jsoftware sob a GNU General Public License versão 3 (GPL3), ou uma alternativa comercial.

Eric Iverson fundou a Iverson Software Inc., em fevereiro de 1990 para fornecer um produto SHARP APL / PC aprimorado. Rapidamente se tornou óbvio que havia interesses e objetivos comuns e, em maio de 1990, Iverson e Hui se juntaram à Iverson Software Inc .; mais tarde juntou-se a Chris Burke. A empresa logo se tornou apenas J. O nome foi alterado para Jsoftware Inc., em abril de 2000.

Ken Iverson (à direita) e Roger Hui, 1996

Publicações de autoria ou co-autoria de Iverson enquanto ele estava na Iverson Software Inc. e Jsoftware Inc .:

Educação
  • Matemática Tangível
  • Programação em J
  • Aritmética
  • Cálculo
  • Concrete Math Companion
  • Explorando a matemática
  • Frases J
  • Vencedores do concurso ICFP '98
  • Matemática para o Leigo
Desenho e implementação de linguagem
  • Um comentário sobre o desenvolvimento de APL
  • Formulários Frasais
  • APL /?
  • Definição Tácita
  • Uma visão pessoal do APL
  • J Introdução e Dicionário
  • Revisitando pontos difíceis
  • Computadores e notação matemática
  • Raízes matemáticas de J
  • APL no Novo Milênio

Premios e honras

Veja também

Referências

links externos