Que signifie DIM dans Visual Basic et BASIC?

Réponses:

318

Dim à l'origine (en BASIC) signifiait Dimension, car il était utilisé pour définir les dimensions d'un tableau.

(L'implémentation originale de BASIC était Dartmouth BASIC, qui descendait de FORTRAN, où DIMENSION est précisé.)

De nos jours, Dim est utilisé pour définir n'importe quelle variable, pas seulement les tableaux, donc sa signification n'est plus intuitive.

Patrick McDonald
la source
64
un peu d'histoire pourrait aider. Dans les premières versions de base, les seules variables à déclarer étaient les tableaux. Le mot clé "Dim" a été utilisé pour définir les dimensions de ce tableau.
Chris Simpson
26
Je me souviens avoir lu un guide de programmation gw-basic au début des années 80 et je me souviens explicitement qu'il expliquait DIM signifiant Déclarer en mémoire. La lecture du guide Darthmouth Basic de '64 a des instructions LET et READ assignent des variables et leurs valeurs et plus tard dans '68 DIM est inclus et est en fait utilisé pour les tableaux. bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf
RandyMorris
4
Une chose à garder à l'esprit est qu'au début du développement du langage, il était courant de surcharger un mot-clé pour avoir plusieurs significations. Étant donné que dans le Basic d'origine, "Dim" était déjà un mot-clé utilisé pour déclarer des variables de tableau, le mot-clé a été étendu pour inclure la déclaration de toutes les variables. L'introduction d'un nouveau mot clé a été évitée pour plusieurs raisons, dont l'une ne voulait pas casser les programmes existants qui utilisaient déjà le nouveau mot clé comme nom de variable. Aujourd'hui, nous avons des technologies d'analyse plus sophistiquées et des ordinateurs plus rapides, nous ne voyons pas ces types de limitations.
zumalifeguard
3
Par exemple, dans Basic plus tard, comme Visual Basic, un type et une variable peuvent avoir le même nom. Un excellent exemple de mot-clé trop surchargé est "statique" en C ++. Cela signifie différentes choses dans différents contextes.
zumalifeguard
Pour ceux qui consultent le grand manuel BASIC @RandyMorris lié à, la première référence à DIM se trouve à la page numérotée 21 ou à la page 26 du PDF lui-même. La définition plus formelle se trouve à la page numérotée 37 ou 41 dans le PDF lui-même.
John Cummings
120

Dim ont eu différentes significations qui lui sont attribuées.

J'ai trouvé des références sur le Dimsens de «Déclarer en mémoire» , la référence la plus pertinente est un document sur la déclaration Dim publié Oracle dans le cadre du manuel Siebel VB Language Reference. Bien sûr, vous pouvez affirmer que si vous ne déclarez pas les variables en mémoire, où le faites-vous? Peut - être « Declare dans le module » est une bonne alternative compte tenu de la façon dont Dimest utilisé.

À mon avis, "Declare In Memory" est en fait un mnémonique , créé pour faciliter l'apprentissage de l'utilisation Dim. Je vois "Déclarer en mémoire" comme un meilleur sens car il décrit ce qu'il fait dans les versions actuelles de la langue, mais ce n'est pas le bon sens.

En fait, aux origines de Basic Dimn'était utilisé que pour déclarer des tableaux. Pour les variables régulières, aucun mot clé n'a été utilisé, mais leur type a été déduit de leur nom. Par exemple, si le nom de la variable se termine par $alors c'est une chaîne (c'est quelque chose que vous pouvez voir même dans les noms de méthode jusqu'à VB6, par exemple Mid$). Et donc, vous avez utilisé Dimuniquement pour donner une dimension aux tableaux (remarquez que ReDimredimensionne les tableaux).


Vraiment, est -ce important ? Je veux dire, c'est un mot-clé qui a sa signification dans un langage artificiel. Il n'est pas nécessaire que ce soit un mot en anglais ou dans une autre langue naturelle. Cela peut donc signifier tout ce que vous voulez, tout ce qui compte, c'est que cela fonctionne.

Quoi qu'il en soit, ce n'est pas complètement vrai. Étant donné que BASIC fait partie de notre culture, et comprendre pourquoi il en est ainsi - je l'espère - contribuera à améliorer notre vision du monde.


Je m'assois de mon ordinateur avec le désir d'aider à préserver ce petit morceau de notre culture qui semble perdu, remplacé par notre devinette de ce que c'était. Et donc, j'ai creusé MSDN à la fois les CD actuels et anciens de la version 1998. J'ai également recherché la documentation de l'ancien QBasic [J'ai dû utiliser DOSBox] et j'ai réussi à obtenir un manuel de Darthmouth, tout pour trouver comment ils parlaient Dim. Pour ma déception, ils ne disent pas ce qui Dimreprésente, et disent seulement comment cela est utilisé.

Mais avant que mon espoir ne faiblisse, j'ai réussi à trouver ce guide d'utilisation du système de micro-ordinateur BBC (qui prétend être de 1984, et je ne veux pas en douter). Le micro-ordinateur BBC a utilisé une variante de BASIC appelée BBC BASIC et elle est décrite dans le document. Même si, il ne dit pas ce qui signifie Dim, il dit (à la page 104):

... vous pouvez dimensionner N $ pour avoir autant d'entrées que vous le souhaitez. Par exemple, DIM N $ (1000) créerait un tableau de chaînes avec de l'espace pour 1000 noms différents.

Comme je l'ai dit, il ne dit pas que cela Dimsignifie dimension, mais sert de preuve pour montrer que l'association Dimavec Dimensionétait une chose courante au moment de la rédaction de ce document.

Maintenant, j'ai eu une surprise enrichissante plus tard (à la page 208), le titre de la section qui décrit le mot-clé DIM (note: qui n'est pas répertorié dans le contenu) dit:

Dimension DIM d'un tableau

Donc, je n'ai pas la citation « Dim signifie ... » mais je pense qu'il est clair que tout être humain décent qui est capable de lire les documents considérerons que la Dimdimension des moyens.


Avec un espoir renouvelé, j'ai décidé de chercher comment a Dimété choisi. Encore une fois, je n'ai pas trouvé de compte sur le sujet, j'ai quand même pu trouver une citation définitive:

Avant de pouvoir utiliser un tableau, vous devez le définir dans une instruction DIM (dimension).

Vous pouvez le trouver dans les guides de l'utilisateur en ligne de True BASIC sur la page Web de True BASIC inc, une société fondée par Thomas Eugene Kurtz , co-auteur de BASIC.


Donc, en réalité, Dimc'est un raccourci pour DIMENSION, et oui. Cela existait auparavant dans FORTRAN, il est donc probable qu'il ait été choisi par l'influence de FORTRAN comme Patrick McDonald l'a dit dans sa réponse .


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Theraot
la source
1
J'ai aussi entendu "déclarer en mémoire".
jocull
"Vraiment, est -ce important ?" Blague sous-estimée. De plus, je vais maintenant insister auprès des gens pour dire que c'est ce Dimqui représente réellement
Jacob Stamm
30

C'est l'abréviation de Dimension, car il était à l'origine utilisé dans BASIC pour spécifier la taille des tableaux.

DIM - (abréviation de dimension) définit la taille des tableaux

Réf: http://en.wikipedia.org/wiki/Dartmouth_BASIC

Une partie du code source du compilateur BASIC d'origine, où il sauterait lors de la recherche d'une DIMcommande, dans laquelle vous pouvez clairement voir l'intention d'origine du mot clé:

DIM    LDA XR01             BACK OFF OBJECT POINTER
       SUB N3
       STA RX01
       LDA L        2       GET VARIABLE TO BE DIMENSIONED
       STA 3
       LDA S        3
       CAB N36              CHECK FOR $ ARRAY
       BRU *+7              NOT $
       ...

Réf: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf

Plus tard, il a été utilisé pour déclarer toutes sortes de variables, lorsque la possibilité de spécifier le type des variables a été ajoutée dans les implémentations plus récentes.

Guffa
la source
15

Cotez une variable, vous dites au compilateur que vous aurez besoin d'une variable de ce type à un moment donné.

JoshBerke
la source
13

Il signifie Dimension, mais est généralement lu comme «Créer une variable» ou «Allouer de l'espace pour cela».

Robert Harvey
la source
7

DIM signifie Declaration In Memory DIM x As New Integer crée un espace en mémoire où la variable x est stockée

MonstaP
la source
6

À l'époque, la mémoire DIM réservait la baie et lorsque la mémoire était limitée, vous deviez faire attention à la façon dont vous l'utilisiez. J'ai écrit une fois (en 1981) un programme BASIC sur TRS-80 Model III avec 48 Ko de RAM. Il ne fonctionnerait pas sur une machine similaire avec 16 Ko de RAM jusqu'à ce que je diminue la taille du tableau en modifiant l'instruction DIM

Thornton
la source
4

Abréviation de Dimension. C'est un type de variable. Vous déclarez (ou "dites" à Visual Basic) que vous configurez une variable avec ce mot.

AbdulAziz
la source
3

Le mot-clé Dim est facultatif, lorsque nous l'utilisons avec des modificateurs - Public, Protégé, Ami, Ami protégé, Privé, Partagé, Ombres, Statique, En lecture seule, etc. par exemple - Static nTotal As Integer

Pour le type de référence, nous devons utiliser un nouveau mot-clé pour créer la nouvelle instance de la classe ou de la structure. par exemple Dim lblTop As New System.Windows.Forms.Label.

L'instruction Dim peut être utilisée sans type de données lorsque vous définissez Option Infer sur On . Dans ce cas, le compilateur déduit le type de données d'une variable du type de son expression d'initialisation. Exemple :

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

La déclaration ci-dessus équivaut à- Dim nExpVar As Integer

Chandralal
la source
Bienvenue dans StackOverflow et merci pour cette réponse, mais elle ne s'étend pas vraiment sur les nombreuses autres réponses qui donnent toutes la même réponse.
Deanna