BASIC largement distribue

Histoire du Langage Basic

Ordinateur

Microsoft s'est fait un nom en portant des implémentations de BASIC sur une variété de microprocesseurs, du 8080 au Z80 en passant par le 6502 et, éventuellement, le 8086. Mais tout le monde n'était pas satisfait des efforts de Microsoft.

Lorsque le Tandy TRS-80 était prêt à être expédié, Microsoft n'avait pas terminé sa version de BASIC pour la machine. Ainsi, l'ordinateur était livré avec 4K Level I BASIC, une version retravaillée de Palo Alto Tiny BASIC qui avait également une interface de cassette, un support clavier et vidéo, et des routines à virgule flottante, ainsi que plusieurs variables de chaîne et une variable de tableau.

Les messages d'erreur prenaient la forme Tiny BASIC traditionnelle : HOW?, WHAT?, et SORRY.

Microsoft a terminé le BASIC de niveau II pour le modèle I et le modèle III de TRS-80 dans un court laps de temps; Gates a décrit le BASIC de niveau II comme un "hybride" entre le BASIC étendu d'Altair et le BASIC 8K, bien qu'avec de nouvelles structures de contrôle, telles que IF/THEN/ELSE, disponibles, en plus d'une plus grande flexibilité de travail avec des nombres comme des nombres entiers et des variables à double précision .

Plus important encore, le niveau II BASIC offrait aux utilisateurs l'accès à des commandes graphiques telles que SET (utilisée pour dessiner de petits blocs graphiques à des coordonnées x-j désignées), RESET (utilisée pour effacer de petits blocs graphiques) et POINT (utilisée pour tester si un bloc particulier à certains ensembles de coordonnées est allumé, particulièrement utile pour les détections de collision de jeux vidéo).

De plus, une nouvelle fonction pour tester la saisie au clavier en temps réel, appelée INKEY$, a été ajoutée; l'ancienne instruction INPUT, qui mettait l'interpréteur en pause pour attendre l'entrée de l'utilisateur, était insuffisante.

Comme l'expliquent David A. Kater et Susan J. Thomas, dans leur livre TRS-80 Graphics for the Model I and the Model 7/7 (1982):

L'instruction INPUT n'est pas adéquate pour le contrôle clavier en temps réel du mouvement. Chaque fois qu'une INPUT est exécutée, l'affichage de l'écran se fige en prévision de l'intervention de l'opérateur. La fonction INKEY$ interroge continuellement le clavier.

Lorsqu'une touche est enfoncée, la valeur ASCII de cette touche est stockée dans le tampon INKEY$. Étant donné que ce tampon ne fait qu'un octet de long, chaque fois qu'une nouvelle touche est enfoncée, sa valeur ASCII remplace celle précédemment stockée dans le tampon. Nous pouvons donc tester le tampon pour la valeur ASCII de la dernière touche à appuyer.

Tandy a également publié une version améliorée de l'interpréteur pour le TRS-80 appelée Disk BASIC. En réfléchissant au modèle II, qui a été conçu comme un micro-ordinateur professionnel plutôt que domestique, Gates est devenu nostalgique dans une interview de 1981 avec 80-U.S. Journal , le magazine exclusif TRS-80 qui a ensuite changé son nom en Basic Computing.

"Eh bien, l'idée était que les gens du modèle II étaient probablement plus des hommes d'affaires. Le temps libre pour être curieux et vraiment apprendre à ce sujet n'entrait pas autant en compte."

Ainsi, PEEK et POKE n'étaient pas inclus dans le modèle II BASIC.

Lorsque Tandy a expédié le très attendu ordinateur couleur TRS-80 - l'écran affichait un curseur qui clignotait continuellement de différentes couleurs - l'instruction SET a été mise à niveau pour Microsoft Color BASIC : il y avait des paramètres non seulement pour les coordonnées x et y, mais aussi pour la couleur du bloc graphique particulier.

De plus, des graphiques haute résolution, bien qu'avec une palette de moins de couleurs disponibles, étaient possibles, et une fonction simple, appelée JOYSTK, lisait la position des joysticks disponibles. Color BASIC a été pressé dans 8K de ROM; suivant la route Extended Color BASIC, comme beaucoup l'ont fait, et 16K de mémoire étaient nécessaires (16K, avec Extended Color BASIC, étaient livrés en standard avec le CoCo 2).

