Cosa significa DIM in Visual Basic e BASIC?


Risposte:


318

Dim originariamente (in BASIC) stava per Dimension, poiché veniva usato per definire le dimensioni di un array.

(L'implementazione originale di BASIC era Dartmouth BASIC, che discendeva da FORTRAN, dove è precisato DIMENSION.)

Al giorno d'oggi, Dim viene utilizzato per definire qualsiasi variabile, non solo array, quindi il suo significato non è più intuitivo.


64
un po 'di background potrebbe aiutare. Nelle prime versioni di base le uniche variabili che dovevano essere dichiarate erano le matrici. La parola chiave "Dim" è stata utilizzata per impostare le dimensioni di questo array.
Chris Simpson,

26
Ricordo di aver letto una guida di programmazione gw-basic nei primi anni '80 e ricordo esplicitamente che spiegava DIM che significa Dichiarare in memoria. La lettura della guida di base di Darthmouth del '64 prevede che le istruzioni LET e READ assegnino le variabili e i loro valori e, successivamente, nel '68 DIM è incluso e in effetti viene utilizzato per le matrici. bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf
RandyMorris

4
Una cosa da tenere a mente è che, nello sviluppo iniziale del linguaggio, era comune sovraccaricare una parola chiave per avere significati multipli. Poiché, nell'originale di base, "Dim" era già una parola chiave utilizzata per dichiarare le variabili di array, la parola chiave è stata estesa per includere la dichiarazione di tutte le variabili. L'introduzione di una nuova parola chiave è stata evitata per diversi motivi, uno dei quali è che non volevano interrompere i programmi esistenti che già utilizzavano la nuova parola chiave come nome di variabile. Oggi abbiamo tecnologie di analisi più sofisticate e computer più veloci, non vediamo questo tipo di limitazioni.
zumalifeguard,

3
Ad esempio, in una versione successiva di Basic, come Visual Basic, un tipo e una variabile potrebbero avere lo stesso nome. Un ottimo esempio di parola chiave che è stata sovraccaricata troppo è "statico" in C ++. Significa cose diverse in contesti diversi.
zumalifeguard,

Per coloro che guardano l'ottimo manuale BASIC a cui è collegato @RandyMorris, il primo riferimento a DIM è nella pagina numerata 21 o nella pagina 26 del PDF stesso. La definizione più formale è nella pagina numerata 37 o 41 nel PDF stesso.
John Cummings,

120

Dim gli sono stati attribuiti significati diversi.

Ho trovato riferimenti sul Dimsignificato di "Dichiarare in memoria" , il riferimento più rilevante è un documento su Dim Statement pubblicato su Oracle come parte del riferimento linguistico Siebel VB. Certo, potresti obiettare che se non dichiari le variabili in memoria dove lo fai? Forse "Dichiarare nel modulo" è una buona alternativa considerando come Dimviene utilizzato.

Secondo me, "Declare In Memory" è in realtà un mnemonico , creato per facilitare l'apprendimento Dim. Vedo "Dichiarare in memoria" come un significato migliore in quanto descrive ciò che fa nelle attuali versioni del linguaggio, ma non è il significato corretto.

In effetti, alle origini di Basic Dimveniva usato solo per dichiarare array. Per le variabili regolari non è stata utilizzata alcuna parola chiave, invece il loro tipo è stato dedotto dal loro nome. Ad esempio, se il nome della variabile termina, $allora è una stringa (questo è qualcosa che potresti vedere anche nei nomi dei metodi fino a VB6, per esempio Mid$). E così, hai usato Dimsolo per dare dimensione alle matrici (nota che ReDimridimensiona le matrici).


Davvero, importa ? Voglio dire, è una parola chiave che ha il suo significato all'interno di un linguaggio artificiale. Non deve essere una parola in inglese o in qualsiasi altra lingua naturale. Quindi potrebbe significare qualunque cosa tu voglia, tutto ciò che conta è che funzioni.

Comunque, questo non è del tutto vero. Poiché BASIC fa parte della nostra cultura, e capire perché è diventato così com'è - spero - contribuirà a migliorare la nostra visione del mondo.


Mi siedo dal mio computer con il desiderio di aiutare a preservare questo piccolo pezzo della nostra cultura che sembra perduto, sostituito dalla nostra ipotesi di cosa fosse. E così, ho scavato MSDN sia attuali che vecchi CD dalla versione del 1998. Ho anche cercato la documentazione per il vecchio QBasic [Ho dovuto usare DOSBox] e sono riuscito a ottenere un manuale di Darthmouth, tutti per scoprire come parlano Dim. Per la mia delusione, non dicono ciò che Dimrappresenta e dicono solo come viene utilizzato.

Ma prima che la mia speranza fosse debole, sono riuscito a trovare questa guida all'uso del sistema di microcomputer della BBC (che afferma di essere del 1984, e non voglio dubitarne). Il microcomputer della BBC ha usato una variante di BASIC chiamata BBC BASIC ed è descritta nel documento. Anche se, non dice cosa significa Dim, dice (a pagina 104):

... puoi quotare N $ per avere tutte le voci che vuoi. Ad esempio, DIM N $ (1000) creerebbe una matrice di stringhe con spazio per 1000 nomi diversi.

Come ho detto, non dice che Dimsta per dimensione, ma serve come prova per dimostrare che l'associazione Dimcon Dimensionera una cosa comune al momento della stesura di quel documento.

Ora, ho ricevuto una sorpresa gratificante più avanti (a pagina 208), il titolo della sezione che descrive la parola chiave DIM (nota: che non è elencato nei contenuti) dice:

Dimensione DIM di un array

Quindi, non ho ricevuto la citazione "Dim significa per ..." ma immagino sia chiaro che qualsiasi essere umano decente in grado di leggere quel documento considererà che Dimsignifica dimensione.


Con rinnovata speranza, ho deciso di cercare come è Dimstato scelto. Ancora una volta, non ho trovato un account sull'argomento, ma sono riuscito a trovare un preventivo definitivo:

Prima di poter utilizzare un array, è necessario definirlo in un'istruzione DIM (dimensione).

Puoi trovarlo come parte delle Guide per utenti online True BASIC nella pagina web di True BASIC inc, una società fondata da Thomas Eugene Kurtz , coautore di BASIC.


Quindi, nella realtà, Dimè una scorciatoia per DIMENSION, e sì. In precedenza esisteva in FORTRAN, quindi è probabile che sia stato scelto dall'influenza di FORTRAN, come ha affermato Patrick McDonald nella sua risposta .


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)

