Stephen Curtis Johnson (nacido en 1944) es un informático que trabajó en Bell Labs y AT&T durante casi 20 años. Es mejor conocido por Yacc , Lint , Spell y el compilador Portable C , que contribuyó a la difusión de Unix y C. [1] También ha contribuido a campos tan diversos como la música por ordenador , la psicometría y el diseño VLSI . [2]
La pasión de Johnson por la informática comenzó a los cinco años, cuando su abuelo lo llevó a trabajar en la Oficina de Estándares . La computadora que vio ("del tamaño de una casa pequeña") le causó una fuerte impresión y decidió que "quería trabajar con computadoras y nunca miró hacia atrás". [2]
No había clases de informática en la universidad, por lo que estudió matemáticas, en las que finalmente obtuvo un doctorado.
Johnson se unió a Bell Labs y AT&T en la década de 1960 y trabajó en herramientas Unix durante casi 20 años, junto a científicos informáticos como Jeffrey Ullman , Dennis Ritchie y Alfred Aho . Era mejor conocido por escribir Yacc , Lint y el compilador Portable C.
A mediados de la década de 1970, Johnson y su colega de Bell, Dennis Ritchie, fueron coautores de la primera adaptación Unix de AT&T . También "demostraron que Unix era portátil ", lo que Ritchie considera la chispa que llevó a que Unix se generalizara. [3] A mediados de la década de 1980, se desempeñó como jefe del Departamento de Idiomas UNIX ( Sistema UNIX V ). [2]
Johnson desarrolló Yacc a principios de los años 70 porque quería insertar un operador exclusivo u en el compilador de lenguaje B de Ritchie . [4] Alfred Aho, colega de Bell Labs, le sugirió que examinara el trabajo de Donald Knuth sobre el análisis de LR , que sirvió de base para Yacc. [2] En una entrevista de 2008, Johnson reflexionó que "la contribución que Yacc hizo a la difusión de Unix y C es de lo que estoy más orgulloso". [1] Lint se desarrolló en 1978 mientras Johnson estaba depurando la gramática Yacc que estaba escribiendo para C y luchando con problemas de portabilidad derivados de la migración de Unix a una máquina de 32 bits . [2] [5]
En 1986, Johnson se mudó a Silicon Valley , donde se unió a varias empresas emergentes , donde trabajó principalmente en compiladores , pero también en gráficos 2D y 3D, computación paralela masiva y sistemas integrados . Las nuevas empresas incluyeron Dana Computer, Inc. , [6] Melismatic Software y Transmeta , que fabricaban microprocesadores de bajo consumo compatibles con Intel . [2]
Johnson formó parte de la junta directiva de USENIX durante diez años, incluidos cuatro años como presidente a principios de los años noventa. Ahora se desempeña como representante de USENIX ante la Asociación de Investigación en Computación . [ cita necesaria ]
En 2002, se mudó a Boston para trabajar en MathWorks , [7] donde ayudó a mantener la interfaz del lenguaje de programación MATLAB , para el cual también creó un producto lint llamado M-Lint. Conoció al fundador de MathWorks, Cleve Moler , mientras trabajaba en una startup de Silicon Valley y desarrolló una "relación de consultoría a larga distancia" con él en la década de 1990. [2]
En 2018, Johnson vivía actualmente en Morgan Hill, California, ocupado trabajando en computadoras energéticamente eficientes para el aprendizaje automático en Wave Computing. [8]