<page>
    <title>BASIC</title>
    <id>460</id>
    <revision>
      <id>31561920</id>
      <timestamp>2008-07-14T08:30:47Z</timestamp>
      <contributor>
        <username>Mro</username>
        <id>335458</id>
      </contributor>
      <minor />
      <comment>[[Langage de haut niveau]]</comment>
      <text xml:space="preserve">{{à sourcer|date=date inconnue}}
{{Voir homonymes|Basic}}
En [[programmation]], '''BASIC''' est un [[Acronymie|acronyme]] pour '''''B'''eginner's '''A'''ll-purpose '''S'''ymbolic '''I'''nstruction '''C'''ode.'' qui désigne une famille de [[Langage informatique|langages de programmations]] de [[Langage de haut niveau|haut niveau]].

==Buts==
Le BASIC a été conçu à la base en [[1963]] par [[John George Kemeny]] ([[1926]]-[[1993]]) et [[Thomas Eugene Kurtz]] ([[1928]]-) au « [[Dartmouth College]] » pour permettre aux étudiants ne travaillant pas dans des filières scientifiques d'utiliser les ordinateurs. En effet, à l'époque, l'utilisation des ordinateurs nécessitait l'emploi d'un [[langage de programmation]] [[assembleur]] dédié, ce dont seuls les spécialistes étaient capables.

Cet acronyme est lié au nom d'un article de [[Thomas Kurtz]] qui n'a pas été publié et n'a aucun rapport avec les séries intitulées « [[Anglais basic]] » de [[Charles Kay Ogden|C. K. Ogden]]. Les concepteurs du langage souhaitaient qu'il soit du domaine public, ce qui favorisa sa diffusion.

Le BASIC est indissociable de l'apparition, dans les [[années 1980]], de la [[micro-informatique]] grand public. En effet, la plupart des [[micro-ordinateur]]s vendus durant cette période étaient fournis avec un [[Interprète (informatique)|Interprète]] BASIC, et quelques [[calculatrice]]s programmables en furent même dotées.

Les huit principes de conception du BASIC étaient :

# Être facile d'utilisation pour les débutant(e)s ('''''B'''eginner'')
# Être un langage généraliste ('''''All'''-purpose'')
# Autoriser l'ajout de fonctionnalités pour les expert(e)s (tout en gardant le langage simple pour les débutant(e)s)
# Être interactif
# Fournir des messages d'erreur clairs et conviviaux
# Avoir un délai de réaction faible pour les petits programmes
# Ne pas nécessiter la compréhension du matériel de l'ordinateur
# Isoler ('''''shield''''') l'utilisateur du [[système d'exploitation]]

== Historique ==

Le BASIC est peut-être le [[langage de programmation]] le plus connu. La forme originelle du langage est basée sur le [[Fortran]], avec des ajouts pour le rendre interactif et capable d'utiliser des tableaux arithmétiques. Bien qu'il y ait eu beaucoup d'interprètes BASIC produits, rien n'empêche ce langage d'être [[compilateur|compilé]], ce qui est d'ailleurs le cas dans les produits modernes. Malgré sa normalisation, plusieurs dialectes sont apparus au cours des années, avec la même base du langage et incluant des améliorations sur les [[interface graphique|interfaces graphiques]] et une structure de type [[orienté objet]]. La référence sur PC a été le [[GW-Basic]] puis le [[Quick Basic]].

La première version du BASIC a été développée sur un [[mainframe]] [[Système temps réel|temps réel]] appelé [[GE-256]] ([[General Electric]]), qui était un [[GE-235]] avec une [[GE DataNet-30]]&lt;ref&gt;En correspondance avec Thomas E. Kurtz&lt;/ref&gt;. C'était le premier langage spécialement conçu pour être utilisé sur des systèmes interactifs. En dépit de sa popularité, le BASIC a été dédaigné par la plupart des [[informaticien]]s peu de temps après le développement de la première version.

Dans sa forme originale, le langage BASIC, avec ses boucles en spaghetti et son exécution ligne par ligne, a parfois été associé à l'expression  &quot;Un programme tourne sur un ordinateur&quot;. Mais en fait cette expression est bien plus ancienne que le BASIC. Elle a été ainsi utilisée pour des langages tels que le [[fortran]] ou l'[[algol (langage)|algol]] qui existaient avant le BASIC. Je pense qu'il faut simplement considérer le verbe &quot;tourner&quot; comme une traduction du mot anglais &quot;run&quot;, avec en connotation l'idée qu'un programme informatique, quel qu'il soit, possède en général des boucles.

Durant les premiers temps, il n'y eut pas de version interprétée. Cependant, avec l'arrivée des premiers [[ordinateur personnel|ordinateurs individuels]], les versions interprétées du BASIC ont proliféré. Les développeurs et fabricants des premiers [[ordinateur personnel|ordinateurs individuels]] avec clavier ont eu besoin d'inclure un outil permettant aux gens d'écrire des logiciels pour être utilisés sur leurs ordinateurs. Le BASIC était fait à cette fin puisqu'il a été conçu pour l'utilisation sur un [[terminal informatique]], et une version interprétée pouvait s'adapter dans le petit espace de [[Mémoire morte|Mémoire morte (ROM)]] disponible alors. Beaucoup de [[langage de programmation|langages de programmation]] étaient trop gros pour être installés sur les petits espaces de ROM des machines et n'avaient aucun [[environnement de développement intégré]] de défini, alors que le BASIC en avait un embryon avec les commandes &lt;tt&gt;old, new, list&lt;/tt&gt; et quelques autres déjà définies à l'intérieur même du langage, lui conférant ses capacités interactives.

Presque tous les premiers ordinateurs individuels possédaient un interprète BASIC en ROM ([[C64]], [[TRS-80]], [[Apple II]], etc.).

En [[1968]], un article d'[[Edsger Dijkstra]] considéra que les [[langage de programmation|langages de programmation]] utilisant seulement '''[[goto]]''' avaient une incidence nocive sur la productivité du programmeur et la qualité du code résultant (''Communications de l'ACM'' n°11, p. 147-148. 1968). 
Cette critique s'appliquait alors aux dialectes du BASIC. Les dialectes et versions qui apparurent dix à vingt ans plus tard prirent cette critique en compte et elle n'eut plus de raison d'être pour le BASIC. Cependant, la popularité du BASIC, langage de programmation grand public par excellence, fit dire à certains que ce langage a donné naissance à plus de mauvais programmes qu'aucun autre langage.

[[Borland]] a publié le [[Turbo Basic]] 1.0 en [[1985]]. Les versions suivantes sont encore vendues sous le nom de [[PowerBasic]] par une autre compagnie. Il existe toujours une version [[MS-DOS]]. 

Les versions les plus répandues ont été conçues par [[Microsoft]]. En [[1977]] Microsoft a sorti l'[[Altair Basic]] pour le [[Altair 8800]] du constructeur [[MITS]]. C'était le premier [[logiciel]] développé et commercialisé par [[Microsoft]]. En [[1979]] Microsoft était en pourparlers avec [[International Business Machines Corporation|IBM]] afin de détenir une licence de l'interprète BASIC des futurs [[IBM PC]] et [[compatible PC]]. Cette version était incluse dans la puce ROM du [[bios]] des [[Ordinateur personnel|PCs]], et était chargée au démarrage. Plus tard, Microsoft a vendu différentes versions du BASIC pour [[DOS]], dont [[Basica]], [[GW-Basic]], [[Quick Basic]] et [[Visual Basic]] pour [[MS-DOS]]. [[Microsoft]] [[Windows 95]] et [[Windows 98]] incluaient un interpréteur [[QBasic]] à installer à partir du [[CD-ROM]] et [[Windows 98]] incluait un interprète [[VBScript]]. [[Visual Basic for Applications]] a été ajouté dans les produits [[Microsoft Office]] en [[1997]].

Entre temps, la nécessité d'enseigner un langage de programmation fondé sur des bases plus saines, a donné naissance au [[Langage Pascal]] en [[1972]]. Ce langage, en particulier grâce au compilateur [[Turbo Pascal]] de la société [[Borland]], beaucoup plus rapide que n'importe quel Interprète BASIC de l'époque, remporta un énorme succès au cours des [[années 1980]], et marqua le début du déclin de la popularité du BASIC dans le grand public.

== Syntaxe ==

La syntaxe vraiment minimale du BASIC a seulement besoin de &lt;tt&gt;LET&lt;/tt&gt; (déclaration d'une variable), &lt;tt&gt;PRINT&lt;/tt&gt; (affichage à l'écran), &lt;tt&gt;IF-THEN-ELSE&lt;/tt&gt; (exécution conditionnelle) et &lt;tt&gt;GOTO&lt;/tt&gt; (saut vers une zone du programme). Un [[Interprète (informatique)|Interprète]] qui exécute des programmes avec cette syntaxe minimale n'a pas besoin d'une [[pile (informatique)|pile]]. Nombre des premières implémentations sur [[micro-ordinateur]] n'eurent que cela, les programmes n'étaient donc pas structurés. Si on ajoute une pile, la boucle &lt;tt&gt;FOR-NEXT&lt;/tt&gt; et la commande &lt;tt&gt;GOSUB&lt;/tt&gt; (saut vers un sous-programme) peuvent être ajoutées. (La pile est nécessaire pour le &lt;tt&gt;GOSUB&lt;/tt&gt;, mais pas pour le &lt;tt&gt;FOR&lt;/tt&gt;.)

=== Interprètes à numéro de ligne ===

Les premiers Interprètes BASIC étaient basés sur des numéros de ligne, comme le fortran. En général, l'éditeur, en ligne de commande, permettait d'exécuter une instruction. Si l'on faisait précéder l'instruction d'un numéro, ceci était interprété comme une ligne de programme ; on ne pouvait avoir qu'un seul programme à la fois en mémoire.

L'habitude était de numéroter les lignes de 10 en 10, afin de pouvoir insérer des lignes supplémentaires si besoin était. On pouvait mettre plusieurs commandes sur une même ligne, séparées par un deux-points. Toutefois, Il n'était pas possible de regrouper un ensemble de commandes s'exécutant ensemble, comme par exemple après une condition &lt;tt&gt;IF-THEN&lt;/tt&gt; ; il fallait donc nécessairement recourir à des sauts de ligne &lt;tt&gt;GOTO&lt;/tt&gt;.

=== Interprètes modernes ===

Les dialectes BASIC modernes n'emploient plus les numéros de lignes (en fait il est toujours possible de les employer mais cela n'est nullement obligatoire) et ont une richesse de commandes et une construction des déclarations de données identiques à d'autres langages comme le [[langage Pascal]] ou le [[Modula 2]].

Les récentes variantes comme le [[Visual Basic]] ont introduit une [[orienté objet|orientation objet]] avec gestion de l'implémentation d'interfaces et, dans [[Visual Basic .NET]] l'[[Héritage (Informatique)|héritage]] (simple).
Cependant la gestion des erreurs nécessite généralement l'utilisation de &lt;tt&gt;GOTO&lt;/tt&gt;, ce qui casse la structuration des programmes.
Visual Basic .NET permet l'utilisation de blocs Try/Catch, mais conserve néanmoins la possibilité d'utiliser des On Error GoTo, pour conserver une certaine compatibilité avec les versions classiques de Visual Basic.

La richesse des variantes est synonyme de non-standardisation. Cela montre comme ce langage est « organique » et comme il est plutôt une sous-culture qui traite la programmation d'ordinateur comme un ensemble fixe de règles de syntaxe. Mais la même chose s'applique tout autant aux autres « vieux » [[langage de programmation|langages de programmation]] comme le [[cobol]] et le [[fortran]]. Cependant le mouvement de BASIC est de loin le plus important.

== Procédures ==

Le BASIC (sauf le Visual Basic ou le [[Visual Basic .NET]]) n'a pas de [[bibliothèque logicielle|bibliothèque]] externe standard comme d'autres langages, le [[langage C]] par exemple. Au lieu de cela, l'Interprète ou le compilateur contiennent une bibliothèque intégrée étendue de procédures intrinsèques. Ces procédures incluent plus d'outils que ce dont le programmeur a besoin pour apprendre la programmation et écrire de simples applications, dont des fonctions mathématiques, des fonctions de traitement des chaînes de caractères, d'entrée-sortie [[Terminal informatique|console]], de graphisme et de manipulation de fichiers. Le Quick-Basic permet d'inclure des bibliothèques écrites dans ce langage (QLB) ou en d'autres langages (LIB).

Certains dialectes BASIC ne permettent pas aux programmeurs d'écrire leurs propres procédures. À cause de cela, les programmeurs sont obligés d'écrire leurs programmes avec une importante utilisation de &lt;tt&gt;goto&lt;/tt&gt; et de &lt;tt&gt;gosub&lt;/tt&gt;. Ce qui fait qu'il est très difficile de suivre un tel code source, appelé couramment un « code spaghetti ». Beaucoup de versions du BASIC comme le [[Quick Basic|Microsoft Quick Basic]] ont ajouté un support des sous-routines et des fonctions (avec support de la récursivité). Il fait la distinction entre une procédure qui ne retourne jamais de valeur (appelée sous-routine ou ''sub'') et une procédure qui en renvoie (appelée fonction). Certains langages ne font pas cette distinction et considèrent tout comme une fonction dont certaines renvoient une valeur « vide ».

Le BASIC est bien connu pour ses fonctions de manipulations de chaînes de caractères. Les premiers dialectes avaient déjà un ensemble de fonctions basiques (&lt;tt&gt;left$, mid$, right$&lt;/tt&gt;) pour les traiter simplement. Comme elles sont souvent utilisées dans les applications de tous les jours, cela est un avantage considérable.

== Types de données ==

Chaque dialecte BASIC de base gère les données de type entier et chaîne de caractères. Normalement, ils n'ont pas besoin de les déclarer comme telles, mais les dialectes modernes ont l'option de forcer le type (typiquement en utilisant une directive appelée « Option Explicit »). Les types de données modernes supportés par le BASIC incluent : booléens, entiers signés sur 16 bits, entiers signés sur 32 bits, chaînes de caractères, nombres décimaux. Certains dialectes comme [[Visual Basic]] ont plus de types de données intrinsèques. De plus, certains dialectes permettent à l'utilisateur de définir ses propres types, appelés ''types définis par l'utilisateur'', et qui sont actuellement des [[Structure de données|structures]], c'est-à-dire une simple variable contenant plusieurs champs.

== Disponibilité et variantes de dialecte ==

Le BASIC est disponible pour toutes les plates-formes récentes.
Une version interprétée [[logiciel libre|libre]] qui est conforme avec les standards et hautement multi-plate-forme est le [[ByWater Basic]]. L'Interprète est écrit en [[langage C]] et est sous une licence GNU. Il ne permet pas de faire des [[Environnement graphique|interfaces utilisateur graphiques (GUI)]].

Une version libre, similaire au [[Visual Basic]] et tournant sous Windows et GNU/Linux, et permettant donc de faire des [[Environnement graphique|environnements graphiques (GUI)]], existe et s'appelle le [[Phoenix Object Basic]]. Il en existe une autre plus récente : [[Gambas (langage)|Gambas]].

La plus connue des versions compilées est le [[Quick Basic]] de [[Microsoft]] et le [[QBasic]], une version qui ne permet pas de générer des programmes autonomes.
Les dernières versions de [[Visual Basic]] sont aussi compilées, bien que [[Microsoft]] ait changé le Visual Basic en un langage compatible d'une façon minimale avec les premières version du [[Dartmouth Basic]].

D'autres versions, dont le [[PowerBasic]] de ''PowerBasic'', le [[True Basic]] de ''True Basic'', sont conformes avec le dernier standard officiel du BASIC (True Basic Inc. a été fondée par les créateurs originaux du BASIC).

[[RealBasic]] est une variante disponible pour les [[Apple Macintosh]] qui génère aussi des exécutables pour [[Microsoft Windows]] et [[Linux|GNU/Linux]]. 

Une variante d'un dialecte BASIC simple pour la [[machine virtuelle]] [[Parrot (machine virtuelle)|Parrot]] montre comment un Interprète BASIC est mis en application dans un langage de type [[langage assembleur|assembleur]]. 

Le [[PureBasic]] est une variante avec une syntaxe simple mais avec une production rapide et des fichiers exécutables petits, pour [[Microsoft Windows|Windows]], [[Linux|GNU/Linux]], [[AmigaOS]] et [[Mac OS]]. Il peut aussi compiler et contenir des instructions en assembleur en-ligne.

Le [[WxBasic]] est une variante, écris en c et c++, pour [[Microsoft Windows|Windows]], [[Linux|GNU/Linux]] et peut-être bientôt sous [[Mac OS]]. Il est gratuit et peut être utilisé en compilé ou en interprété.

Le [[BlitzBasic]] et le [[DarkBasic]] sont des variantes spécialisées dans la création de jeux vidéos avec un accès simplifié aux [[interface de programmation|interface de programmation (API)]] multimédias tels [[OpenGL]] et [[DirectX]]. Le [[compilateur]] est payant dans les deux cas. Cette variante est optimisée. On peut avoir des bons résultats rapidement pour des débutants.

Liberty BASIC est spécialisé dans l'élaboration facile d'interface graphique, il est reconnu comme le successeur de QBASIC.

Le [[SmallBasic]] est un dialecte qui fonctionne sur un grand nombre de plates-formes ([[Microsoft Windows|Win32]], [[MS-DOS]], [[Linux|GNU/Linux]] et [[Palm OS]]) et est placé sous une licence [[GNU]].

Le [[FreeBASIC]] développé par une [http://www.qbasicnews.com/ communauté] QBasic mourante, est un compilateur 32-bits distribué sous licence GPL. Il est multi-plateforme et, bien qu'encore en version bêta, très prometteur. Sa syntaxe est calquée sur celle du QBasic de Microsoft mais il supporte désormais les pointeurs, l'assembleur in-line et prochainement une branche orientée objet devrait être incorporée. [http://www.freebasic.net]

Il existe également une version BASIC pour OpenOffice, appelée OOoBasic (c'est le même langage utilisé pour StarOffice, même si son nom, StarBasic, change).

Le [[TI-Basic]] est le langage de programmation utilisé sur certaines calculatrice [[Texas Instruments]].

== Exemples ==

'''Exemple 1 :''' BASIC original non structuré ([[Applesoft Basic programming language|Applesoft Basic]])

 10 INPUT &quot;Quel est votre nom&quot;; NOM$ 
 20 PRINT &quot;Bonjour &quot;; NOM$
 30 INPUT &quot;Combien d'étoiles voulez-vous&quot;; NOMBRE
 40 FOR I = 1 TO NOMBRE
 50 ETOILE$ = ETOILE$ + &quot;*&quot;
 55 NEXT I
 60 PRINT ETOILE$
 70 INPUT &quot;Voulez-vous plus d'étoiles&quot;; ETOILE$
 80 IF LEN(ETOILE$) = 0 GOTO 70
 90 ETOILE$ = LEFT$(ETOILE$, 1)
 100 IF (ETOILE$ = &quot;O&quot;) OR (ETOILE$ = &quot;o&quot;) THEN GOTO 30
 110 PRINT &quot;Au revoir &quot;;
 120 FOR I = 1 TO 200
 130 PRINT NOM$; &quot; &quot;;
 140 NEXT I
 150 PRINT

Commentaires :

* en général, l'Interprète n'est pas sensible à la [[casse (typographie)|casse]] ; par habitude, les instructions étaient tapées en majuscules ;
* un nom de variable suivi d'un signe [[dollar]] indique qu'il s'agit d'une [[chaîne de caractères]] (&lt;tt&gt;NOM$, ETOILE$, S$&lt;/tt&gt;) ; une variable sans signe dollar indique un entier ou un nombre décimal (&lt;tt&gt;S, I&lt;/tt&gt;) ;
* &lt;tt&gt;INPUT&lt;/tt&gt; permet l'affichage d'un texte et une saisie du clavier ; &lt;tt&gt;PRINT&lt;/tt&gt; permet un affichage à l'écran ;
* l'instruction &lt;tt&gt;LET&lt;/tt&gt; est optionnelle, ainsi, &lt;tt&gt;LET ETOILE$ = ETOILE$ + &quot;*&quot;&lt;/tt&gt; s'écrit simplement &lt;tt&gt;ETOILE$ = ETOILE$ + &quot;*&quot;&lt;/tt&gt; (le signe égal sert à la fois aux affectations de variables et au test d'égalité) ;
* &lt;tt&gt;FOR-NEXT&lt;/tt&gt; est une boucle ;
* &lt;tt&gt;IF-THEN&lt;/tt&gt; est une exécution conditionnée ; &lt;tt&gt;OR&lt;/tt&gt; est l'[[opérateur logique]] « Ou » ;
* &lt;tt&gt;LEN&lt;/tt&gt; est une fonction renvoyant la longueur de a chaîne de caractères, &lt;tt&gt;LEFT$(ETOILE$,''n'')&lt;/tt&gt; est une fonction renvoyant une sous-chaîne composée de ''n'' caractères situés à gauche de la chaîne &lt;tt&gt;Q$&lt;/tt&gt; ; &lt;tt&gt;+&lt;/tt&gt; est l'opérateur de [[concaténation]] (c'est aussi l'opérateur de l'[[addition]]).

'''Exemple 2 :''' BASIC moderne structuré

 INPUT &quot;Quel est votre nom&quot;; UserName$
 PRINT &quot;Bonjour &quot;; UserName$
 DO 
   INPUT &quot;Combien d'étoiles voulez-vous&quot;; NumStars
   Stars$ = &quot;&quot;
   Stars$ = REPEAT$(&quot;*&quot;, NumStars) '&lt;-ANSI BASIC
   'Stars$ = STRING$(NumStars, &quot;*&quot;) '&lt;-MS BASIC
   PRINT Stars$
   DO
     INPUT &quot;Voulez-vous plus d'étoiles&quot;; Answer$
   LOOP UNTIL Answer$ &lt;&gt; &quot;&quot;
 LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = &quot;O&quot;
 PRINT &quot;Au revoir &quot;;
 FOR A = 1 TO 200
   PRINT UserName$; &quot; &quot;;
 NEXT A
 PRINT

== Dialectes ==
===Dialectes fonctionnant sur plusieurs plates-formes===

* [[Antiryad Gx]] ([[MS-DOS]], [[AmigaOS]], [[Macintosh]], [[Linux]], [[Microsoft Windows|Windows]])
* [[BASIC/Z]] (ou [[ZBASIC]]) (CP/M, MDOS)
* [[BBC BASIC]] ''([[Acorn]](Electron, BBC, Archimede, [[RISC PC]]), [[MS-DOS]], [[CP/M]])''
* [[Blitz Basic]] ''([[AmigaOS]], PC)''
* [[Bywater BASIC]] (aka bwBASIC) — Basic-[[Interpreter]] pour [[MS-DOS]] et [[POSIX]]. C'est un peu comme [[GWBasic]].
* [[C-BASIC]] ''(CP/M, MS-DOS)'' — Successeur de BASIC-E
* [[FreeBasic]] ''([[MS-DOS]], [[Microsoft Windows|Windows]], [[GNU/Linux]])'' — [[Licence Publique Générale|GPL]]
* [[GFA BASIC]] ''([[Atari ST]], [[AmigaOS]], [[MS-DOS]], [[Microsoft Windows|Windows]])''
* [[HiSoft Basic]] (Amiga, Atari ST, ZX Spectrum)
* [[HotBasic]] (Win32, Linux)
* [[Izibasic]] (Palm)
* [[Memsoft Membasic]] ''([[Apple II]], [[AmigaOS]], [[DOS]] , [[OS/2]], [[Ultrix]], [[Microsoft Windows|Windows]]'' - Structuré
* [[Microsoft BASIC]] (plusieurs plates-formes)
* [[Omikron BASIC]] ''([[Atari ST]] et [[Mac OS]])''
* [[Phoenix Object Basic]] ''([[Microsoft Windows|Windows]], [[GNU/Linux]])''
* [[PowerBasic]] ''([[MS-DOS]] et Win32)'' — successeur de Turbo Basic
* [[ProvideX]] ([[Microsoft Windows|Windows]], [[GNU/Linux]], [[Mac OS]])
* [[PureBasic]] ''([[Microsoft Windows|Windows]], [[GNU/Linux]], [[AmigaOS]] et [[Mac OS]])''
* [[RapidQ]] ''([[Microsoft Windows|Windows]], [[Linux]], [[solaris (informatique)|Solaris]]/[[Sparc]] et [[HP/UX]])''
* [[REALbasic]] ''([[Macintosh]], [[Microsoft Windows|Windows]], [[Win32]])''
* [[sdlBasic]]
* [[SmallBasic]] ''([[Microsoft Windows|Windows]], [[GNU/Linux]], et [[Palm OS]]) — GNU
* [[True BASIC]] ''([[MS-DOS]], [[Microsoft Windows|Windows]], [[Macintosh]])''
* [[UBasic]] ''([[DOS]] et [[Microsoft Windows|Windows]])'' — Développé au Japon, proche de GWBASIC mais avec des fonctions mathématique plus puissante, une version anglaise et [http://membres.lycos.fr/pierdieu/langages/basic/ubasic.htm française] existe
* [[wxBasic]] ''([[Linux]] et [[Microsoft Windows|Windows]])
* [[XBasic]] ''(Windows, Linux)'' — (GNU)
* [[Yabasic]] ''([[Microsoft Windows|Windows]] et [[GNU/Linux]])'' — [[Licence Publique Générale|GPL]]

===Dialectes qui fonctionnent sur une plate-forme unique===

* [[Altair BASIC]] ''([[Altair 8800]])'' (premier BASIC de l'histoire de la [[micro-informatique]]) 
* [[AmigaBasic]] ''([[AmigaOS]])''
* [[AMOS BASIC|AMOS]] ''([[AmigaOS]])''
* [[Applesoft BASIC]] ''([[Apple II]])''
* [[BASIC09]] ''([[OS9]])''
* [[BASICA]] (Advanced BASIC) ''([[MS-DOS]])''
* [[DarkBASIC]] ''([[Microsoft Windows|Windows]])''
* [[Dartmouth BASIC]]
* [[FutureBASIC]] ''([[Macintosh]])''
* [[Gambas (langage)|Gambas]] ''([[GNU/Linux]]; [[Licence Publique Générale|GPL]])''
* [[GW-BASIC]] ''([[MS-DOS]])''
* [[IBasic]] ''([[Microsoft Windows|Windows]])''
* [[Just BASIC]] ''([[Microsoft Windows|Windows]])''
* [[Liberty BASIC]] ''([[Microsoft Windows|Windows]])''
* [[Locomotive BASIC]] ''([[Amstrad]])''
* [[PANORAMIC]] ''([[Microsoft Windows|Windows]])''
* [[QBasic]] ''([[MS-DOS]])'' — vendu avec les versions de MS-DOS de 5.0 à 6.22.
* [[Quick BASIC]] ''([[MS-DOS]])'' — QBasic-variante étendus (pour être plus précis, QBasic est un QuickBasic réduit). Était la version commerciale de Qbasic. Fourni avec un [[compilateur]].
* [[Simon's BASIC]] ''([[Commodore 64]])''
* [[STOS BASIC|STOS]] ''([[Atari ST]])''
* [[Turbo Basic]] ''(DOS)'' — (voir PowerBasic)
* [[Visual Basic]] ''([[Microsoft Windows|Windows]])''
* [[Visual Basic .NET]] ''([[Microsoft Windows|Windows]] avec la plate-forme [[Microsoft .NET|.NET]])''
* [[TNT Basic]] ''([[Macintosh]])''
* [[Metal Basic]] ''([[Macintosh]])''
* [[TI-Basic]] ''([[Calculatrice graphique]] [[Texas Instruments]])''
* [[XBlite]] ''([[Microsoft Windows|Windows]])'' — Dérivé de XBasic (inline asm, précompilateur, bibliothèques externes)''

===BASIC intégré / Langages de scripts basées sur BASIC===

* [[Caché Basic]] — Un des deux [[langage de script|langages de script]] dans le ''[[Caché]]'' [[base de données]]
* [[Lotus script]] ''([[Lotus Notes]])''
* [[ScriptBasic]] ''([[Microsoft Windows|Windows]] et [[GNU/Linux]])'' — un variant [[langage de script]] de BASIC. [[Licence Publique Générale|GPL]]
* [[StarOffice Basic]] (aka StarBasic) ''([[OpenOffice.org]], [[StarOffice]])''
* [[Visual Basic for Applications|Visual Basic for Applications (VBA)]] ''([[MS Office]] sur [[Microsoft Windows|Windows]] et [[Macintosh]])''
* Visual Basic Script (VBS) (AKA [[VBScript]]) ([[Microsoft Windows|Windows]])
* [[WordBasic]] ''([[MS Word]] avant [[MS Word 97]])

===Autres / inconnu / non trié===

* [[ROM BASIC]]
* {{Lien|THEOS Multi-User Basic|lang=en}}
* [[BASIC chinois]]

== Documents définissant le BASIC==

* [[ANSI]] Standard for Minimal Basic (ANSI X3.60-1978 &quot;FOR MINIMAL BASIC&quot;)
* [[Organisation internationale de normalisation|ISO]] Standard  for Minimal Basic (ISO/CEI 6373:1984 &quot;DATA PROCESSING - PROGRAMMING LANGUAGES - MINIMAL BASIC&quot;)
* ANSI Standard for Full Basic (ANSI X3.113-1987 &quot;PROGRAMMING LANGUAGES FULL BASIC&quot;)
* ISO Standard for Full Basic (ISO/CEI 10279:1991 &quot;INFORMATION TECHNOLOGY - PROGRAMMING LANGUAGES - FULL BASIC&quot;)
* ANSI Addendum Defining Modules (X3.113 INTERPRETATIONS-1992 &quot;BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987&quot;)
* ISO Addendum Defining Modules (ISO/CEI 10279:1991/ Amd 1:1994 &quot;MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT&quot;)

Au nombre des modèles populaires qui l'utilisèrent figurent :

*La série [[Amstrad CPC|CPC]] de [[Amstrad]]
*La série [[Thomson MO5|MO]] et [[Thomson TO7|TO]] de la marque Thomson
*Les modèles de la marque [[Commodore International|Commodore]]
*Le [[DAI Imagination machine]]
*Les [[Apple, Inc.|Apple I, II, III et variantes]]
*Le [[TI-99/4A]] de [[Texas Instruments]]
*Certaines calculatrices [[Casio]]
*Les Sinclair [[ZX-81]] et [[ZX-Spectrum]]
*Le [[Tektronix 4051]] (BASIC graphique sur écran rémanent)
*L'[[Olivetti P6060]] 
*L'[[Olivetti M10]] (ordinateur ayant 24 Ko ou 32 Ko de RAM non volatile avec BASIC en ROM, et pas de disque dur ni de disquettes)
*L'[[IBM PC]] et [[Compatible PC]] dont les premiers modèles avaient un BASIC en ROM

== Références ==

&lt;references /&gt;

Le présent article est basé sur un article originellement écrit sur [http://www.nupedia.com/ Nupedia] par Peter Fedorow fedorowp@yahoo.com, et modifié sur la version anglaise de Wikipedia, puis traduit en français.

== Voir Aussi ==

[[Jeux réalisés en BASIC commercialisés]]

=== Liens externes ===
* [http://bodman.developpez.com/basic/ Didacticiel sur Basic] 

* {{fr}} [http://msdn2.microsoft.com/fr-fr/vbasic/default.aspx Centre de développement Visual Basic sur MSDN France]

{{Portail|programmation informatique}}

[[Catégorie:Langage de programmation]]
[[Catégorie:Norme ISO]]

{{Lien BA|en}}

[[af:BASIC]]
[[am:ቤሲክ (BASIC)]]
[[ar:بيسيك]]
[[az:Basic]]
[[bat-smg:BASIC]]
[[bg:BASIC]]
[[bn:বেসিক (প্রোগ্রামিং ভাষা)]]
[[bs:BASIC (programski jezik)]]
[[ca:BASIC]]
[[cs:BASIC]]
[[da:BASIC]]
[[de:BASIC]]
[[el:BASIC]]
[[en:BASIC]]
[[eo:BASIC (programlingvo)]]
[[es:BASIC]]
[[et:BASIC]]
[[eu:BASIC]]
[[fa:بیسیک]]
[[fi:BASIC]]
[[gl:BASIC]]
[[he:BASIC]]
[[hr:BASIC]]
[[hu:BASIC]]
[[id:BASIC]]
[[is:BASIC (forritunarmál)]]
[[it:BASIC]]
[[ja:BASIC]]
[[kab:BASIC]]
[[ko:베이직]]
[[la:Basic]]
[[lt:BASIC]]
[[lv:BASIC programmēšanas valoda]]
[[ms:BASIC]]
[[nl:BASIC]]
[[nn:BASIC]]
[[no:BASIC]]
[[pl:BASIC]]
[[pt:BASIC]]
[[ro:BASIC]]
[[ru:BASIC]]
[[simple:BASIC (programming language)]]
[[sk:BASIC (programovací jazyk)]]
[[sl:BASIC (programski jezik)]]
[[sq:BASIC]]
[[sr:Бејсик]]
[[sv:BASIC]]
[[tg:BASIC]]
[[th:ภาษาเบสิก]]
[[tr:BASIC]]
[[uk:BASIC]]
[[vi:BASIC]]
[[zh:BASIC]]
[[zh-min-nan:BASIC]]</text>
    </revision>
  </page>