TECO - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

TECO est un éditeur de texte développé au MIT dans les années 60, puis modifié par « un peu tout le monde ». Son nom signifiait à l'origine « [paper] Tape Editor and COrrector » (« Éditeur et Correcteur de Bande [papier] »), mais devint plus tard « Text Editor and COrrector » (« Éditeur et Correcteur de Texte »). Compte-tenu de tous les dialectes qu'il comprend, TECO a probablement été l'un des éditeurs les plus prolifiques, avant l'arrivée de vi et surtout de Emacs, dont TECO est l'ancêtre direct (Emacs signifiait à l'origine «  Editing MACroS running on TECO », « éditeur de macros fonctionnant sur TECO »).

Description et influence

TECO, remarquable pour sa syntaxe complexe, peut être considéré comme un langage de programmation interprété générique dédié à la manipulation de texte. Pratiquement chaque caractère est une commande, des séquences composées d'un ou de deux caractères remplacent les mots-clefs habituellement utilisés dans d'autres programmes d'édition de texte. De ce fait, toute chaîne de caractère peut être considérée comme une séquence de commandes TECO, bien qu'elle ne soit pas forcément utile à quelque chose. Un grand jeu consistait à deviner de tête les commandes TECO auxquelles correspondaient les prénoms des utilisateurs.

L'Emacs initial de Richard Stallman était implémenté en langage TECO. Toutefois, les versions suivantes, Emacs pour Multics puis GNU Emacs, furent implémentées en Lisp et Emacs Lisp. TECO acquit sa célébrité à la suite de son implémentation sur un PDP-6 de DEC, réalisée par le MIT pour le projet MAC en 1964. Cette implémentation affichait en permanence le texte édité sur un écran à tube cathodique, et permettait une édition en ligne interactive (ce qui n'était pourtant ni sa vocation, ni le mode dans lequel il était prévu pour fonctionner). Les versions suivantes de TECO étaient capables de piloter le mode plein écran de différents terminaux vidéo DEC RS232.

TECO était disponible pour plusieurs systèmes d'exploitation et ordinateurs, notamment le PDP-1, ITS sur le PDP-6 et le PDP-10, ainsi que TOPS-10 et TOPS-20 sur le PDP-10.

Un descendant de la version DEC distribuée pour le PDP-10 est toujours disponible sur Internet, ainsi que plusieurs implémentations partielles pour l'environnement MS-DOS/Windows.

Une version de TECO était fournie avec tous les systèmes d'exploitation DEC. La version disponible sur RT11 était capable de piloter l'afficheur graphique GT40, tandis que la version pour RSTS/E était tout bonnement implémentée comme un « environnement d'exécution » (RunTime System) multi-utilisateur et pouvait servir de système d'exploitation pour l'utilisateur. Il n'était même plus nécessaire de quitter TECO ! HP, ayant racheté Compaq/DEC, fournit toujours TECO avec VMS.

Exemple de code TECO

Code Explication
ER fichier $ Ouvrir un fichier en lecture
[ q ... ] q Empiler ... dépiler dans le registre Q (qui peut contenir des nombres, du texte ou du code)
< code > Itérer le code. Il existe des instructions équivalentes aux next, break, continue...

Histoire

TECO a été développé à l'origine au MIT vers 1963 par Daniel L. Murphy, afin de l'utiliser sur deux ordinateurs PDP-1 appartenant à deux départements différents, tout deux abrités dans le même Bâtiment 26. Sur ces machines, le processus normal de développement impose l'utilisation d'un Friden Flexowriter pour préparer le code source hors-ligne, sur une bande continue de papier perforé. Les programmeurs des gros Mainframes IBM avait coutume de perforer leur code source sur des cartes perforées, en utilisant des perforatrices qui écrivaient des caractères matriciels lisibles par les humains en haut de chaque carte en même temps qu'elles la perforaient avec le langage machine. Ainsi, les programmeurs IBM pouvaient lire, insérer, effacer ou déplacer des lignes de code en manipulant directement les cartes. La bande perforée continue n'offrait pas un tel confort, et nécessité fut mère de l'édition en ligne.

Un des tout premiers éditeurs pour PDP-1 fut (officiellement !) nommé Expensive Typewriter (« Machine à écrire coûteuse »). Écrit par Stephen D. Piner, il s'agissait du plus rudimentaire des éditeurs ligne par ligne que l'on puisse imaginer, ne disposant pas même de la fonctionnalité « rechercher/remplacer ». Son nom a été choisi comme clin d'œil ironique à un précédent éditeur, plutôt lourd, appelé Colossal Typewriter (« Machine à écrire colossale »). Même à cette époque, l'édition en ligne permettait de gagner du temps dans le cycle de débogage. Un autre programme dans la même veine, Expensive Desk Calculator, fut écrit par les hackers du PDP-1.

L'objectif initialement fixé pour TECO était d'utiliser plus efficacement le PDP-1. Comme envisagé dans le manuel, plutôt que d'effectuer l'édition de façon « coûteuse » en restant devant une console, l'opérateur pouvait examiner le texte fautif et préparer une « bande corrective », décrivant les opérations d'édition à effectuer sur le texte. Il lui suffisait ensuite de donner les bandes contenant les sources et la correction au PDP-1, via le lecteur de bande haute-vitesse (200 caractères par seconde). En exécutant TECO, la bande corrigée était alors immédiatement perforée avec la perforatrice rapide (60 caractères par seconde). Il restait alors juste à charger et à exécuter l'assembleur, sans que du temps soit perdu pour l'édition en ligne.

Les opérations de recherches sophistiquées (pour cette époque) de TECO ont été motivées par le fait que les bandes produites hors ligne par la Flexowriter ne disposaient par de numéros de ligne. Par conséquent, l'emplacement des éditions devaient être précisées par le contexte plutôt que par un numéro de ligne. Les différentes structures de contrôle de TECO (boucles et conditions, faisant de TECO un langage turing-complet) furent introduites afin de fournir des capacités de description suffisantes à la bande corrective. La syntaxe concise minimisait le nombre de touches nécessaires pour préparer la bande corrective.

La bande corrective était en réalité un programme, qui nécessitait un débogage comme n'importe quel autre programme. Les pièges de la plus simple des opérations globales de rechercher/remplacer devinrent évidents. En pratique, l'édition avec TECO était effectuée en ligne, comme elle était faite avec Expensive Typewriter (bien que TECO soit certainement un éditeur bien plus complet en termes de fonctionnalités, rendant l'édition nettement plus efficace). La version initiale du PDP-1 n'avait pas d'afficheur vidéo. La seule façon d'observer l'état du texte durant le processus d'édition était d'entrer des commandes permettant d'imprimer le texte (ou une sous-partie) sur la console télétype.

Page générée en 0.114 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise