% ---------------------------------------------------------- \chapter{Basic} \index{dosbox}\label{chap:Basic} % ==================================================================== % https://www.theregister.com/2023/03/28/nostalgic_for_basic/ % ==================================================================== \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 enore. 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 ? « 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. 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}. 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} Première conclusion : affaire à suivre. % ==================================================================== \section{Yabasic} \index{yabasic} 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{FreeBASIC} \index{FreeBASIC} https://www.freebasic.net/ \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} % ==================================================================== \section{BASIC-256} \index{BASIC-256} https://basic256.org/ \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} % ==================================================================== % ==================================================================== \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. % ------------------------------------------- % ====================================================================