% ---------------------------------------------------------- \chapter{Basic} \label{chap:Basic} \index{dosbox}\index{Basic} % ==================================================================== % https://www.theregister.com/2023/03/28/nostalgic_for_basic/ % https://retrofun.pl/2023/12/18/was-basic-that-horrible-or-better/ % ==================================================================== % \section{BASIC} \index{BASIC} C'est probablement un des premiers langages interactifs utilisable par le peuple et les gens. Déja, à ce titre, dénonce que ce langage demande un peu de curiosité, il a traversé soixante ans d'informatique, et il existe encore. Mais pour moi, le véritable intérèt est dans la multitude et la diversité des implémentations. Des minis catatoniques des années 60 aux micros-ordinateurs 8 bits, des dizaines de versions souvent incompatibles ont vues le jour. Un nom pour citer un exemple ? « Locomotive », ça ira ? Dans un premier temps, je vais les lister sommairement, et ensuite j'aurais une idée sur lesquels seront les plus funs à explorer, voire sauront trouver leur place dans un environnement dédié à la techno-futilité, concept très tendance dans certains milieux. Pour en savoir plus : \textsc{Dartmouth Time Sharing System} % ==================================================================== \section{Bywater} \index{bywater} \begin{quote} The Bywater BASIC Interpreter (bwBASIC) implements a large superset of the ANSI\index{ANSI} Standard for Minimal BASIC (X3.60-1978) and a significant subset of the ANSI Standard for Full BASIC (X3.113-1987) in C. \end{quote} \begin{verbatim} Bywater BASIC Interpreter/Shell, version 2.10 --------------------------------------------- Copyright (c) 1993, Ted A. Campbell for bwBASIC version 2.10, 11 October 1993 \end{verbatim} Le mode interactif me semble un peu rustre, mais utilisable à l'ancienne. Les messages d'erreur sont du genre \textsc{bdos error on a, select}. Je n'ai pas réussi à faire une sauvegarde du programme\footnote{J'ai renoncé au bout de 30 secondes}, ce qui limite son \textsl{utilisability}. Heureusement, on peut utiliser son éditeur de texte favori pour écrire le code source, et le lancer en mode batch. Voici un exemple rudimentaire mais canonique~: \lstinputlisting{code/Basic/bywater-1.bas} Ce qui nous donne à l'exécution~: \begin{verbatim} tth@redlady:~/Devel/TetaTricks$ bwbasic code/Basic/bywater-1.bas Bywater BASIC Interpreter/Shell, version 2.20 patch level 2 Copyright (c) 1993, Ted A. Campbell Copyright (c) 1995-1997, Jon B. Volkoff 2 4 3 9 4 16 5 25 tth@redlady:~/Devel/TetaTricks$ \end{verbatim} Première conclusion : affaire à suivre. % ==================================================================== \section{Yabasic} \index{yabasic} \begin{quote} Yabasic implements the most common and simple elements of the BASIC language; it comes with for-loops and goto with while-loops and procedures. yabasic does monochrome line graphics, and printing comes with no extra effort. yabasic runs under Unix and Windows; it is small (less than 200 KB) and free. \end{quote} Première innovation, les numéros de ligne ne sont plus obligatoires. \lstinputlisting{code/Basic/yabasic-1.bas} Et on peut faire des images qui clignotent :) \lstinputlisting{code/Basic/yabasic-2.bas} C'est vraiment dommage que l'on ne puisse mettre de gif89a\index{gif89a} dans un livre imprimé\dots % ==================================================================== \section{sdlBasic} \index{sdlBasic} http://www.sdlbasic.altervista.org/main/ % ==================================================================== \section{Brandy} \index{BBC} \index{Acorn} \begin{quote} Brandy is an interpreter for BBC BASIC V, the dialect of BASIC that Acorn Computers supplied with their ranges of desktop computers that use the ARM processor such as the Archimedes and Risc PC, and is still in use on these and compatibles. \end{quote} https://www.bbcbasic.co.uk/index.html % ==================================================================== \section{FreeBASIC} \index{FreeBASIC} \begin{quote} When used in its "QB" language mode, FreeBASIC provides a high level of support for programs written for QuickBASIC\index{QuickBASIC}. Many programs written for QuickBASIC will compile and run in this mode with no changes needed. \end{quote} https://www.freebasic.net/ % ==================================================================== \section{BASIC-256} \index{BASIC-256} \begin{quote} BASIC-256 is an easy to use version of BASIC designed to teach anybody (especially middle and high-school students) the basics of computer programming. It uses traditional control structures like gosub, for/next, and goto, which helps kids easily see how program flow-control works. It has a built-in graphics mode which lets them draw pictures on screen in minutes, and a set of detailed, easy-to-follow tutorials that introduce programming concepts through fun exercises. \end{quote} https://basic256.org/ % ==================================================================== \section{Benchmark} Nous avons une liste de Basics, il faut maintenant les comparer. Il y a le très classique (et très ancien) crible d'Eratostène, mais nous pouvons trouver mieux en fouillant dans les archives. % ==================================================================== \section{Et ailleurs ?} L'interpréteur \texttt{Qbasic} de Microsoft fonctionne très bien dans Dosbox~: à lire en page \pageref{Qbasic}. Son prédécesseur, \texttt{GWBASIC} marche très bien aussi. % ====================================================================