Los programas Unix más notables

El autor del artículo, Douglas McIlroy, es un matemático, ingeniero y programador estadounidense. Es más conocido por desarrollar el pipeline en el sistema operativo Unix, los principios de programación orientada a componentes y varias utilidades originales: spell, diff, sort, join, speak, tr.

A veces te encuentras con programas realmente sorprendentes. Recordando, hice una lista de verdaderas joyas de Unix a lo largo de los años. Principalmente, son programas bastante raros y no tan necesarios. Pero lo que los destaca es su originalidad. No puedo ni imaginar que se me pudiera haber ocurrido alguna de estas ideas.

¿Qué programas te han sorprendido a ti también?

PDP-7 Unix

Para empezar, el mismo sistema PDP-7 Unix. Su simplicidad y potencia me hicieron cambiar de un potente mainframe a una pequeña máquina. Aquí está la quintessencia del sistema de archivos jerárquico, un shell separado y la gestión de procesos a nivel de usuario, algo que Multics en mainframes no logró implementar después de cientos de años-hombre de desarrollo. Las desventajas de Unix (como la estructura de registros en el sistema de archivos) eran tan educativas y liberadoras como sus innovaciones (como la redirección de entrada-salida en el shell).

dc

La biblioteca matemática para la calculadora de escritorio de precisión variable de Robert Morris utilizó análisis de errores inverso para determinar la precisión necesaria en cada paso para alcanzar la precisión deseada por el usuario. En la conferencia de NATO sobre ingeniería de software de 1968, en mi presentación sobre componentes de software, propuse procedimientos de referencia que pueden dar resultados de cualquier precisión deseada, pero no sabía cómo implementarlos en la práctica. dc sigue siendo el único programa que conozco capaz de hacer eso.

typo

Typo organiza las palabras en un texto según su similitud con el resto del texto. Errores tipográficos como 'hte' tienden a aparecer al final de la lista. Robert Morris se jactó de que el programa funcionaría igualmente bien para cualquier idioma. Aunque typo no ayuda a encontrar errores fonéticos, se convirtió en un verdadero hallazgo para todos los que teclean y ha sido extremadamente útil antes de que apareciera una verificación ortográfica de diccionario mucho menos interesante pero más precisa.

El error tipográfico está tan inesperadamente organizado por dentro como por fuera. El algoritmo de medición de similitudes se basa en la frecuencia de aparición de trigramas, que se consideran en un array de 26×26×26. En la pequeña memoria apenas había suficiente espacio para contadores de un byte, por lo que se implementó un esquema de compresión de números grandes en contadores pequeños. Para evitar desbordamientos, los contadores se actualizaban de forma probabilística, manteniendo la estimación del logaritmo del valor del contador.

eqn

Con la llegada de los fototipos, se hizo posible, aunque terriblemente tedioso, expresar la notación matemática clásica. Lorinda Cherry decidió desarrollar un lenguaje de descripción de más alto nivel, y pronto se unió a ella Brian Kernighan. Su brillante táctica fue expresar la tradición oral por escrito, por lo que eqn resultó sorprendentemente fácil de aprender. Siendo el primer preprocesador de su tipo para el lenguaje de descripción de expresiones matemáticas, eqn desde entonces ha mejorado muy poco.

struct

Brenda Baker inició el desarrollo de su conversor de Fortan a Ratfor a pesar del consejo de su jefe: yo. Pensé que esto podría resultar en un reordenamiento especial del texto fuente. Estaría libre de números de operadores, pero no sería más legible que un código Fortran correctamente estructurado. Brenda demostró que me equivocaba. Descubrió que cada programa Fortran tiene una forma estructurada canónica. Los programadores preferían la forma canónica en lugar de aquello que originalmente habían escrito.

pascal

El diagnóstico de sintaxis en el compilador creado por el grupo de Sue Graham en Berkeley fue el más útil de todos los que he visto jamás, y se realizó de forma automática. Cuando ocurría un error de sintaxis, el compilador ofrecía insertar un lexema para continuar con el análisis sintáctico. No hubo intentos de explicar qué estaba mal. Con este compilador aprendí Pascal en una noche, sin tener ningún manual a mano.

parts

El módulo escondido dentro del paquete WWB (Writer’s Workbench) parts Lorinda Cherry define las partes del discurso para las palabras en un texto en inglés basado solo en un pequeño diccionario, reglas de ortografía y gramática. A partir de esta anotación, el programa WWB genera métricas estilométricas del texto, como la prevalencia de adjetivos, oraciones subordinadas y oraciones complejas. Cuando Lorinda fue entrevistada en el programa Today de NBC y habló sobre el innovador chequeo de gramática en los textos de WWB, fue la primera mención de Unix en televisión.

egrep

Al Aho esperaba que su analizador de expresiones regulares determinista superara al clásico analizador no determinista de Ken. Desafortunadamente, el último ya estaba terminando su recorrido por las complejas expresiones regulares cuando egrep construyó su autómata determinista. Para entonces ganar esta carrera, Al Aho eludió la maldición del crecimiento exponencial de la tabla de estados del autómata, inventando una forma de construir sobre la marcha solo las entradas de la tabla que realmente se visitan durante el reconocimiento.

crabs

El encantador meta-programa de Luca Cardelli para el sistema de ventanas Blit generaba cangrejos virtuales que vagaban por el espacio vacío de la pantalla, mordiendo cada vez más los bordes de las ventanas activas.

Algunas reflexiones comunes

Aunque no es visible desde el exterior, la teoría y los algoritmos jugaron un papel crucial en la creación de la mayoría de estos programas: typo, dc, struct, pascal, egrep. De hecho, lo que más sorprende es precisamente el uso inusual de la teoría.

Los autores originales de casi la mitad de la lista — pascal, struct, parts, eqn — eran mujeres, lo que supera significativamente la proporción demográfica de mujeres en el campo de la informática.

Douglas McIlroy
Marzo, 2020


Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster