La percée révolutionnaire

Histoire du Langage Basic

Ordinateur

Bill Gates n'était pas le seul adolescent exposé à la programmation à la fin des années 1960. Né en 1950 à San Jose, en Californie, Steve "Woz" Wozniak avait un intérêt constant pour l'électronique depuis qu'il s'en souvenait. Au moment où il était lycéen à Sunnyvale, son professeur d'électronique, M. McCollum, n'avait plus de choses à faire pour le jeune Wozniak. Il l'envoya donc dans une entreprise de Sunnyvale appelée Sylvania pour apprendre à programmer en FORTRAN, sur leur ordinateur IBM.

Mais c'est BASIC qui a piqué l'intérêt de Wozniak. Contrairement à FORTRAN, sa première exposition au BASIC a été très brève. Bien qu'il n'y ait pas d'ordinateurs dans son lycée, certains vendeurs de General Electric se sont arrêtés à l'école pour promouvoir leur service de temps partagé, trimballant un modem et un terminal Teletype pour le démontrer.

Dans les quelques jours où il y a eu accès, Wozniak et plusieurs autres étudiants très motivés (et axés sur les mathématiques) ont pilonné plusieurs programmes BASIC courts et simples. Mais Wozniak n'a rencontré BASIC qu'après avoir terminé ses études.

Le Silicon Valley Homebrew Computer Club se réunissait le mercredi soir dans un auditorium loué par l'Université de Stanford. L'ingénieur en informatique Lee Felsenstein a organisé et présidé les réunions souvent bruyantes; Wozniak était un participant régulier.

Wozniak avait été à la toute première réunion Homebrew, tenue dans le garage de Gordon French à Menlo Park ; la réunion a inspiré Wozniak à construire l'Apple I.

Bien qu'il soit très timide, ne levant généralement pas la main pour parler, Wozniak a laissé la qualité de son travail parlé : les amateurs intéressés se rassemblaient fréquemment autour de ses créations matérielles et regardaient avec admiration.

"Dans le Homebrew [Qomputer [C]lub, nous avions quelques livres qui circulaient que j'aime appeler des" bibles "", se souvient Wozniak. "

L'un était Computer UbI Dream Machine[s] de Ted Nelson, décrivant un futur monde d'hyperliens pour approfondir le sens des choses par écrit. Ses idées ressemblaient à de la science-fiction, mais nous savions tous qu'elles étaient réalisables, techniquement, et nous étions tous apôtres pour cette façon de voir l'avenir de l'informatique. L'autre "bible" était un livre 101 Games in BASIC."

101 Games in BASIC plus tard republié sous le nom de BASIC Computer Games, était une collection d'entrées de type BASIC, remplie d'illustrations de dessins animés, éditée par David Ahl, le fondateur du magazine Creative Computing, un périodique populaire publié de 1974 à 1985.

Type-ins est le code source des programmes, entièrement imprimés dans des livres ou des magazines, qu'un lecteur doit taper littéralement pour s'exécuter ; les entrées de type étaient généralement des listes de programmes écrites en langage BASIC.

Les programmes de BASIC Computer Games sont très génériques , n'utilisant pas de fonctionnalités dépendantes de la machine, et peuvent donc s'exécuter dans la plupart des dialectes BASIC avec peu de modifications.

Au début de sa carrière, après avoir obtenu plusieurs diplômes, dont un doctorat en psychologie de l'éducation, Ahl a été embauché par Digital Equipment Corporation (DEC) pour développer une série de produits éducatifs ; il deviendra également rédacteur en chef du bulletin éducatif de l'entreprise, EDU.

Au début des années 1970, Ahl avait développé un intérêt prédominant pour les jeux informatiques. Il a décidé de transférer plusieurs jeux écrits en FOCAL (Formulating On-Line Calculations in Algebraic Language), un langage interprété qui fonctionnait sur les ordinateurs PDP-8 de DEC, vers BASIC - et il a imprimé le code source BASIC dans sa newsletter EDU.

Ces saisies se sont avérées populaires; un de ces exemples était SPACWK (lire "Space War", son titre abrégé servant de nom de fichier au programme), qui devint plus tard Super Star Trek, un jeu d'aventure textuel complexe, de plusieurs centaines de lignes, impliquant des personnages de la série télévisée originale.

 SPACWK n'était pas un original Ahl, car il y avait déjà de nombreuses versions circulant sur une variété de plates-formes informatiques - le jeu a fait ses débuts dans le système de partage de temps de HP - mais ce jeu, et d'autres jeux de saisie comme celui-ci, ont entraîné un déluge de demandes de jeux BASIC supplémentaires.