Dans le même 80-U.S. Interview de journal citée ci-dessus, Gates a vanté les fonctionnalités de Color BASIC, mentionnant des graphiques 3D et un algorithme PAINT de mélange de couleurs. Mais il a terminé l'interview sur une note inquiétante. "La seule véritable menace pour lui [l'ordinateur couleur] est que Commodore puisse se ressaisir. Il est possible qu'il soit un concurrent sérieux", dit-il. "Je suis intéressé de voir si Commodore va jusqu'au bout."

Le Commodore BASIC est passé par un certain nombre d'itérations, mais - même sans lien avec Microsoft - elles se sont toutes rapprochées de l'original de Microsoft. Lorsque Commodore BASIC version 2 a démarré à partir de la ROM, le haut de l'écran affichait la RAM système (généralement 64 Ko) et le nombre d'octets libres pour travailler avec BASIC (généralement 38 911), ainsi que l'invite READY de l'interpréteur.

La commande LOAD chargerait un programme BASIC de la mémoire permanente (par exemple, une cassette ou un disque) vers la RAM, tandis que la commande SAVE sauvegarderait un programme de la RAM vers la mémoire permanente.

Les mots clés BASIC réservés étaient d'une pièce avec Altair BASIC, avec des jetons spéciaux comme le point d'interrogation (?) Abrégeant l'instruction PRINT - qui était alors assez standard sur les BASIC - et des caractères décalés remplaçant d'autres commandes et instructions (par exemple, GOTO abrégé par shift-G) - ce qui n'était pas courant, bien que le BASIC de niveau I sur le TRS-80 permette également aux mots-clés abrégés d'économiser de la mémoire puisque les instructions n'étaient pas tokenisées (c'est-à-dire que les mots-clés étaient stockés dans leur intégralité).

Pour économiser de la mémoire, les programmeurs Commodore BASIC avaient tendance à ne pas mettre d'espaces dans leurs lignes de code, car les espaces vides n'étaient pas supprimés par le tokenizer et coûtaient ainsi aux programmes des octets précieux supplémentaires.

L'éditeur de texte Commodore BASIC était très flexible, avec des touches fléchées permettant à un utilisateur d'éditer des lignes de programme directement à l'écran plutôt que d'avoir à recourir aux commandes EDIT ; le clavier chicklet comportait même une touche RUN/STOP conviviale.

Comme Applesoft BASIC, cependant, les commandes graphiques étaient le fléau des efforts BASIC de Microsoft; la version 2.0 de Commodore BASIC, la dernière itération de Microsoft pour le PET, n'avait pas de fonctionnalités graphiques ou sonores.

Pour évoquer des visuels, les programmeurs BASIC ont dû faire preuve de créativité, réalisant que CHR$, une fonction d'affichage des caractères ASCII, pouvait être utilisée à des fins artistiques. (Des programmeurs plus intrépides ont eu recours à des routines de langage machine.) Le célèbre programme en une ligne qui génère un labyrinthe infini esthétiquement agréable construit de caractères PETSCII :

10 PRINT CHR$(205.5+RND(1));:GOTO 10

a inspiré un livre d'essais multi-auteurs 2012 MIT Press proposant des méditations sur la production graphique, la musique, la danse, le hasard et les ordinateurs en général - avec la bouchée d'un titre 10 PRINT CHR$(205J+RND(1)); : GOTO 10, qui sera ci-après simplement appelé 10 PRINT, témoigne de la créativité de la communauté Commodore face aux limites.

Finalement, des fonctionnalités multimédias seraient ajoutées au Commodore BASIC, et elles valaient la peine d'attendre. L'une de ces fonctionnalités était la manipulation de sprites, gracieuseté de PEEK et POKE, bien que vous deviez être particulièrement prudent lorsque vous poussiez un PET : un soi-disant Killer POKE était possible, qui était une commande d'une ligne qui pouvait potentiellement endommager le matériel, le moniteur CRT ; et un Killer POKE sur le Commodore 64 pourrait endommager le lecteur de disquette externe.

Ces Killer POKE étaient similaires au tourne-disque de Gbdel, Escher, Bach de Hofstadter : lorsque le phonographe lit un certain enregistrement, les vibrations de fréquence du disque provoquent la rupture de la machine.

Les autres fonctionnalités comprenaient l'accès au joystick et les options sonores, faisant du Commodore BASIC l'un des ordinateurs les plus conviviaux à programmer. Commodore a même réussi à optimiser la fonctionnalité de l'instruction GOTO, soit en recherchant à partir de l'emplacement actuel de l'exécution du programme, soit à partir de la toute première ligne du programme vers le bas, selon le processus le plus rapide.

Au début des années 1980, les utilisateurs intéressés par l'ajout d'une gamme de fonctionnalités BASIC, en particulier les commandes d'écran, pouvaient opter pour le BASIC de Simons, distribué sous forme de cartouche ROM.

Au fil de l'histoire, le BASIC de Simons a été écrit par un jeune britannique précoce de seize ans qui avait reçu un Commodore en cadeau à son treizième anniversaire, puis a procédé à "[sonder] d'autres Basics et leurs extensions et a choisi parmi leurs caractéristiques ", selon un article de Creative Computing écrit à l'époque. Indépendamment des origines du BASIC de Simons, le succès de la machine pour laquelle il a été conçu était incontestable : le Commodore 64 est devenu l'ordinateur 8 bits le plus vendu de tous les temps.

Chez Apple, l'insatisfaction à l'égard d'Applesoft a conduit à des efforts pour améliorer le logiciel ou le remplacer complètement. Des programmes utilitaires tels que le compilateur Beagle, qui cré un fichier binaire exécutable d'un programme Applesoft, et MD-BASIC, qui a optimisé les programmes Applesoft, leur permettant de fonctionner sur n'importe quel Apple II ainsi que l'ajout d'instructions conditionnelles et de structures en boucle, ont amélioré la fin -expérience utilisateur.

Il y avait AC / BASIC, une version compilée du langage BASIC, sans numéros de ligne, qui était également disponible pour le Commodore Amiga. Micol Advanced BASIC a également compilé des programmes sans nécessiter de numéros de ligne.

Et puis il y avait Texas Instruments (TI). TI n'a pas commencé comme une entreprise informatique. À l'époque de la Seconde Guerre mondiale, Texas Instruments, alors appelé Geophysical Service, avait son doigt proverbial dans de nombreuses tartes.

TI était impliqué dans l'exploration sismique et l'électronique, cherchant à s'étendre aux semi-conducteurs et aux transistors. Au milieu des années 1950, TI a produit la première radio à transistors sur les talons des physiciens des Bell Labs Walter Brattain et John Bardeen qui, sous la direction libre de William Shockley, ont fait leur percée dans les semi-conducteurs.

Bien que le transistor, fait de matériaux semi-conducteurs tels que le germanium, soit un saut monumental par rapport au tube à vide, il y avait encore beaucoup à faire, a réalisé Jack Kilby de TI. Alors Kilby a construit la première puce, une collection de nombreux transistors tous cousus au hasard. (Robert Noyce, plus tard cofondateur d'Intel, a produit une version de circuit imprimé plus propre chez Fairchild Semiconductor six mois après Kilby.)

Les supérieurs de TI ont ensuite recruté Kilby pour concevoir une calculatrice portable légère et bon marché qui pourrait correspondre à ce que le lourd et coûteux des calculatrices enchainées à des bureaux pourraient faire l'affaire.

De ces efforts sont nées les SR-10 et SR-50, des calculatrices portables avec des écrans LED rouges qui portaient néanmoins (avec un soupçon de skeuomorphisme) le nom de règles à calcul (SR). Élargissant encore plus sa division électronique, TI a produit des montres, des horloges numériques, des jouets et des ordinateurs.

En 1979, pour rivaliser avec la Trinity, Texas Instruments, a publié le TI-99/4, le premier ordinateur domestique 16 bits disponible sur le marché américain. Le microprocesseur était un TI TMS9900 construit à l'origine pour la série de mini-ordinateurs TI-990.

Microsoft a été contracté pour construire la base pour le TI-99/4, et les deux programmeurs principaux, Bob Wallace et Bob Greenberg, ont eu du mal à le faire, en partie parce que Ti a seulement fourni à Microsoft un interpréteur TI pour écrire le langage, making TI BASIC, un membre de cette rare race de langues à double interprétation.

En racontant ce que pourrait être un Bill Gates de la tâche, Paul Allen a noté que Bob Greenberg, qui avait également assisté à Harvard, a travaillé plus de quatre-vingts heures. La réaction de Gates était de simplement demander à Greenberg: "Sur quoi travaillez-vous demain?"

Ti Basic était une implémentation limitée mais facile à utiliser du langage, dépourvue de nombreuses caractéristiques des versions de la Trinité de 1977. Plus tard, une cartouche ROM de base étendue TI - créée par Ti - a approuvé Ti Basic. Les sous-programmes, les sprites et la synthèse de la parole à l'aide de la commande Call Say (le matériel de synthétiseur de discours TI, utilisé dans des jouets tels que le discours et le sort, était nécessaire), distingue TI étendu de la base du pack.

Au début des années 1990, les activités informatiques de Texas Instrument étaient fondatrices, mais leur division de calculatrice graphique était en plein essor. Des calculatrices telles que les TI-81 et -82, et plus tard TI, ont utilisé une implémentation interprétée de Basic.

Cette version était limitée de portée mais pouvait (et peut toujours) gérer un certain nombre d'instructions de contrôle standard, telles que les instructions et les boucles FOR, ainsi que différents types de données, y compris les listes et les matrices, qui peuvent être manipulées dans la calculatrice en dehors de l'environnement de programmation.

Ti-Basic, l'une des deux seules options de programmation sur les calculatrices graphiques TI (l'autre option est le langage d'assemblage), est exempte de numéros de ligne; au lieu de cela, chaque déclaration commence par un deux point (:).

Étant donné que les calculatrices graphiques de TI sont encore couramment utilisées dans les écoles et sont requises pour de nombreux tests standardisés, de nombreux élèves ont d'abord (et peut-être seulement) une exposition au langage de programmation de base gracieuseté de Ti-Basic.

Atari a également fabriqué des ordinateurs personnels. Nolan Bush-Nell et Al Acorn ont fondé Atari en 1972, vraiment pour une seule raison: développer et libérer la version Arcade de Pong, un jeu avec une directive simple - "Évitez le ballon manquant pour un score élevé" - c'était pratiquement une copie carbone de l'un des jeux de tennis de Magnavox Odyssey, que Bushnell avait vus à une démo Magnavox des mois plus tôt.

Bien qu'il ait été poursuivi pour violation du droit d'auteur, Atari s'épanoui au cours de la décennie, libérant des tubes d'arcade tels que Breakout (l'employé d'Atari Steve Jobs a été affecté à l'optimiser, seulement pour transformer secrètement la tâche à son ami et employé de HP Steve Wozniak) et aux astéroïdes.

En 1979, stimulé par le succès de la Trinité, Atari, comme Texas Instruments, a publié des ordinateurs domestiques en deux versions: l'Atari 400 et l'Atari 800. La conception de l'ordinateur a commencé deux ans auparavant avec la sortie de l'Atari 2600 Home console de jeux.

Semblable au 2600, les 400 et 800 seraient des machines à 8 bits qui s'étendaient sur un microprocesseur MOS 6502. (Fait intéressant, également en 1979, Atari a publié une cartouche ROM non-Gaming pour le 2600 appelé Basic Programming, un interpréteur de base très limité et un didacticiel dynamique.

Lors de l'exécution, l'écran a été divisé en six régions horizontales: programme, permettant moins d'une douzaine de lignes et entrée via des contrôleurs de clavier spéciaux; pile, affichant des résultats intermédiaires; variables, montrant les valeurs des variables; sortie, affichant la sortie; graphiques, montrant deux polygones; et l'état, un affichage en temps réel de la mémoire disponible.

Certaines mathématiques sophistiquées dans la langue était possible, comme l'arithmétique modulaire. Le manuel de programmation de base de l'ATARI contenait du code source pour plusieurs exemples de programmes, dont deux versions de Pong. Inspiré par la programmation de base, plusieurs années plus tard, Nintendo a publié son propre dialecte de base basée sur la cartouche appelée Family Basic pour l'Ordinateur de la famille japonaise, ou FAMICOM. Nintendo a vendu une version de la Famicom aux États-Unis, l'appelant le NES.)

Au début, Atari a acheté Microsoft 8K Basic pour le 6502, ayant l'intention d'étendre le code et de l'optimiser pour travailler avec le matériel propriétaire tout en étant en mesure de l'intégrer à la cartouche ROM 8K (Basic ne serait pas intégré à ROM pour l'Atari 400 et 800, contrairement aux ordinateurs atari plus tard tels que les 600xl et 800xl).

Aux difficultés du code source (sans papiers par Microsoft) et à court de temps avant le dévoilement à venir de son nouvel ordinateur domestique au Consumer Electronics Show, Atari s'est tourné vers Shepardson Microsystems, qui avait construit le DOS d'Apple (et a également été initialement sous contrat pour écrire Basic pour L'Apple II dans le cadre d'un produit appelé Apple Lanny, qui a été annulé), pour terminer le travail. Shepardson a jeté tout le code de Microsoft et a construit un interpréteur de base pour Atari à partir de zéro. En conséquence, Atari Basic a été achevé à temps pour le CES.

Atari Basic utilise un tokenizer, gère les chaînes différâmes de Microsoft Basic (c'est-à-dire qu'il n'y a pas de tableaux de chaîne, car les caractères qui composent une chaîne sont le tableau), offre une prise en charge des graphiques, du son et des périphériques comme les joysticks, et, unique pour le Le temps, utilise un éditeur de ligne qui vérifie dynamiquement les erreurs de syntaxe, ligne par ligne, après chaque appui sur la touche Entrée (avant d'exécuter le programme).

De nombreuses différences entre Microsoft Basic et Atari Basic peuvent être réprimées à leur inspiration: tandis que Microsoft a construit son altair d'origine de Basic hors de l'interpréteur de base de Digital Equipment Corporation, Shepardson a utilisé l'activité de Data General (DG) comme source.

Bien que Bill Gates soit familier avec l'interpréteur de DEC grâce à des milliers d'heures de pratique de temps de chronométrage connecté à l'adolescence, les développeurs de Shepardson, Kathleen O'Brien et son mari, Paul Laughton, étaient plus à l'aise avec la DG à cause d'un système de partage de temps que Laughton avait travaillé sur IBM.

Mais Business Basic, qui a fonctionné sur les mini-ordinateurs Nova de DG, n'était pas capable d'opérations à virgule flottante. Ainsi, O'Brien a été responsable de la rédaction des routines à virgule flottante d'Atari Basic, tandis que son mari a géré le reste de la mise en œuvre. "Je ne savais pas comment faire des points flottants et Bill Wilkinson a expliqué ce qui était nécessaire pour des points flottants, puis je l'ai mis en œuvre", se souvient-elle des décennies plus tard.

Quant à Bill Wilkinson, il a reçu le crédit dans les commentaires du code source de base d'Atari, mais il n'aimait finalement pas comment les chaînes ont été gérées: "Je n'aime pas la façon dont la longueur de la chaîne est définie dans Atari Basic", il m'a dit.

Continuant, Dans Cromemco Basic, la longueur de la chaîne est définie par le nombre de caractères, jusqu'aux et y compris les derniers caractères nuls. Donc, si vous attachez NULLS à l'extrémité d'une chaîne, il raccourcira automatiquement. De toute évidence, c'est une meilleure définition que la version Atari. Les entrées auraient dû être en mesure de gérer une surveillance des citations.

O'Brien a apprécié le travail, mais le calendrier de l'équipe était exténuant; Ils ont enregistré plusieurs jours de quatorze heures consécutives, se déplaçant après minuit, simplement pour respecter les délais infernaux (typiques de l'industrie informatique à l'époque). Mais parce que Laughton avait précédemment travaillé sur le défunt projet Apple Lanny pour l'Apple II, il avait les bases de la base et était prête pour les particularités de la mise en œuvre d'Atari.

En 1981, Optimi2ed Systems Software (OSS), cofondé par Bill Wilkinson, a acheté plusieurs produits à Shepardson, dont Atari Basic. OSS a immédiatement pu travailler en améliorant la mise en œuvre de base, libérant Basic A +, une extension d'Atari Basic, peu de temps après.

Le formatage du texte et la communication du code d'erreur ont été améliorés, mais la documentation d'impression incluse a été largement considérée comme inadéquate. Basic A + a été suivi de deux implémentations OSS supplémentaires: Basic XL et Basic XE, tous deux offrant plus d'améliorations à travers le reste de la vie de la lignée d'ordinateur à domicile Atari.

Le programmeur allemand Frank Ostrowski a publié un interpréteur-compositeur appelé Turbo-Basic XL, qui a abordé un certain nombre de problèmes avec d'autres implémentations de base d'Atari - notamment leur vitesse, car Atari Basic était notoirement lente.

À cette époque, l'auteur David Ahl a écrit un court programme "Benchmark simple "pour l'informatique créative qui a été utilisé pour tester diverses implémentations de Basic; lors de l'exécution, son programme de onze lignes n'imprimerait que deux nombres à virgule flottante, mais ces deux nombres étaient le résultat d'un ensemble de calculs impliquant des boucles imbriquées (c'est-à-dire des boucles dans des boucles), des racines carrées, des valeurs absolues, des puissances et génération de nombres aléatoires.

Alors que les implémentations de Microsoft Basic ont généralement utilisé une architecture de pile à tokenisée pour gérer de telles situations, les boucles de base de l'atari traitées de manière sous-optimale et ne fonctionnaient pas beaucoup plus rapidement pour résoudre les routines mathématiques prenant ainsi un certain temps pour exécuter un programme de benchmark "simple" AHFS à l'achèvement.

Quoi qu'il en soit, Atari a finalement réussi à adapter une version de Microsoft Basic dans une cartouche 8K, après l'avoir publiée en forme de disque (beaucoup plus lente), apportant l'histoire de Basic sur le cercle complet de l'Atari.

 

 

 

 

 

 

 

Recherche personnalisée