1
Ho sentito anche "dichiarare in memoria".
luglio

"Davvero, importa ?" Scherzo sottovalutato. Inoltre, ora insisterò alla gente che questo è ciò che Dimrealmente rappresenta
Jacob Stamm

30

È l'abbreviazione di Dimensione, poiché era originariamente utilizzata in BASIC per specificare la dimensione delle matrici.

DIM - (abbreviazione di dimensione) definisce la dimensione delle matrici

Rif: http://en.wikipedia.org/wiki/Dartmouth_BASIC

Una parte del codice sorgente del compilatore BASIC originale, dove salterebbe quando trova un DIMcomando, in cui puoi vedere chiaramente l'intenzione originale per la parola chiave:

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 $
       ...

Rif: http://dtss.dartmouth.edu/scans/BASIC/BASIC%20Compiler.pdf

Successivamente è stato utilizzato per dichiarare tutti i tipi di variabili, quando è stata aggiunta la possibilità di specificare il tipo per le variabili nelle implementazioni più recenti.


15

Dimensiona una variabile, in pratica stai dicendo al compilatore che ad un certo punto avrai bisogno di una variabile di questo tipo.


13

È l'acronimo di Dimensione, ma generalmente viene letto come "Crea variabile" o "Alloca spazio per questo".



7

DIM sta per Dichiarazione in memoria DIM x As New Integer crea uno spazio in memoria in cui è memorizzata la variabile x


6

Ai giorni nostri la memoria riservata DIM per l'array e quando la memoria era limitata, bisognava fare attenzione a come la si usava. Una volta ho scritto (nel 1981) un programma BASIC su TRS-80 Model III con 48Kb di RAM. Non funzionerebbe su un computer simile con 16 KB di RAM fino a quando non ho ridotto la dimensione dell'array modificando l'istruzione DIM


4

Abbreviazione di dimensione. È un tipo di variabile. Dichiarate (o "comunicate" a Visual Basic) che state impostando una variabile con questa parola.


3

La parola chiave Dim è facoltativa, quando la stiamo usando con modificatori: pubblica, protetta, amica, amica protetta, privata, condivisa, ombre, statica, sola lettura ecc. Ad es. - Static nTotal As Integer

Per il tipo di riferimento, dobbiamo usare una nuova parola chiave per creare la nuova istanza della classe o della struttura. es Dim lblTop As New System.Windows.Forms.Label.

L'istruzione dim può essere utilizzata senza un tipo di dati quando si imposta Opzione Infer su Attivo . In tal caso il compilatore deduce il tipo di dati di una variabile dal tipo della sua espressione di inizializzazione. Esempio :

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

L'affermazione sopra è equivalente a- Dim nExpVar As Integer


Benvenuto in StackOverflow e grazie per questa risposta, ma non si espande davvero sulle numerose altre risposte che danno tutte la stessa risposta.
Deanna,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.