Ainsi, Ahl a lancé un appel public pour plus de programmes à publier et a reçu de nombreuses soumissions de lecteurs, certaines provenant même d'élèves du secondaire. Il a ensuite écrit un certain nombre d'autres «livres de cuisine» BASIC - de tels livres imprimés ligne par ligne de recettes de code - répondant à la demande qui accompagnait l'explosion de popularité des micro-ordinateurs domestiques à la fin des années 1970. BASIC Computer Games est devenu le premier livre informatique à se vendre à plus d'un million d'exemplaires.

Lorsque Wozniak a découvert la « bible » d'Ahl pour la première fois, il avait la vingtaine et travaillait chez Hewlett-Packard (HP) pour concevoir des puces pour calculatrices. Mais Wozniak rêvait également de construire son propre ordinateur personnel.

Il a pensé qu'un micro-ordinateur devrait, au minimum, être capable de jouer à des jeux ; à partir de là, toutes les autres applications, telles que les affaires, le traitement de texte ou l'ingénierie, suivraient à coup sûr. "La clé des jeux était BASIC", a réalisé Wozniak.

Bill Gates avait déjà écrit des implémentations BASIC pour les premiers microprocesseurs Intel ; Wozniak a décidé de suivre cet exemple et d'écrire BASIC pour sa machine encore hypothétique, bien qu'il n'ait jamais suivi de cours sur la façon de coder des interpréteurs ou des compilateurs.

Il a récupéré un manuel BASIC dans les entrepôts HP et a commencé à réapprendre une langue qu'il n'avait pas utilisée depuis le lycée, le tout dans le but d'écrire un interpréteur BASIC pour le microprocesseur 8 bits peu coûteux MOS Technology 6502 qui alimenterait Wozniak.

Apple I naissant (il avait envisagé d'utiliser des puces telles que l'Intel 8080 et le Motorola 6800 mais a décidé de ne pas les utiliser en raison de coûts prohibitifs). Il y avait cependant des différences entre le DEC BASIC de la "bible" d'Ahl et le HP BASIC que Wozniak employait comme amorce, des différences qui ne lui étaient pas immédiatement apparentes.

Chez DEC, il y avait BASIC-PLUS, créé par la société pour leurs mini-ordinateurs PDP-11 et exécuté sur leur système d'exploitation en temps partagé RSTS / E, et il y avait aussi BASIC-Plus-2. Confusément, ces produits sont finalement devenus HP après l'achat de DEC par Compaq et la fusion de Compaq avec HP.

Chez HP, cependant, il y avait Time-Shared BASIC, qui implémentait une version de Dartmouth BASIC (y compris les opérations matricielles) sur HP. 2100 mini-ordinateurs ; il y avait aussi Rocky Mountain BASIC, créé dans le Colorado, un dialecte divergent du Dartmouth BASIC qui consolidait le 9845 BASIC de HP et ses modules d'extension en un seul package; et il y avait des dialectes BASIC supplémentaires flottant qui avaient été écrits pour les ordinateurs et les calculatrices de HP.

Fait intéressant, l'interface utilisateur du 9845 BASIC a divisé l'écran en une zone d'impression, une ligne d'invite, une ligne de saisie utilisateur et une ligne de message d'erreur/d'état du système.

L'avantage de cette configuration, qui était un précurseur des interfaces des BASIC structurés plus tard (tels que QBASIC et Turbo BASIC), impliquait plus que de simples informations supplémentaires à l'écran; l'interface permettait également aux utilisateurs de modifier les lignes de programme en cours d'exécution.

Ansgar Kiickes, qui gère un site complet consacré à l'ordinateur de bureau HP 9845, relie l'idée de partitionnement d'écran aux imprimantes en ligne :

Étant donné que le System 45 BASIC a succédé au 9830 BASIC, ... ce partitionnement d'écran remonte principalement à l'implémentation 9830 de BASIC, qui ne fournissait qu'une seule ligne d'affichage et d'entrée en termes de ligne d'affichage LED alphanumérique fixe, et utilisait une imprimante ligne montée sur le dessus pour effectuer la sortie PRINT.

Donc, ce que les concepteurs du système 9845 ont essentiellement fait, c'est d'ajouter une zone d'impression déroulante qui fonctionne de la même manière que l'imprimante ligne 9830 d'origine. Et en fait, toutes les instructions PRINT en BASIC s'impriment simplement dans cette zone, sans toucher aux autres lignes.

Pour simplifier les choses et gagner du temps - Wozniak courait contre la montre pour écrire le premier BASIC pour le 6502, le tout pour "acquérir une petite renommée dans le monde des loisirs, comme Bill Gates" et "avoir quelque chose pour lequel être reconnu" - il n'a pas de code pour les opérations à virgule flottante (c'est-à-dire l'arithmétique avec des décimales); au lieu de cela, toutes les opérations numériques dans le BASIC de Woz nécessitaient des entiers, ce qui ne nuirait pas au flux ou à la logique des jeux.

