Question

  

Possible en double:    Pourquoi avons-nous pris la peine avec les numéros de ligne du tout?

Je suis curieux de savoir pourquoi les premières versions du langage de programmation BASIC avaient la numérotation des lignes comme dans:

42 PRINT "Hello world!"

Les éditeurs de texte à l'époque avaient pas la numérotation des lignes?

EDIT: Oui, je sais qu'ils sont utilisés pour GOTO, mais pourquoi? Je veux dire, était trop dont l'étiquetage informatiquement cher?

Était-ce utile?

La solution

Beaucoup

micro-ordinateurs ont un interpréteur BASIC en ROM qui commencerait à bootup. Le problème était qu'il n'y avait pas l'éditeur de texte ou système de fichiers à proprement parler. Vous avez eu une invite interactive à tout faire à travers. Si vous voulez insérer une ligne de code, vous venez de taper, en commençant par le numéro de ligne. Il l'insérer dans le bon endroit dans votre code. par exemple:

>10 print "hello"
>30 goto 10
>20 print "world"
>list
10 PRINT "hello"
20 PRINT "world"
30 GOTO 10
>

(Dans cet exemple> est l'invite BASIC)

Si vous voulez effacer une ligne, vous devez taper quelque chose comme ERASE 20. Certains systèmes vraiment de fantaisie vous a donné un éditeur de ligne (à savoir EDIT 10) Et si vous ne planifiez vos numéros de ligne et sortit en courant (comment puis-je insérer une ligne entre 10 et 11?) Certains systèmes vous a donné une commande RENUM qui numéroter votre code (et ajuster correctement GOTOs et GOSUBs).

Fun temps!

Autres conseils

La numérotation des lignes BASIC d'origine était en fait une partie intégrante de la langue, et utilisé pour le flux de contrôle.

Les commandes GOTO et GOSUB prendraient la ligne, et de l'utiliser pour le flux de commande. Ce fut alors commun (même si elle est découragée maintenant).

Ils ont été utilisés comme marqueurs pour GOTO et GOSUB

Comme ceci:

10 PRINT "HELLO WORLD"
20 GOTO 10

Il n'y avait pas d'étiquettes nommées dans certaines versions de base début

Ils ont également été nécessaires si vous voulez insérer une ligne entre 2 lignes existantes de code, parce que dans les premiers jours, vous n'aviez pas un éditeur de texte complet. Tout devait être tapé dans l'interpréteur « interactif ».

Donc, si vous avez saisi:

15 PRINT "AND THE UNIVERSE"

Le programme deviendrait:

10 PRINT "HELLO WORLD"
15 PRINT "AND THE UNIVERSE"
20 GOTO 10

Lorsque vous avez manqué de numéros de ligne, vous pouvez exécuter un « renumérotation » outil pour numéroter toutes les lignes de votre programme, mais dans les tout premiers jours du Commodore 64 et d'autres ordinateurs à la maison, nous ne même pas que, de sorte que vous auriez à numéroter manuellement. C'est la raison pour laquelle vous avez dû laisser des espaces de 10 ou plus dans les numéros de ligne, vous pouvez donc facilement ajouter des lignes entre les deux.

Si vous voulez essayer l'interprète Commodore 64, consultez cet émulateur C64 écrit en Flash: http://codeazur.com.br/stuff/fc64_final/ (pas installation requise)

BASIC, les numéros de ligne ordre indiqué.

En outre, de nombreux éditeurs plus âgés ne sont pas pour les fichiers, mais simplement des lignes ( « éditeurs de ligne », par exemple ed, l'éditeur standard ). En les numérotant cette façon, vous saviez quelle ligne vous travaillez.

Retour dans la journée toutes les langues ont des numéros d'ordre, tout était sur des cartes perforées. Il y avait une ligne par carte. Jeux de cartes faites votre programme.

Lorsque vous laissiez tomber les cartes, tu les mettre dans un trieur de carte qui a utilisé ces numéros de séquence.

Et bien sûr, ils ont été référencés par des constructions de contrôle de flux.

Un google simple, révèle ce que wikipedia dit au sujet de ce :

  
    

Les numéros de ligne ont été un élément nécessaire de la syntaxe dans certains langages de programmation plus anciennes telles que GW-BASIC. [2] La principale raison est que la plupart des systèmes d'exploitation à l'époque ne disposaient pas des éditeurs de texte interactifs; depuis l'interface du programmeur est généralement limité à un éditeur de ligne, les numéros de ligne ont fourni un mécanisme par lequel des lignes spécifiques dans le code source peuvent être référencées pour l'édition, et par lequel le programmeur pourrait insérer une nouvelle ligne à un moment précis. Les numéros de ligne ont également fourni un moyen commode de faire la distinction entre le code à entrer dans le programme et des commandes à exécuter immédiatement lors de la saisie par l'utilisateur (qui ne présentent pas les numéros de ligne).

  

Sur la C64, il n'y avait même pas un vrai éditeur (intégré au moins). Pour modifier une partie du programme, vous feriez quelque chose comme LISTE 100-200, et alors vous ne pourrez modifier ces lignes qui sont actuellement affichées sur l'écran (pas de défilement vers le haut!)

Ils étaient des étiquettes pour les déclarations, afin que vous puissiez GOTO le numéro de ligne. Le nombre des déclarations ne doivent pas nécessairement correspondre aux numéros de ligne physiques dans le fichier.

Les numéros de ligne ont été utilisés dans le flux de contrôle. Il n'y avait pas nommé sous-routines. Il fallait utiliser GOSUB 60, par exemple, d'appeler le sous-programme de départ à la ligne 60.


Sur votre mise à jour, toutes les langues ont des étiquettes, mais toutes les langues ont des numéros de ligne à un moment donné. À un moment donné, tout était cartes perforées. BASIC a été l'une des premières langues interactives, où vous pouvez réellement taper quelque chose et avoir une réponse immédiatement. Les numéros de ligne étaient encore la technologie actuelle.

Etiquettes sont une dépense supplémentaire. Vous devez garder une trace de la corrélation entre l'étiquette symbolique et le code ou les données auxquelles elle se réfère. Mais si chaque ligne a un numéro de ligne (et si tout transfert des états de flux de contrôle se réfèrent toujours au début d'une ligne), alors vous n'avez pas besoin d'une table de symbole distinct.

Aussi garder à l'esprit que les interprètes BASIC d'origine n'a pas besoin d'une table de symboles pour les variables: Il y avait 26 variables nommées A-Z. Certains étaient sophistiqués et avait An-Zn. Certains ont obtenu très chic et ajouté une distinction entre chaîne, entier et à virgule flottante en ajoutant « $ » ou « % » après la variable. Mais aucune table de symbole était nécessaire.

IIRC, les numéros de ligne ont été principalement utilisés comme marqueurs pour GOTO et GOSUB, puisque dans certains (la plupart?) Des saveurs de BASIC il n'y avait aucun moyen d'étiqueter une section de code.

Ils ont également été utilisés par l'éditeur - à savoir que vous avez dit:

edit 100

pour modifier la ligne 100.

Comme d'autres l'ont souligné, ces numéros de ligne ont été utilisés dans le cadre de la sous-routines.

Bien sûr, il y a une raison que cela ne se fait plus. Imaginez si vous dites GOTO 20 sur la ligne 10, puis réaliser plus tard, vous avez besoin d'écrire 10 autres lignes de code, après la ligne 10. Tout d'un coup, vous fracassant contre 20 afin que vous soit besoin de changer votre sous-routine plus loin ( un plus grand nombre) et changer la valeur de votre GOTO, ou vous devez écrire un autre sous-programme qui saute plus loin dans le code.

En d'autres termes, il est devenu un cauchemar de vrai code spaghetti et n'est pas amusant de maintenir.

Il a été entré dans la commande en ligne dans de nombreux cas (ou était, sur mon vieux Commodore 64) il n'y a peut-être pas toujours été un éditeur de texte, ou s'il y avait, il était assez basique.

De plus, vous devez faire GOTO et autres, ainsi que lignes d'encartage entre autres.

-à-dire:

10 PRINT "HELLO"
20 GOTO 10
15 PRINT " WORLD"

où il irait dans la logique 10 15 20

Certains éditeurs n'avaient un mode « écraser » et pas de mode « insérer ». Cela a l'édition du code existant extrêmement douloureux. En ajoutant cette fonctionnalité numéro de ligne, vous pouvez cependant patcher le code existant partout dans le fichier:

100 PRINT "Broken Code"
200 PRINT "Foobar"
...
101 patch the broken code
102 patch more broken code

Parce que les numéros de ligne ne doivent être commandés dans le fichier.

Les numéros de ligne sont une partie de la langue, dans certains très tôt, même le système d'exploitation était juste ces lignes simples. ALL que vous aviez était une ligne à la fois à manipuler. Essayez d'écrire un système de comptabilité à l'aide 1-4k fichiers de programme et segmentant par la taille pour se faire des choses. Pour vous modifier utilisé les numéros de ligne pour dire ce que vous retouchiez. Donc, si vous avez entré comme:

10 PRINT "howdy"
20 GOTO 10
10 PRINT "WOOPS"
15 PRINT "MORE WOOPS"
20
RUN

vous obtiendriez:

WOOPS
MORE WHOOPS

Le 20 serait en blanc effectivly supprimer cette ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top