La leyenda de Unix, que no nos debe nada, sigue arreglando el código AWK fundamental


Agrandar / Brian Kernighan hablando en un homenaje a su compañero de trabajo de Bell Labs y El lenguaje de programación C coautor Dennis Ritchie en 2012. El rostro de Ritchie en fichas de dominó está detrás de Kernighan.

Un profesor de Princeton, encontrando un poco de tiempo para sí mismo en la pausa académica del verano, envió un correo electrónico a un viejo amigo hace un par de meses. Brian Kernighan saludó, preguntó cómo iba su visita a EE. UU. y dejó cientos de líneas de código que podrían agregar soporte Unicode para AWK, la herramienta de análisis de texto que ayudó a crear para Unix en Bell Labs en 1977.

«He probado esto una cantidad considerable, pero claramente se necesitan más pruebas», escribió Kernighan en el correo electrónico, publicado a fines de mayo como una especie de pseudo-compromiso en el repositorio de onetrueawk por parte del mantenedor Arnold Robbins. «Una vez que descubra cómo… intentaré enviar una solicitud de extracción. Desearía haberlo entendido mejor, pero a pesar de su ayuda, todavía no tengo una comprensión adecuada, por lo que esto puede llevar un tiempo».

Kernighan es la «K» en AWK, un lenguaje de propósito especial para extraer y manipular lenguaje que fue clave para las funciones de canalización de Unix y la interoperabilidad entre sistemas. un trabajo awk (AWK es el lenguaje, awk el comando para invocarlo) es fundamental tanto para la especificación estándar de UNIX como para la certificación IEEE POSIX para la interoperabilidad. Hay innumerables variantes de awk—incluyendo derivaciones modernas con soporte para Unicode— pero «One True AWK», a veces conocido como nawkes una especie de versión canónica basada en el libro de Kernighan de 1985 El lenguaje de programación AWK y su posterior aporte.

Copias de <em>El lenguaje de programación C</em> en su entorno de librería del campus nativo, escrito por Brian Kernighan y Dennis Ritchie (RIP).» src=»https://cdn.arstechnica.net/wp-content/uploads/2009/03/c-programming.jpg» width=»300″ height=»169″/><figcaption class=

Copias de El lenguaje de programación C en su entorno nativo de librería del campus, escrito por Brian Kernighan y Dennis Ritchie (RIP).

Kernighan es también la «K» en «K&R C», el libro fundacional de 1978 El lenguaje de programación C coescribió con Dennis Ritchie que se queda con los programadores, mentalmente y en forma de papel con orejas de perro. Las raíces de C son mucho más profundas. Kernighan había estado enseñando C a los trabajadores de Bell Labs y convenció a su creador, Ritchie, de colaborar en un libro para difundir el conocimiento. Ese libro dio origen al «único y verdadero estilo de llaves», el interminable debate que lo acompaña y la estructura que sustenta todos los lenguajes de programación modernos.

Kernighan también nombró a Unix y demostró por primera vez el ejemplo de código «Hola, mundo». Habló con Richard Jensen de Ars Technica sobre la historia del 50 aniversario de Unix.

El repositorio onetrueawk, donde apareció Kernighan a fines de mayo, es un lugar relativamente tranquilo, con 21 colaboradores, 46 usuarios de GitHub observando y confirmaciones cada pocos meses. Como señaló The Register, la solución Unicode de Kernighan salió a la luz principalmente porque se mencionó en una entrevista con el profesor en el canal de YouTube Computerphile.

Brian Kernighan hablando con Computerphile sobre su trabajo, reciente e histórico.

«Siempre ha sido una vergüenza que AWK solo funcionara con ASCII, o tal vez entradas de 8 bits, pero en realidad no maneja Unicode en absoluto», dice Kernighan al profesor entrevistador David Brailsford. «Hace unos meses, pasé un tiempo trabajando con (risas) un programa increíblemente antiguo. Lo tengo en este punto en el que realmente manejará la entrada y salida UTF-8 para que puedas tener expresiones regulares que, ya sabes, seleccionan Caracteres japoneses, cosas así».

Kernighan, que ahora tiene 80 años, menciona casualmente en la entrevista que también ha parcheado algo «rápido y sucio» para permitir que AWK maneje archivos CSV.



Source link-49