Il a créé une table de syntaxe qui serait stockée en mémoire, donnant à chaque symbole sur la table un code. "Chaque ligne a été comparée, lettre par lettre, à travers cette table de syntaxe pour voir s'il y avait une instruction BASIC valide", a expliqué Wozniak.

"Le mot PRINT peut être l'opérateur numéro 5 et FOR peut être l'opérateur numéro 13, etc. Un signe plus a aussi son code. Un symbole comme un signe moins peut avoir deux codes différents selon qu'il s'agit d'un préfixe (comme -5) ou d'un infixe (comme 9-6)."

Wozniak a fait la démonstration du tout premier 6502 BASIC fonctionnel, qu'il appelait parfois "Game BASIC", au Homebrew Computer Club, gagnant ainsi son minimum de renommée.

Alors qu'il développait l'Apple II, une version très améliorée de l'ordinateur domestique original connecté au clavier et à un moniteur, Wozniak - qui avait codé Breakout d'Atari, qui était en fait une version de nouvelle génération de Pong, en seulement un quelques jours sur les circuits imprimés d'arcade tout en minimisant le nombre de puces requises - a décidé de se tester à nouveau : pourrait-il utiliser un langage interprété comme BASIC, plutôt que des puces ROM, pour produire une version jouable de Breakout ?

Si BASIC offrait des commandes pour tracer des lignes et ajouter de la couleur, alors Wozniak savait qu'il pouvait le faire. Il a donc ajouté ces commandes à Integer BASIC, soi-disant en raison de son manque de capacité en virgule flottante.

L'écran graphique basse résolution de seize couleurs, rendu disponible en utilisant la commande GR (taper TEXTE reviendrait au mode texte seul), était divisé en quarante lignes par quarante colonnes de "briques" (ou points ou pixels), le long avec quatre lignes de texte disponibles en bas de l'écran (ou quarante-huit lignes sans texte).

La commande PLOT permet aux utilisateurs de dessiner des points. Par exemple, le programme suivant trace deux points bleu clair : sur la septième colonne et la troisième ligne de l'écran, puis en haut à gauche de l'écran :

200 GR
210 C0L0R=7
220 PLOT 7,3
230 PLOT 0,0

Remplacer la ligne 210 par

210 C0L0R=RND(16)

et une couleur aléatoire pour le traçage est utilisée à la place (notez que la fonction RND produit ici un entier pseudo-aléatoire entre 0 et 15 inclus).

Si des lignes horizontales et verticales devaient être tracées, les commandes HLIN et VLIN, respectivement, étaient à la hauteur de la tâche. Et la fonction SCRN renvoyait la couleur du point sur une ligne et une colonne particulières, ce qui pouvait faciliter les détections de collision dans un jeu vidéo comme Pong ou Breakout. Des modes graphiques haute résolution étaient également disponibles.

Étonnamment, en raison des coûts élevés associés à l'utilisation d'un assembleur à temps partagé, il a écrit Integer BASIC directement en langage machine, en assemblant le code à la main :

"Le BASIC, que nous avons livré avec les premiers Apple II, n'a jamais été assemblé, jamais. Il y avait une copie manuscrite, toutes écrites à la main, toutes assemblées à la main. Nous étions donc à une époque où nous ne pouvions pas nous permettre d'outils."


Il a appelé Steve Jobs - un jeune ami du lycée avec qui il s'est lié lors de l'assemblage et de la vente de "boîtes bleues" illégales, ce qui a facilité les appels interurbains gratuits ; c'était Jobs qui avait attiré Wozniak chez Atari afin de concevoir le Breakout original – pour lui montrer le fruit de son travail.

Alors que faire des changements à un jeu d'arcade programmé sur des circuits imprimés (par exemple, Breakout) prenait du temps, faire de tels changements dans le logiciel (par exemple, modifier les couleurs des blocs Breakoufs) était rapide. Cette malléabilité, ainsi que la facilité d'utilisation de BASIC, ont annoncé l'avenir de la programmation de jeux, ont réalisé Wozniak et Jobs.

Plus précisément, l'Apple II a été conçu, en partie, avec Breakout à l'esprit, plutôt que Breakout étant chaussé pour s'adapter aux spécifications de la nouvelle machine.

"De nombreuses fonctionnalités de l'Apple II ont été ajoutées parce que j'avais conçu Breakout pour Atari", se souvient Wozniak, avec des options telles que le traçage des couleurs et des lignes mises en œuvre en raison de leur utilitaire de programmation de jeux.

