Kenneth Eugene Iverson (17 de diciembre de 1920 – 19 de octubre de 2004) fue un informático canadiense conocido por el desarrollo del lenguaje de programación APL . Fue galardonado con el premio Turing en 1979 "por su esfuerzo pionero en lenguajes de programación y notación matemática que dio como resultado lo que el campo de la informática ahora conoce como APL; por sus contribuciones a la implementación de sistemas interactivos, a los usos educativos de APL y a la teoría y práctica de los lenguajes de programación". [1]
Vida
Ken Iverson nació el 17 de diciembre de 1920 cerca de Camrose , una ciudad en el centro de Alberta , Canadá. [2] Sus padres eran agricultores que llegaron a Alberta desde Dakota del Norte ; sus antepasados vinieron de Trondheim , Noruega . [3]
Iverson sufrió un derrame cerebral mientras trabajaba en la computadora de un nuevo laboratorio J el 16 de octubre de 2004, [5] y murió en Toronto el 19 de octubre de 2004 a los 83 años. [2]
Educación
Iverson comenzó la escuela el 1 de abril de 1926 en una escuela de una sola aula , [4] inicialmente en el grado 1, promovido al grado 2 después de 3 meses y al grado 4 a fines de junio de 1927. Dejó la escuela después del grado 9 porque era lo más profundo de la Gran Depresión y había trabajo que hacer en la granja familiar , y porque pensó que la educación adicional solo conducía a convertirse en maestro de escuela y no tenía ningún deseo de convertirse en uno. A los 17 años, mientras todavía estaba fuera de la escuela, se inscribió en un curso por correspondencia sobre radios con De Forest Training en Chicago, y aprendió cálculo por su cuenta de un libro de texto. [4] [6]
Durante la Segunda Guerra Mundial , mientras servía en la Real Fuerza Aérea Canadiense , tomó cursos por correspondencia para obtener un diploma de escuela secundaria.
Después de la guerra, Iverson se matriculó en la Queen's University de Kingston (Ontario) , aprovechando el apoyo gubernamental a los exmilitares y bajo la amenaza de un compañero de la Fuerza Aérea que le dijo que "se rompería los sesos si no aprovechaba la oportunidad". [4] Se graduó en 1950 como el mejor estudiante con una licenciatura en matemáticas y física . [3]
Kenneth Iverson ha recordado los estudios de posgrado con Aiken como "un aprendizaje" en el que el estudiante "aprendía las herramientas del oficio académico". Cada tema se "utilizaba más como un foco para el desarrollo de habilidades como la claridad de pensamiento y expresión que como un fin en sí mismo". Una vez admitido en el programa, un estudiante de posgrado pasaba por un rito de "adopción en el redil". Se le daba un escritorio (o un escritorio compartido) entre un grupo de otros estudiantes de posgrado, el personal permanente o académicos visitantes, "la mayoría de los cuales estaban involucrados en algún aspecto del diseño y la construcción de computadoras". De esta manera, al estudiante se le hacía "sentir parte de una empresa académica" y se le proporcionaba, "a menudo por primera vez, un acceso fácil e íntimo a otros más experimentados en su campo elegido".
— I. Bernard Cohen , Howard Aiken: retrato de un pionero de la informática , MIT Press, 1999, página 215. [7]
Cuando entrevisté a Aiken, le pregunté si Tropp y yo podíamos ver sus notas de clase; Aiken respondió que siempre las destruía al final de cada año, para no tener la tentación de repetirlas.
— I. Bernard Cohen y Gregory W. Welch, editores, Makin' Numbers , MIT Press, 1999, página xvi. [8]
Howard Aiken había desarrollado la Harvard Mark I , una de las primeras computadoras digitales a gran escala, mientras que Wassily Leontief era un economista que estaba desarrollando el modelo de insumo-producto del análisis económico, trabajo por el que más tarde recibiría el premio Nobel . El modelo de Leontief requería matrices grandes e Iverson trabajó en programas que podían evaluar estas matrices en la computadora Harvard Mark IV . Iverson recibió un doctorado en matemáticas aplicadas en 1954 con una disertación basada en este trabajo. [9] [10]
En Harvard, Iverson conoció a Eoin Whitney, dos veces becario Putnam y compañero de estudios de posgrado de Alberta. [11] [12] Esto tuvo ramificaciones futuras.
Trabajar
Universidad de Harvard (1955-1960)
Iverson permaneció en Harvard como profesor asistente para implementar el primer programa de posgrado del mundo en "procesamiento automático de datos". [15] [16] [17]
Mucha gente piensa que Aiken sólo estaba interesado en las computadoras científicas . Esto simplemente no era así. Durante una hora de café, Aiken se volvió hacia Ken Iverson, que acababa de terminar su doctorado, y le dijo: "Estas máquinas van a ser inmensamente importantes para los negocios, y quiero que prepares y enseñes un curso sobre procesamiento de datos comerciales el próximo otoño". Nunca había habido un curso así en ningún lugar del mundo. Ken estaba calificado sólo porque era matemático. Estaba tan entusiasmado con la perspectiva que inmediatamente me ofrecí voluntario para ser el asistente de cátedra de posgrado de Ken.
— Frederick Brooks Jr. , Aiken y el "Comp Lab" de Harvard, en I. Bernard Cohen y Gregory W. Welch, editores, Makin' Numbers , MIT Press, 1999, página 141. [8]
Fue en este período que Iverson desarrolló la notación para describir y analizar varios temas en el procesamiento de datos, para enseñar clases y para escribir (con Brooks) Automatic Data Processing . [18] Se quedó "horrorizado" al descubrir que la notación matemática convencional no satisfacía sus necesidades y comenzó a trabajar en extensiones de la notación que fueran más adecuadas. En particular, adoptó el álgebra matricial utilizada en su trabajo de tesis, el uso sistemático de matrices y conjuntos de dimensiones superiores en el análisis tensorial y operadores en el sentido de Heaviside en su tratamiento de las ecuaciones de Maxwell , funciones de orden superior en argumento(s) de función con un resultado de función. [4] La notación también se probó en el campo en el mundo empresarial en 1957 durante un sabático de 6 meses que pasó en McKinsey & Company . [4] [19] El primer artículo publicado que utilizó la notación fue The Description of Finite Sequential Processes , inicialmente el Informe Número 23 a Bell Labs y luego revisado y presentado en el Cuarto Simposio de Londres sobre Teoría de la Información en agosto de 1960. [13] [20]
Iverson permaneció en Harvard durante cinco años, pero no consiguió la titularidad porque "no había publicado nada más que un pequeño libro". [3]
IBM (1960-1980)
Iverson se unió a IBM Research en 1960 (y duplicó su salario). [4] Fue precedido en IBM por Fred Brooks , quien le aconsejó "apegarse a lo que realmente quisiera hacer, porque la gerencia estaba tan hambrienta de ideas que cualquier cosa que no fuera claramente loca encontraría apoyo". En particular, se le permitió terminar y publicar A Programming Language [20] [21] y (con Brooks) Automatic Data Processing [18] , dos libros que describían y usaban la notación desarrollada en Harvard. ( Automatic Data Processing y A Programming Language comenzaron como un solo libro "pero el material creció tanto en magnitud como en nivel hasta que una separación resultó sensata". [18] [21] )
En IBM, Iverson pronto conoció a Adin Falkoff , y trabajaron juntos durante los siguientes veinte años. El capítulo 2 de A Programming Language utilizó la notación de Iverson para describir la computadora IBM 7090. [20] [21] A principios de 1963, Falkoff, al que más tarde se unieron Iverson y Ed Sussenguth , procedió a utilizar la notación para producir una descripción formal de la computadora IBM System/360 que entonces estaba en diseño. [22] El resultado se publicó en 1964 en un número doble del IBM Systems Journal, [23] conocido a partir de entonces como el "libro gris" o "manual gris". El libro se utilizó en un curso sobre diseño de sistemas informáticos en el IBM Systems Research Institute. [23] Una consecuencia de la descripción formal fue que atrajo el interés de mentes jóvenes brillantes. [4] [24] Un foco de interés fue la Universidad de Stanford , que incluía a Larry Breed , Phil Abrams , Roger Moore , Charles Brenner , [25] y Mike Jenkins, [26] [27] todos ellos posteriormente hicieron contribuciones a APL. Donald McIntyre, jefe de geología en Pomona College , que tuvo la primera instalación general para un cliente de un sistema 360, utilizó la descripción formal para convertirse en más experto que el ingeniero de sistemas de IBM asignado a Pomona. [4] [28]
Una vez completada la descripción formal, Falkoff e Iverson se centraron en la implementación. Este trabajo dio rápidamente frutos en 1965 cuando Larry Breed y Phil Abrams se unieron al proyecto. En otoño de 1965, produjeron una implementación basada en FORTRAN en el 7090 llamada IVSYS (por el sistema Iverson), primero en modo por lotes y más tarde, a principios de 1966, en modo interactivo de tiempo compartido. [25] [29] [30] Posteriormente, Breed, Dick Lathwell (ex Universidad de Alberta ) y Roger Moore (de IP Sharp Associates ) produjeron la implementación del System/360; [31] los tres recibieron el premio Grace Murray Hopper en 1973 "por su trabajo en el diseño e implementación de APL\360, estableciendo nuevos estándares en simplicidad, eficiencia, confiabilidad y tiempo de respuesta para sistemas interactivos". [32] Mientras se estaba trabajando en la implementación del 360, Falkoff cambió el nombre de la "notación Iverson" [30] [33] por "APL". [34] El espacio de trabajo "1 cleanspace" se guardó el 27 de noviembre de 1966 a las 22.53.58 UTC . [24] El servicio APL\360 comenzó dentro de IBM varias semanas antes de eso [35] y fuera de IBM en 1968. [29] Se puede encontrar información adicional sobre la implementación de APL\360 en los Agradecimientos del Manual del usuario de APL\360 [36] y en el "Apéndice. Cronología del desarrollo de APL" de El diseño de APL . [22]
La descripción formal y especialmente la implementación impulsaron la evolución del lenguaje, un proceso de consolidación y regularización en tipografía, linealización, sintaxis y definición de funciones descrito en APL\360 History , [39] The Design of APL , [22] y The Evolution of APL . [19] Dos tratados de este período, Conventions Governing the Order of Evaluation [40] y Algebra as a Language , [41] son apologías de la notación APL.
La notación fue utilizada por Falkoff e Iverson para enseñar varios temas en varias universidades y en el IBM Systems Research Institute. [22] [39] En 1964, Iverson utilizó la notación en un curso de un semestre para estudiantes de último año en la Fox Lane High School , [34] [42] y más tarde en la Swarthmore High School . [4] Después de que APL estuvo disponible, su primera aplicación fue para enseñar métodos formales en diseño de sistemas en NASA Goddard . [39] [43] También se utilizó en la Hotchkiss School , [25] Lower Canada College , [44] Scotch Plains High School , [45] escuelas públicas de Atlanta, [46] [47] entre otras. En una escuela, los estudiantes se volvieron tan ansiosos que irrumpieron en la escuela después de horas para obtener más tiempo de computadora APL; [24] [48] en otra, los entusiastas de APL dirigieron a los novatos a BASIC para maximizar su propio tiempo APL. [25]
En 1969, Iverson y el grupo APL inauguraron el Centro Científico IBM de Filadelfia. [29] [39] En 1970 fue nombrado IBM Fellow . [49] Utilizó la financiación que le supuso ser IBM Fellow para traer a profesores visitantes de diversos campos, entre ellos Donald McIntyre de Pomona [28] y Jeff Shallit como estudiante de verano. [24] Durante un periodo de varios meses los visitantes empezarían a utilizar APL para exposiciones en sus propios campos, y la esperanza era que más tarde continuaran utilizando APL en sus instituciones de origen. [50] El trabajo de Iverson en esa época se centraba en varias disciplinas, incluidos proyectos de colaboración en teoría de circuitos, genética, geología y cálculo. [51] [52] [53] [54] Cuando el PSC cerró en 1974, [29] [34] algunos del grupo se trasladaron a California, mientras que otros, incluido Iverson, permanecieron en el Este, para después volver a trasladarse a IBM Research. Recibió el Premio Turing en 1979. [1]
En la siguiente tabla se enumeran las publicaciones que Iverson escribió o coescribió mientras estuvo en IBM. Reflejan las dos líneas principales de su trabajo.
Educación
Procesamiento automático de datos [18]
Funciones elementales: un tratamiento algorítmico [42]
El uso de APL en la enseñanza [55]
Uso de la computadora para calcular [56]
Álgebra: un tratamiento algorítmico [57]
APL en exposición [58]
Introducción a APL para científicos e ingenieros [59]
Presentación de APL a los docentes [60]
Análisis elemental [61]
Estilo de programación en APL [62]
Diseño e implementación del lenguaje
Un lenguaje de programación [21]
Un lenguaje de programación [63]
Un lenguaje común para hardware, software y aplicaciones [64]
Notación de programación en el diseño de sistemas [65]
Iverson trabajó para desarrollar y extender APL en las líneas presentadas en Operadores y funciones . [73] [81] El trabajo del lenguaje ganó impulso en 1981 cuando Arthur Whitney e Iverson produjeron un modelo de APL escrito en APL [82] [83] al mismo tiempo que trabajaban en la base de datos OAG de IPSA . [3] [12] [84] (Iverson presentó a Arthur Whitney, hijo de Eoin Whitney, a APL cuando tenía 11 años [12] y en 1974 lo recomendó para un puesto de estudiante de verano en IPSA Calgary . [24] ) En el modelo, la sintaxis de APL estaba impulsada por una tabla de 11 por 5. Whitney también inventó el operador de rango en el proceso. [85] El diseño del lenguaje se simplificó y amplió aún más en Rationalized APL [86] en enero de 1983, en varias ediciones de A Dictionary of the APL Language entre 1984 y 1987, y en A Dictionary of APL [87] en septiembre de 1987. Dentro de IPSA, la frase "diccionario APL" comenzó a usarse para denotar el APL especificado por A Dictionary of APL , al que se hace referencia como "el diccionario". En el diccionario, la sintaxis de APL está controlada por una tabla de 9 por 6 y el proceso de análisis se describió de manera precisa y sucinta en la Tabla 2, y hay un primitivo (monádico ⊥, modelado en APL) para la formación de palabras ( análisis léxico ).
En los años 1970 y 1980, los principales proveedores de APL fueron IBM , STSC e IPSA , y los tres estuvieron activos en el desarrollo y la extensión del lenguaje. IBM tenía APL2, basado en el trabajo de Jim Brown . [88] [89] [90] El trabajo en APL2 procedió de manera intermitente durante 15 años, [29] con la codificación real comenzando en 1971 y APL2 estando disponible como un IUP (Programa de Usuario Instalado, una clasificación de productos de IBM) en 1982. STSC tenía un sistema APL experimental llamado NARS, diseñado e implementado por Bob Smith. [91] [92] NARS y APL2 diferían en aspectos fundamentales del APL de diccionario, [93] y diferían entre sí.
IP Sharp implementó las nuevas ideas de APL en etapas: números complejos, [94] matrices encerradas (en caja), operadores de coincidencia y composición en 1981, [95] el operador determinante en 1982, [96] y el operador de rango, enlace y las funciones de identidad izquierda y derecha en 1983. [97] Sin embargo, los dominios de los operadores todavía estaban restringidos a las funciones primitivas o subconjuntos de las mismas. En 1986, IPSA desarrolló SAX, [77] [98] SHARP APL/Unix, escrito en C y basado en una implementación de STSC . El lenguaje era el especificado en el diccionario sin restricciones en los dominios de los operadores. Una versión alfa de SAX estuvo disponible dentro de IP Sharp alrededor de diciembre de 1986 o principios de 1987.
En educación, Iverson desarrolló un minicurso SHARP APL [99] [100] que se utiliza para enseñar a los clientes de IPSA el uso de APL, y Matemáticas aplicadas para programadores [101] y Matemáticas y programación [102] que se utilizaron en cursos de informática en TH Twente .
Publicaciones de las que Iverson fue autor o coautor mientras estuvo en IP Sharp Associates :
Educación
El método inductivo de introducción de APL [99]
Un minicurso de SHARP APL [100]
Matemáticas Aplicadas para Programadores [101]
Matemáticas y programación [102]
Diseño e implementación del lenguaje
Operadores y matrices cerradas [103]
Definición directa [104]
Composición y recinto [95]
Un operador de definición de función [105]
Funciones de tipo determinante producidas por el operador punto [96]
Usos prácticos de un modelo de APL [82]
APL racionalizado [86]
Sintaxis y semántica de APL [83]
Extensiones lingüísticas de mayo de 1983 [97]
Un cálculo de operadores [106]
APL87 [107]
Un diccionario de APL [87]
Procesamiento del lenguaje natural: mecanismos sintácticos y semánticos [108]
Jsoftware (1990–2004)
Iverson se retiró de IP Sharp Associates en 1987. Se mantuvo ocupado mientras "no trabajaba". En cuanto al diseño de lenguajes, la actividad más significativa de este período fue la invención de "fork" en 1988. [111] Durante años, luchó por encontrar una forma de escribir f+g como en cálculo, desde los "operadores escalares" en 1978, [73] pasando por el operador "til" en 1982, [82] [86] los operadores de concatenación y reshape en 1984, [106] los operadores de unión e intersección en 1987, [87] "yoke" en 1988, [112] y finalmente forks en 1988. Forks se definen de la siguiente manera:
Además, (fgpqr) ←→ (fg (pqr)). Por lo tanto, para escribir f+g como en cálculo, se puede escribir f+g en APL. Iverson y Eugene McDonnell trabajaron en los detalles durante los largos viajes en avión a la conferencia APL88 en Sydney, Australia, y a Iverson se le ocurrió la idea inicial de despertarse de una siesta. [85] [113] [81] : §1.3, §3.8
Iverson presentó la justificación de su trabajo posterior a 1987 de la siguiente manera: [16]
Cuando me jubilé del empleo remunerado, volví a centrar mi atención en este asunto [el uso de APL para la enseñanza] y pronto concluí que la herramienta esencial necesaria era un dialecto de APL que:
• Está disponible como "shareware" y es lo suficientemente económico para que lo puedan adquirir tanto estudiantes como escuelas.
• Se puede imprimir en impresoras estándar.
• Funciona en una amplia variedad de computadoras.
• Proporciona la simplicidad y la generalidad de las últimas ideas sobre APL.
El resultado fue J , publicado por primera vez en [las Actas de la Conferencia APL 90 ]. [114]
Roger Hui describió el impulso final que hizo que J comenzara en el Apéndice A de Una implementación de J : [115]
Un fin de semana de verano de 1989, Arthur Whitney visitó a Ken Iverson en Kiln Farm y produjo, en una página y en una tarde, un fragmento de intérprete en la computadora AT&T 3B1 . Estudié este intérprete durante aproximadamente una semana por su organización y estilo de programación; y el domingo 27 de agosto de 1989, aproximadamente a las cuatro de la tarde, escribí la primera línea de código que se convirtió en la implementación descrita en este documento. El fragmento de una página del intérprete de Arthur es el siguiente: ...
Hui, un compañero de clase de Whitney en la Universidad de Alberta , había estudiado A Dictionary of the APL Language cuando estaba entre trabajos, [4] modeló el proceso de análisis sintáctico de al menos dos maneras diferentes, [85] e investigó los usos del diccionario APL en diversas aplicaciones. [116] Además, desde enero de 1987 hasta agosto de 1989 tuvo acceso a SAX, [77] y en la última parte de ese período lo utilizó a diario. [85]
J inicialmente tomó A Dictionary of APL [87] como especificación, y el intérprete J fue construido alrededor de la Tabla 2 del diccionario. Las estructuras de datos y programas de C fueron diseñadas de modo que la tabla de análisis en C correspondiera directamente a la tabla de análisis en el diccionario. [85] En retrospectiva, el artículo APL87 de Iverson APL87 , [107] en cinco páginas, prescribía todos los pasos esenciales para escribir un intérprete APL, en particular las secciones sobre formación de palabras y análisis. Arthur Whitney , además de la "cosa de una página", contribuyó al desarrollo de J al sugerir que los primitivos se orientaran en el eje principal, que el acuerdo (una generalización de la extensión escalar) debería ser prefijo en lugar de sufijo, [117] y que se definiera un ordenamiento de matriz total. [118]
Uno de los objetivos era implementar fork. Esto resultó ser bastante sencillo, mediante la inclusión de una fila adicional en la tabla de análisis. La elección de implementar forks fue fortuita y afortunada. Solo más tarde [119] [120] se comprendió que forks completaba las expresiones tácitas (expresiones de operador) en el siguiente sentido: cualquier oración que incluya uno o dos argumentos que no utilicen sus argumentos como operando, se puede escribir tácitamente con fork, compose, las funciones de identidad izquierda y derecha y funciones constantes.
Dos diferencias obvias entre J y otros dialectos de APL son: (a) su uso de términos de lenguajes naturales en lugar de términos de matemáticas o informática (la práctica comenzó con A Dictionary of APL ): sustantivo, verbo, adverbios, alfabeto, formación de palabras, oración, ... en lugar de matriz, función, operador, conjunto de caracteres, análisis léxico, expresión, ...; y (b) su uso de caracteres ASCII de 7 bits en lugar de símbolos especiales. Otras diferencias entre J y APL se describen en J para el programador de APL [121] y APL y J [122] .
El código fuente de J está disponible en Jsoftware bajo la Licencia Pública General GNU versión 3 (GPL3), o una alternativa comercial. [123]
Eric Iverson fundó Iverson Software Inc. en febrero de 1990 para ofrecer un producto mejorado de SHARP APL/PC. Rápidamente se hizo evidente que compartían intereses y objetivos y en mayo de 1990 Iverson y Hui se unieron a Iverson Software Inc.; más tarde se les unió Chris Burke. La empresa pronto pasó a llamarse J only. El nombre se cambió a Jsoftware Inc. en abril de 2000. [85]
Publicaciones de las que Iverson fue autor o coautor mientras estuvo en Iverson Software Inc. y Jsoftware Inc.:
^ abcde Iverson, Kenneth E. (agosto de 1980). "La notación como herramienta del pensamiento". Comunicaciones de la ACM . 23 (8): 444–465. doi : 10.1145/358896.358899 . Consultado el 8 de abril de 2016 .
^ abcde Hui, Roger , ed. (30 de septiembre de 2005). Citas y anécdotas de Ken Iverson . Consultado el 12 de febrero de 2019 .
^ abcdefghijk Iverson, Kenneth E.; McIntyre, Donald E. (2008). Kenneth E. Iverson (Autobiografía) . Consultado el 8 de abril de 2016 .
^ Iverson, Eric B. (21 de octubre de 2004). Dr. Kenneth E. Iverson (mensaje del J Forum). Archivado desde el original el 25 de enero de 2020. Consultado el 8 de abril de 2016 .
^ March, Herman W.; Wolff, Henry C. (1917). Cálculo. McGraw-Hill.
^ Iverson, Kenneth E. (1954). Soluciones mecánicas de ecuaciones diferenciales lineales: aplicaciones a un modelo económico dinámico (tesis doctoral). Universidad de Harvard . Consultado el 7 de abril de 2016 .
^ Hui, Roger (agosto de 2012). "MSLDE". Ensayo de Jwiki . Consultado el 22 de abril de 2016 .
^ Whitney, Arthur (agosto de 2006). «Recuerdos de Ken». Vector . 22 (3) . Consultado el 25 de abril de 2016 .
^ abc Cantrill, Bryan (febrero de 2009). "Una conversación con Arthur Whitney". ACM Queue . 7 (2) . Consultado el 7 de abril de 2016 .
^ ab Iverson, Kenneth E. (agosto de 1960). "La descripción de procesos secuenciales finitos". Simposio sobre teoría de la información . Royal Institution, Londres . Consultado el 9 de abril de 2016 .
^ Montalbano, Michael S. (octubre de 1982). A Personal History of APL . Consultado el 10 de abril de 2016 .
^ Iverson, Kenneth E. (junio de 1954). Jacobson, Arvid W. (ed.). "Instrucción e investigación para graduados". Actas de la Primera Conferencia sobre capacitación de personal para el campo de las máquinas informáticas . Universidad Estatal de Wayne . Consultado el 9 de abril de 2016 .
^ abc Iverson, Kenneth E. (diciembre de 1991). "Una visión personal de APL". IBM Systems Journal . 30 (4): 582–593. doi :10.1147/sj.304.0582 . Consultado el 9 de abril de 2016 .
^ Brooks, Frederick P. (agosto de 2006). «El lenguaje, la mente y el hombre». Vector . 22 (3): 72. Archivado desde el original el 17 de marzo de 2018 . Consultado el 16 de marzo de 2018 .
^ abc Falkoff, Adin D. ; Iverson, Kenneth E. (agosto de 1978). "La evolución de APL". Avisos SIGPLAN de ACM . 13 (8): 47–57. doi : 10.1145/960118.808372 . S2CID 6050177 . Consultado el 9 de abril de 2016 .
^ abc Iverson, Kenneth E. (14 de diciembre de 1983). Carta a JK Tuttle . Consultado el 16 de abril de 2016 .
^ abcd Iverson, Kenneth E. (1962). Un lenguaje de programación. John Wiley & Sons. ISBN978-0-471-43014-8. Recuperado el 9 de abril de 2016 .
^ abcde Falkoff, Adin D. ; Iverson, Kenneth E. (julio de 1973). "El diseño de APL". IBM Journal of Research and Development . 17 (4): 324–334. doi : 10.1147/rd.174.0324 . Consultado el 9 de abril de 2016 .
^ abc Falkoff, Adin D. ; Iverson, Kenneth E.; Sussenguth, Edward H. (1964). "Una descripción formal de System/360" (PDF) . IBM Systems Journal . 3 (3): 198–261. doi :10.1147/sj.32.0198. Archivado desde el original (PDF) el 13 de agosto de 2006.
^ abcde Hui, Roger , ed. (septiembre de 2010). Citas y anécdotas de APL. Archivado desde el original el 5 de julio de 2018 . Consultado el 9 de abril de 2016 .
^ abcd Breed, Larry (agosto de 2006). «Cómo llegamos a APL\1130». Vector . 22 (3). Archivado desde el original el 18 de marzo de 2016 . Consultado el 13 de abril de 2016 .
^ Jenkins, Michael A. (junio de 1970). "La solución de sistemas lineales de ecuaciones y problemas de mínimos cuadrados lineales en APL". Informe técnico número 320-2989 . IBM Corp.
^ Jenkins, Michael A. (10 de febrero de 1972). "Domino: una función primitiva de APL para la matriz inversa: su implementación y aplicaciones". APL Quote Quad . 3 (4).Reimpreso en Jenkins, MA (1972). "DOMINO: Una función primitiva APL para inversión de matrices – – Su implementación y aplicaciones". ACM SIGPLAN Notices . 7 (4): 29–40. doi : 10.1145/1115910.1115911 .
^ ab McIntyre, Donald B. (agosto de 2006). "Un tributo a Ken Iverson". Vector . 22 (3) . Consultado el 25 de abril de 2016 .
^ abcde Falkoff, Adin D. (diciembre de 1991). "La familia IBM de sistemas APL". IBM Systems Journal . 30 (4): 416–432. doi :10.1147/sj.304.0416.
^ ab Abrams, Philip S. (17 de agosto de 1966). "Un intérprete para la "notación Iverson"" (PDF) . Informe técnico: CS-TR-66-47 . Departamento de Ciencias de la Computación, Universidad de Stanford . Consultado el 17 de abril de 2016 .
^ Falkoff, Adin D. ; Iverson, Kenneth E. (16 de octubre de 1967). "The APL\360 Terminal System". Informe de investigación RC-1922 . IBM . Consultado el 9 de abril de 2016 .
^ Premio ACM Grace Murray Hopper (1973): Breed, Lathwell y Moore; consultado el 14 de abril de 2016.
^ Horvath, Robert W. (agosto de 1966). Introducción a la notación de Iverson . División de desarrollo de sistemas de IBM, Poughkeepsie, NY.
^ abc McDonnell, Eugene , ed. (1981). A Source Book in APL, Introducción. APL Press . Consultado el 19 de abril de 2016 .
^ Breed, Larry (septiembre de 1991). "La primera sesión terminal de APL". APL Quote Quad . 22 (1): 2–4. doi : 10.1145/138094.140933 . S2CID 43138444.
^ ab Falkoff, Adin D. ; Iverson, Kenneth E. (1968). Manual del usuario de APL\360 (PDF) . IBM . Consultado el 11 de abril de 2016 .
^ ab Hui, Roger (11 de octubre de 2014). Dieciséis aperitivos de la APL . Consultado el 12 de abril de 2016 .
^ Perlis, Alan J. (29 de marzo de 1978). "Almost Perfect Artifacts Improve only in Small Ways: APL is more French than English" (Los artefactos casi perfectos mejoran sólo en pequeñas formas: APL es más francés que inglés). Actas de la conferencia APL 78. Consultado el 12 de abril de 2016 .
^ abcd Falkoff, Adin D. (julio de 1969). "APL\360 History". Actas de la Conferencia de usuarios de APL en SUNY Binghamton . Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (1966). Convenciones que rigen el orden de evaluación (Apéndice A de Funciones elementales: un tratamiento algorítmico). Science Research Associates . Consultado el 16 de abril de 2016 .
^ Iverson, Kenneth E. (1972). Álgebra como lenguaje (Apéndice A de Álgebra: un tratamiento algorítmico). Addison-Wesley . Consultado el 16 de abril de 2016 .
^ ab Iverson, Kenneth E. (marzo de 1966). Funciones elementales: un tratamiento algorítmico . Science Research Associates.
^ McDonnell, Eugene (diciembre de 1979). "Los comienzos sociotécnicos de APL". APL Quote Quad . 10 (2): 13. doi : 10.1145/586148.586155 . S2CID 18025422 . Consultado el 24 de abril de 2016 .
^ Goldsmith, Leslie H. Hui, Roger (ed.). Citas y anécdotas de APL. Archivado desde el original el 5 de julio de 2018. Consultado el 13 de abril de 2016 .
^ McDonnell, Eugene (septiembre de 1980). "APL recreacional, Pyramigram". APL Quote Quad . 11 (1) . Consultado el 13 de abril de 2016 .
^ "APL en las escuelas públicas de Atlanta". Boletín SHARE*APL\360 (3). Octubre de 1969.
^ APL IV: Cuarta Conferencia Internacional APL. Junio de 1972. Consultado el 29 de abril de 2016 .
^ Biancuzzi, Federico; Warden, Shane (marzo de 2009). Masterminds of Programming. O'Reilly Media. Archivado desde el original el 5 de julio de 2018. Consultado el 13 de abril de 2016 .
^ abc «Iverson recibe el premio Harry Goode». APL Quote Quad . 6 (2). Junio de 1975 . Consultado el 8 de abril de 2016 .
^ Berry, Paul (agosto de 2006). "Programación expositiva". Vector . 22 (3) . Consultado el 25 de abril de 2015 .
^ Berry, Paul; Bartoli, G.; Dell'Aquila, C.; Spadavecchia, V. (marzo de 1973). "APL y Insight". TR No. CRB 002/513-3502 . IBM Corp.
^ Spence, Robert (marzo de 1973). Teoría de circuitos resistivos . IBM.
^ Orth, Donald L. (1976). Cálculo en una nueva clave . APL Press. ISBN978-0-917326-05-9.
^ Berry, Paul; Thorstensen, John (1973). "Mapa estelar". TR No. 02.665 . IBM Corp.
^ Iverson, Kenneth E. (1969). El uso de APL en la enseñanza. IBM Pub. No. G320-0996 . Consultado el 15 de abril de 2016 .
^ Berry, Paul; Falkoff, Adin D .; Iverson, Kenneth E. (24 de agosto de 1970). "Uso de la computadora para calcular: un enfoque directo pero desatendido para la enseñanza de las matemáticas". Conferencia mundial sobre educación informática de la IFIP .
^ Iverson, Kenneth E. (1972). Álgebra: un tratamiento algorítmico . Addison-Wesley.
^ Iverson, Kenneth E. (enero de 1972). "APL in Exposition" (PDF) . Informe técnico número RC 320-3010 . IBM Philadelphia Scientific Center . Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (marzo de 1973). "Introducción a APL para científicos e ingenieros". Número de informe técnico RC 320-3019 . IBM Philadelphia Scientific Center . Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (julio de 1972). "Introducing APL to Teachers". Número de informe técnico RC 320-3014 . IBM Philadelphia Scientific Center . Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (1976). Análisis elemental . APL Press.
^ Iverson, Kenneth E. (septiembre de 1978). "Estilo de programación en APL". Actas de una reunión de usuarios de APL . IP Sharp Associates . Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (mayo de 1962). "Un lenguaje de programación". Actas de la Conferencia conjunta de informática de primavera de la AFIPS, San Francisco . Consultado el 13 de abril de 2016 .
^ Iverson, Kenneth E. (diciembre de 1962). "Un lenguaje común para hardware, software y aplicaciones". Actas de la Conferencia conjunta de informática de otoño de la AFIPS, Filadelfia . Consultado el 13 de abril de 2016 .
^ Iverson, Kenneth E. (junio de 1963). "Programming Notation in System Design". IBM Systems Journal . 2 (2): 117–128. doi :10.1147/sj.22.0117 . Consultado el 13 de abril de 2016 .
^ Iverson, Kenneth E. (febrero de 1964). "Formalismo en lenguajes de programación". Comunicaciones de la ACM . 7 (2): 80–88. doi : 10.1145/363921.363933 . S2CID 14145756 . Consultado el 13 de abril de 2016 .
^ Iverson, Kenneth E. (octubre de 1964). "Un método de especificación de sintaxis". Comunicaciones de la ACM . 7 (10): 588–589. doi : 10.1145/364888.364969 . S2CID 194665.
^ Falkoff, Adin D. ; Iverson, Kenneth E. (mayo de 1973). "Comunicación en sistemas APL". Informe técnico 320-3022 . Centro científico IBM de Filadelfia.
^ Iverson, Kenneth E. (1973). APL como notación analítica . IBM Philadelphia Scientific Center.
^ Falkoff, Adin D .; Iverson, Kenneth E. (1973). "Manual del usuario de APLSV" (PDF) . Sh20-1460 . IBM Philadelphia Scientific Center . Consultado el 16 de abril de 2016 .
^ Falkoff, Adin D. ; Iverson, Kenneth E. (marzo de 1975). Lenguaje APL (formulario n.º GC26-3847) (PDF) . IBM.
^ Iverson, Kenneth E. (septiembre de 1976). "Dos operadores combinatorios". Actas de la octava conferencia internacional sobre APL - APL '76 . págs. 233–237. doi : 10.1145/800114.803681 . S2CID 20408139.
^ abc Iverson, Kenneth E. (26 de abril de 1978). "Operadores y funciones". Informe de investigación n.° RC7091 . IBM . Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (junio de 1979). "El papel de los operadores en APL". Actas de la conferencia internacional sobre APL: Parte 1 - APL '79. págs. 128–133. doi : 10.1145/800136.804450 . Consultado el 10 de abril de 2016 .
^ Iverson, Kenneth E. (junio de 1979). "El operador derivado". Actas de la conferencia internacional sobre APL: Parte 1 - APL '79 . págs. 347–354. doi : 10.1145/800136.804486 .
^ Iverson, Kenneth E. (octubre de 1979). "Operadores". ACM Transactions on Programming Languages and Systems . 1 (2): 161–176. doi : 10.1145/357073.357074 .
^ Hui, Roger (agosto de 2010). "On Average". Vector . 22 (4) . Consultado el 12 de abril de 2016 .
^ IPSA (enero de 1980). "Dr. Kenneth E. Iverson" (PDF) . The IP Sharp Newsletter . 8 (1) . Consultado el 8 de agosto de 2019 .
^ Hui, Roger , ed. (14 de mayo de 2009). Citas y anécdotas de Eugene McDonnell . Consultado el 5 de abril de 2016 .
^ ab Hui, Roger; Kromberg, Morten (junio de 2020). "APL desde 1978". Actas de la ACM sobre lenguajes de programación . 4 (HOPL): 1–108. doi : 10.1145/3386319 . S2CID 218517570.
^ abc Iverson, Kenneth E. y Arthur T. Whitney (septiembre de 1982). "Usos prácticos de un modelo de APL". Actas de la conferencia APL 82. Consultado el 10 de abril de 2016 .
^ ab Iverson, Kenneth E. (marzo de 1983). "Sintaxis y semántica de APL". Actas de la conferencia APL 83. Consultado el 10 de abril de 2016 .
^ Una celebración de Kenneth Iverson. Computer History Museum . 30 de noviembre de 2004. Consultado el 17 de abril de 2016 .
^ abcdef Hui, Roger (noviembre de 2014). Remembering Ken Iverson . Consultado el 10 de abril de 2016 .
^ abc Iverson, Kenneth E. (6 de enero de 1983). Rationalized APL. IP Sharp Associates . Consultado el 10 de abril de 2016 .
^ abcd Iverson, Kenneth E. (septiembre de 1987). "A Dictionary of APL". APL Quote Quad . 18 (1): 5–40. doi : 10.1145/36983.36984 . S2CID 18301178 . Consultado el 10 de abril de 2016 .
^ Brown, James A. (1971). Una generalización de APL (tesis doctoral). Departamento de Ciencias Informáticas y de la Información, Universidad de Syracuse.
^ Brown, James A. (1984). "Los principios de APL2". Informe técnico 03.247 . Laboratorio IBM Santa Teresa.
^ Brown, James A. (1988). "Programación APL2: Referencia del lenguaje". Sh20-9227 . IBM Corporation.
^ Smith, Bob (1981). "Matrices anidadas, operadores y funciones". Actas de la conferencia internacional sobre APL - APL '81 . págs. 286–290. doi : 10.1145/800142.805376 . ISBN0-89791-035-4.
^ Cheney, Carl M. (1981). Sistema de matriz anidada APL*PLUS (PDF) . STSC, Inc. Consultado el 19 de abril de 2016 .
^ Orth, Donald L. (diciembre de 1981). "Una comparación de las implementaciones IPSA y STSC de operadores y matrices generales". APL Quote Quad . 12 (2): 11. doi : 10.1145/586656.586662 . S2CID 1642446 . Consultado el 13 de abril de 2016 .
^ McDonnell, Eugene (20 de junio de 1981). «Complex Numbers» (Números complejos). Nota técnica de SHARP APL . 40. Consultado el 11 de abril de 2016 .
^ ab Iverson, Kenneth E. (20 de junio de 1981). "Composición y cerramiento". Nota técnica de SHARP APL . 41 . Consultado el 11 de abril de 2016 .
^ ab Iverson, Kenneth E. (1 de abril de 1982). "Funciones de tipo determinante producidas por el operador de punto". Nota técnica de SHARP APL . 42 . Consultado el 11 de abril de 2016 .
^ ab Bernecky, Robert; Iverson, Kenneth E.; McDonnell, Eugene ; Metzger, Robert; Schueler, J. Henri (2 de mayo de 1983). "Extensiones lingüísticas de mayo de 1983". Nota técnica de SHARP APL . 45 . Consultado el 11 de abril de 2016 .
^ Tuttle, Joey K. (agosto de 2006). "¿Qué anda mal con mi programación?". Vector . 22 (3) . Consultado el 25 de abril de 2016 .
^ ab Iverson, Kenneth E. (6 de octubre de 1980). "El método inductivo de introducción de APL". Actas de la reunión de usuarios de APL de 1980. Consultado el 10 de abril de 2016 .
^ ab Iverson, Kenneth E. (enero de 1981). Un minicurso sobre SHARP APL . IP Sharp Associates .
^ ab Iverson, Kenneth E. (1984). Matemáticas aplicadas para programadores . IP Sharp Associates .
^ ab Iverson, Kenneth E. (julio de 1986). Matemáticas y programación . IP Sharp Associates .
^ Bernecky, Robert; Iverson, Kenneth E. (6 de octubre de 1980). "Operadores y conjuntos cerrados". Actas de la reunión de usuarios de APL de 1980. Consultado el 10 de abril de 2016 .
^ Iverson, Kenneth E. (octubre de 1980). "Definición directa". Nota técnica de SHARP APL . 36 .
^ Iverson, Kenneth E.; Wooster, Peter K. (septiembre de 1981). "Un operador de definición de función". APL Quote Quad . 12 : 142–145. doi : 10.1145/390007.805349 .
^ ab Iverson, Kenneth E.; Pesch, Roland H.; Schueler, J. Henri (junio de 1984). "Un cálculo de operador". Actas de la conferencia APL 84 . Consultado el 10 de abril de 2016 .
^ ab Iverson, Kenneth E. (mayo de 1987). "APL87" . Actas de la conferencia APL 87. Consultado el 10 de abril de 2016 .
^ Hagamen, WD; Berry, PC; Iverson, KE; Weber, JC (agosto de 1989). "Procesamiento de mecanismos sintácticos y semánticos del lenguaje natural". Actas de la conferencia sobre APL como herramienta de pensamiento, APL 1989, Nueva York, NY, EE. UU., 7-10 de agosto de 1989. APL Quote Quad . 19 (4): 184-189. doi :10.1145/75144.75170. ISBN0897913272. Número de identificación del sujeto 14004227.
^ Hui, Roger (3 de diciembre de 2014). "¿Cuál es la expresión APL favorita de Ken Iverson?". Blog de Dyalog . Consultado el 12 de abril de 2016 .
^ Referencia del lenguaje APL de Dyalog (versión 14.0 o posterior) (PDF) . Dyalog Limited. 2014 . Consultado el 16 de abril de 2016 .
^ ab Iverson, Kenneth E. y Eugene McDonnell (agosto de 1989). "Phrasal Forms" . Actas de la conferencia APL 89. Consultado el 10 de abril de 2016 .
^ ab Iverson, Kenneth E. (septiembre de 1988). "Un comentario sobre el desarrollo de APL". APL Quote Quad . 19 (1): 3–8. doi : 10.1145/379279.379330 . S2CID 18392328 . Consultado el 13 de abril de 2016 .
^ Hodgkinson, Rob (19 de octubre de 2017). Publicación en el foro de programación J.
^ ab Hui, Roger ; Iverson, Kenneth E.; McDonnell, Eugene ; Whitney, Arthur (julio de 1990). "APL/?". Actas de la conferencia APL 90 . Consultado el 10 de abril de 2016 .
^ Hui, Roger (27 de enero de 1992). Una implementación de J (PDF) . Iverson Software Inc . Consultado el 10 de abril de 2016 .
^ Hui, Roger (mayo de 1987). «Algunos usos de { y }». Actas de la conferencia APL 87. Consultado el 15 de abril de 2016 .
^ Hui, Roger (junio de 1995). «Rank and Uniformity». Actas de la conferencia APL 95. Consultado el 15 de abril de 2016 .
^ Hui, Roger (27 de enero de 2006). "El TAO de J". Ensayo de J Wiki . Consultado el 24 de mayo de 2016 .
^ ab Hui, Roger ; Iverson, Kenneth E.; McDonnell, Eugene (agosto de 1991). "Tacit definition". Actas de la conferencia internacional sobre APL '91 - APL '91 . págs. 202–211. doi : 10.1145/114054.114077 . ISBN0897914414. S2CID 8940369 . Consultado el 10 de abril de 2016 .
^ Cherlin, Edward (agosto de 1991). "Funciones puras en APL y J". Actas de la conferencia internacional sobre APL '91 - APL '91 . págs. 88–93. doi : 10.1145/114054.114065 . ISBN0897914414. Número de identificación del sujeto 25802202.
^ Burke, Chris; Hui, Roger (septiembre de 1996). "J para el programador APL". APL Quote Quad . 27 (1): 11–17. doi : 10.1145/1151395.1151400 . S2CID 9203778 . Consultado el 14 de abril de 2016 .
^ Burke, Chris (2 de marzo de 2005). APL y J (PDF) . Consultado el 16 de abril de 2016 .
^ J Fuente. Jsoftware, Inc. Recuperado el 15 de abril de 2016 .
^ Iverson, Kenneth E. (1991). Matemáticas tangibles . Iverson Software Inc.
^ Iverson, Kenneth E. (1991). Programación en J. Iverson Software Inc.
^ Iverson, Kenneth E. (1991). Aritmética (PDF) . Iverson Software Inc. Consultado el 10 de abril de 2016 .
^ Iverson, Kenneth E. (1993). Cálculo (PDF) . Iverson Software Inc. Consultado el 10 de abril de 2016 .
^ Iverson, Kenneth E. (1995). Concrete Math Companion (PDF) . Iverson Software Inc. Consultado el 10 de abril de 2016 .
^ Iverson, Kenneth E. (1996). Exploring Math (PDF) . Iverson Software Inc . Consultado el 10 de abril de 2016 .
^ Burke, Chris; Hui, Roger ; Iverson, Kenneth E.; McDonnell, Eugene ; McIntyre, Donald B. (1996). J Phrases. Iverson Software Inc. Recuperado el 10 de abril de 2016 .
^ Burke, Chris; Hui, Roger ; Iverson, Eric; Iverson, Kenneth E.; Iverson, Kirk (1998). Ganadores del concurso ICFP '98 . Consultado el 15 de abril de 2016 .
^ Iverson, Kenneth E. (1999). Math for the Layman [Matemática para el profano]. JSoftware Inc. Recuperado el 10 de abril de 2016 .
^ Hui, Roger ; Iverson, Kenneth E. (1991). "J Introduction and Dictionary". Jsoftware Inc. Consultado el 9 de abril de 2016 .
^ Iverson, Kenneth E. (marzo de 1994). "Revisiting Rough Spots". APL Quote Quad . 24 (3): 13–16. doi : 10.1145/181983.181986 . S2CID 2140469 . Consultado el 13 de abril de 2016 .
^ Iverson, Kenneth E. (1996). Computadoras y notación matemática. Iverson Software Inc. Recuperado el 10 de abril de 2016 .
^ Hui, Roger ; Iverson, Kenneth E. (enero de 1998). "Raíces matemáticas de J". Actas de la conferencia sobre Compartir conocimiento, compartir éxito - APL '97 . págs. 21–30. doi : 10.1145/316689.316698 . S2CID 2317632.
^ Iverson, Kenneth E. (agosto de 2006). "APL en el nuevo milenio". Vector . 22 (3) . Consultado el 25 de abril de 2016 .
^ Computer Pioneer Award (ganador del premio). IEEE Computer Society . 1982. Consultado el 8 de abril de 2016 .
^ Drummond, B. (11 de junio de 1998). Citación del Dr. Kenneth Iverson. Universidad de York . Consultado el 8 de abril de 2016 .
^ Kovtunovich, Vasily N.; Ustjuzhanin, Petr Ya. (2015). "Nueva especie de polillas de plumas del género Agdistis Hübner, 1825 (Lepidoptera: Pterophoridae: Agdistinae) del sur de África". Invertebrados africanos . 56 (1): 137–139. Bibcode :2015AfrIn..56..137K. doi : 10.5733/afin.056.0110 . La especie recibe su nombre de Kenneth Eugene Iverson (1920–2004), un científico informático canadiense que desarrolló los lenguajes de programación APL y J.
Enlaces externos
Wikiquote tiene citas relacionadas con Kenneth E. Iverson .
Una celebración de la vida de Kenneth Eugene Iverson
Elogios recopilados
Concurso de programación del examen Iverson en la Universidad de Alberta para estudiantes de secundaria
Citas y anécdotas de Ken Iverson que ilustran cómo era Iverson como persona, cómo era trabajar con él, el entorno en el que estudió y trabajó, su visión de la vida, su sentido del humor, etc.
Citas y anécdotas de APL: bocetos de Iverson, sus colegas y sus descendientes intelectuales