SNOBOL
L'année 1962 voit naître dans les couloirs des Bell Labs de Whippany, dans le New Jersey, un projet qui changera la façon de concevoir le traitement des chaînes de caractères. David J. Farber, Ralph E. Griswold et Ivan P. Polonsky travaillent au département Programming Research Studies, une unité qui déménagera bientôt à Holmdel. Sous la direction de Chester Lee, ce laboratoire explore des territoires variés allant de la théorie des automates, en passant par l'analyse de graphes ou les processeurs associatifs. Leur quotidien les confronte aux limites frustrantes du langage SCL, créé par Chester Lee lui-même. Les performances décevantes, l'espace de données restreint et une syntaxe tortueuse qui transforme les opérations simples en véritables parcours du combattant finissent par les convaincre qu'une alternative s'impose.
Après quelques tentatives avec COMIT, un langage dédié au traitement du langage naturel, le trio décide de prendre les choses en main. Le développement de ce qui deviendra SNOBOL commence dans le plus grand secret, à l'insu de Chester Lee qui peaufine justement une nouvelle version de son SCL. Cette situation quelque peu cocasse prend une tournure embarrassante en novembre 1962 quand les deux projets sortent au grand jour. Le département ne peut se permettre de financer deux développements concurrents, mais l'équipe de SNOBOL a une longueur d'avance considérable. Chester Lee, bon joueur, accepte finalement l'inévitable.
Le baptême du nouveau langage relève de l'improvisation. D'abord appelé SCL7, puis rebaptisé SEXI pour String EXpression Interpreter, il finit par hériter du nom SNOBOL avec un pseudo-acronyme délibérément fantaisiste : StriNg Oriented symBOlic Language. Cette plaisanterie embarrassera plus tard ses créateurs lors des présentations officielles, n'imaginant pas le retentissement que prendrait leur création.
Au début de 1963, la première version opérationnelle tourne sur IBM 7090. L'équipe fait le choix audacieux de l'interprétation pure, écartant d'emblée l'idée d'un compilateur traditionnel qu'elle juge inadapté aux spécificités voulues. Cette décision s'avère payante car trois semaines suffisent pour obtenir une version utilisable, un exploit dont l'équipe tire une fierté légitime et qui prouve qu'un langage de programmation peut voir le jour en peu de temps sans engloutir des budgets considérables.
SNOBOL bouleverse les habitudes en traitant les chaînes de caractères comme des entités unifiées plutôt que comme de simples tableaux. Cette approche s'accompagne de mécanismes sophistiqués de reconnaissance de motifs avec retour arrière, ouvrant des perspectives inédites pour l'analyse textuelle. Le succès rencontré aux Bell Labs pousse naturellement vers des versions enrichies. SNOBOL2 arrive dès 1964 avec des fonctions intégrées pour manipuler chaînes et nombres. SNOBOL3 suit en introduisant les fonctions définissables par l'utilisateur.
En 1966, SNOBOL4 révolutionne l'approche. Les motifs deviennent des objets de données à part entière, de multiples types apparaissent incluant tableaux et tables, la compilation dynamique fait son entrée avec les expressions non évaluées. L'utilisation d'un langage machine abstrait baptisé SIL garantit une portabilité remarquable.
La philosophie de distribution de SNOBOL tranche avec les pratiques de l'époque. Contrairement aux usages établis, le langage se répand gratuitement, sans restriction aucune, code source inclus. Cette générosité inhabituelle, accompagnée d'un support technique sans frais de la part des Bell Labs, facilite son adoption massive dans les universités et contribue largement à son rayonnement dans la communauté informatique.
Les applications dépassent les intentions initiales. Conçu pour manipuler des formules et analyser des graphes, SNOBOL trouve sa voie dans le formatage de documents et l'informatique appliquée aux sciences humaines. La compilation, le prototypage rapide et le traitement de données non numériques élargissent encore son champ d'action. Ses concepts de manipulation de chaînes et de reconnaissance de motifs influencent de nombreuses créations postérieures, tandis que des extensions SNOBOL enrichissent Fortran, PL/I et bien d'autres.
Partie d'un besoin pratique de quelques chercheurs, SNOBOL a fini par transformer l'approche du traitement des chaînes de caractères et influencer durablement l'évolution des langages de programmation. Elle démontre aussi que la liberté d'expérimentation et la générosité dans la diffusion, bien avant les logiciels libres, constituent des moteurs puissants pour l'innovation technologique.