Il a même inclus un haut-parleur sur l'Apple II avec un canal audio rudimentaire à un bit "juste parce que vous aviez besoin de sons lorsqu'une balle frappe une brique", mais la fonction PEEK non intuitive devait être utilisée dans Integer BASIC afin d'accéder à l'audio. Wozniak a fièrement présenté la version Integer BASIC de Breakout au Homebrew Computer Club.

Steve Jobs, 19 ans, a réussi à obtenir des fonds pour la fabrication de l'Apple II en convainquant le capital-risqueur Arthur Rock de débourser l'argent nécessaire. Mais lorsque la machine est finalement sortie, les clients n'étaient pas satisfaits d'Integer BASIC, qui était intégré dans les 5K de ROM sur la carte mère de l'ordinateur (Integer BASIC était donc disponible en un tour de main, contrairement à BASIC pour l'Apple I, qui devait être chargé dans la RAM via une interface de cassette).

Les applications commerciales étaient particulièrement difficiles à écrire, car travailler avec de l'argent n'était pas facile sans accès aux décimales.

Microsoft avait auparavant proposé d'écrire du BASIC à virgule flottante pour le 6502, mais Steve Jobs s'y est opposé, se vantant qu'Apple pourrait améliorer Integer BASIC au cours d'un seul week-end si nécessaire; Cependant, entendant les nombreuses plaintes concernant Integer BASIC, Jobs s'est d'abord tourné vers Wozniak, qui était occupé à écrire une interface de disquette pour l'Apple II. Il l'a terminé à temps pour déployer une démo réussie à Las Vegas, puis s'est tourné vers la mise à niveau de BASIC.

Mais Wozniak n'a pas pu terminer les routines en virgule flottante à temps. Le capricieux Jobs a perdu patience et a donné à Microsoft le feu vert pour construire du BASIC à virgule flottante pour l'Apple II. Wozniak croit toujours que sa version aurait pu être meilleure que celle de Microsoft (le magazine CallA.P.P.L.E., à l'époque, publiait des trucs et astuces pratiques visant à améliorer Integer BASIC, y compris le piratage de routines à virgule flottante dans la ROM).

Applesoft BASIC, l'effort de Microsoft (leur produit est parfois aussi appelé FP BASIC), était plus lent et moins élégant - et au début n'était même pas chargé dans la ROM ; cela viendrait plus tard avec la sortie de l'Apple II Plus, mais il avait des opérations en virgule flottante ; même la fonction RND a été modifiée à partir de Integer BASIC, ne produisant plus que des décimales pseudo-aléatoires entre 0 et 1.

Wozniak n'aimait particulièrement pas les fonctions de chaîne d'Applesoft MID $ et LEFT $, qui renvoyaient toutes deux des sous-chaînes désignées, les considérant comme inartistiques et superflues. Mais les fonctions de chaîne d'Applesoft avaient un pédigrée remontant à l'implémentation originale de Microsoft de 4K BASIC sur l'Altair, qui à son tour présentait une similitude avec les interpréteurs BASIC de DEC.

Par exemple, dans le manuel de référence MITS Altair BASIC, l'exemple de programme 8K en mode direct suivant (rappelez-vous, entré sur un télétype, pas devant un écran de télévision ou un écran d'ordinateur) a été utilisé pour la démonstration LEFT $, qui a capturé les caractères d'un chaîne commençant par la plus à gauche, et LEN, qui relayait la longueur d'une chaîne.

Tout d'abord, l'utilisateur devait stocker la chaîne dans une variable de chaîne, indiquée par un signe dollar ($) comme dernier caractère du nom de la variable ; remarquez que le mot-clé LET requis par Kemeny et Kurtz était facultatif :

A$="ALTAIR 8800"

Ensuite, l'utilisateur a été invité à saisir cette ligne :

FOR N=1 TO LEN(A$):PRINT LEFT$(A$,N):NEXT N

Ce qui a donné le résultat suivant :

A
AL
ALT
ALTA
ALTAI
ALTAIR
ALTAIR
ALTAIR 8
ALTAIR 88
ALTAIR 880
ALTAIR 8800

Un exemple de programme similaire impliquant MID$ - qui saisissait les caractères du milieu d'une chaîne au lieu des points les plus à gauche ou à droite - était également proposé :

FOR N=1 TO LEN(A$):PRINT MID$(A$,N):NEXT N

La sortie variait considérablement par rapport à l'exemple de programme en mode direct précédent.

Indépendamment des objections de Woz, la persévérance de Microsoft avait porté ses fruits. Avec Applesoft BASIC remplaçant Integer BASIC pour de nombreuses années à venir, Microsoft s'était solidement implanté dans le monde Apple.

 

 

 

 

 

 

 

Recherche personnalisée