# QBasic

QBasic est un environnement de développement intégré (IDE) et un interprète pour une variante de dialectes de BASIC qui sont fondés sur QuickBasic. Le code entré dans l'IDE est compilé dans une représentation intermédiaire (IR), et cette IR est immédiatement interprétée à la demande dans l'IDE.
Comme QuickBASIC, mais à la différence des versions antérieures de Microsoft BASIC, QBasic est un langage de programmation structurée, supportant des constructions telles que les sous-programmes. Les numéros de ligne (en), un concept souvent associé à BASIC, sont supportés pour des raisons de compatibilité, mais ne sont pas considérés comme une bonne forme, ayant été remplacés par des étiquettes de ligne descriptives. QBasic a un support limité pour les types de données définis par l'utilisateur (structures), et plusieurs types primitifs utilisés pour contenir des chaînes de texte ou des données numériques$^,$. Il supporte diverses fonctions intégrées.
Pour son époque, QBasic offrait un IDE de pointe, y compris un débogueur avec des fonctions telles que l'évaluation d'expressions à la volée et la modification du code.

## Histoire

QBasic a été conçu comme un successeur de GW-BASIC. Il était basé sur le compilateur QuickBASIC 4.5, mais sans les éléments du compilateur et du linker de QuickBASIC. La version 1.0 a été livrée avec MS-DOS 5.0 et supérieur, ainsi qu'avec Windows 95, Windows NT 3.x et Windows NT 4.0. IBM a recompilé QBasic et l'a inclus dans IBM PC DOS (en) 5.x, ainsi qu'à partir d'OS/2 2.0. eComStation (en) et ArcaOS (en), issus du code OS/2, incluent QBasic 1.0. QBasic 1.1 est inclus dans MS-DOS 6.x, et, sans EDIT, dans Windows 95, Windows 98 et Windows Me. À partir de Windows 2000, Microsoft n'inclut plus QBasic avec ses systèmes d'exploitation, mais le rend toujours disponible pour une utilisation sur les nouvelles versions de Windows.

## Contenu

QBasic 4.51 s'agit en réalité d'une version bridée de QuickBasic 4.51, dans le sens où elle ne permet que d'exécuter des programmes interprétés, la compilation étant rendue impossible.
D'autres différences mineures subsistent cependant au niveau du langage, notamment la disparition de certaines commandes. À l'inverse, les instructions permettant l'utilisation du langage machine (telles que CALL ABSOLUTE) ont été incorporées à l'environnement, car il n'était plus possible de les lier au moment de la compilation.
L'exécutable de QBasic contient également les fonctions de la commande EDIT de MSDOS, accessibles en tapant qbasic /editor dans la ligne de commande.
QBasic (ainsi que MS-DOS Editor intégré) est rétrocompatible avec les versions de DOS antérieures à 5.0 (au moins jusqu'à DOS 3.20). Cependant, s'il est utilisé sur des ordinateurs 8088/8086 ou sur certains ordinateurs 80286, le programme QBasic peut s'exécuter très lentement, voire pas du tout, en raison des limites de taille de mémoire du DOS. Jusqu'à MS-DOS 7, l'éditeur et l'aide de MS-DOS nécessitaient QBasic : les programmes EDIT.COM et HELP.COM lançaient simplement QBasic en mode éditeur et en mode aide uniquement, et ceux-ci peuvent également être saisis en exécutant QBASIC.EXE avec les commutateurs /EDITOR et /QHELP (c'est-à-dire les lignes de commande QBASIC /EDITOR et QBASIC /QHELP).
QBasic était livré avec quatre programmes d'exemple pré-écrits. Il s'agissait de Nibbles, une variante du jeu du Snake ; Gorillas, un jeu d'artillerie ; MONEY MANAGER, un gestionnaire de finances personnelles ; et RemLine, un programme de suppression de numéros de ligne de code Q-BASIC.
QBasic possède un Easter egg auquel on accède en appuyant et en maintenant simultanément CTRL gauche + SHIFT gauche + ALT gauche + CTRL droit + SHIFT droit + ALT droit après avoir lancé QBasic à l'invite du DOS mais avant le chargement de l'écran titre : cela donne la liste des programmeurs de l'équipe.