Apa artinya DIM dalam Visual Basic dan BASIC?

Jawaban:

318

Dim awalnya (dalam BASIC) adalah Dimensi, karena digunakan untuk menentukan dimensi array.

(Implementasi awal BASIC adalah Dartmouth BASIC, yang diturunkan dari FORTRAN, di mana DIMENSI dijabarkan.)

Saat ini, Dim digunakan untuk mendefinisikan variabel apa pun, bukan hanya array, jadi artinya tidak intuitif lagi.

Patrick McDonald
sumber
64
sedikit latar belakang mungkin bisa membantu. Dalam rilis awal dari basic, satu-satunya variabel yang perlu dideklarasikan adalah array. Kata kunci "Dim" digunakan untuk mengatur dimensi array ini.
Chris Simpson
26
Saya ingat pernah membaca panduan pemrograman gw-basic di awal 80-an dan saya secara eksplisit mengingatnya menjelaskan DIM yang berarti Declare In Memory. Membaca panduan Dasar Darthmouth dari '64 memiliki pernyataan LET dan BACA menetapkan variabel dan nilai-nilai mereka dan kemudian di '68 DIM disertakan dan pada kenyataannya digunakan untuk array. bitsavers.org/pdf/dartmouth/BASIC_4th_Edition_Jan68.pdf
RandyMorris
4
Satu hal yang perlu diingat adalah bahwa, dalam pengembangan bahasa awal, adalah hal biasa untuk membebani kata kunci untuk memiliki banyak makna. Karena, dalam Basic asli, "Dim" sudah merupakan kata kunci yang digunakan untuk mendeklarasikan variabel array, kata kunci tersebut diperluas untuk mencakup mendeklarasikan semua variabel. Memperkenalkan kata kunci baru dihindari karena beberapa alasan, salah satunya adalah mereka tidak ingin merusak program yang sudah ada yang menggunakan kata kunci baru sebagai nama variabel. Saat ini kami memiliki teknologi penguraian yang lebih canggih dan komputer yang lebih cepat, kami tidak melihat batasan seperti itu.
zumalifeguard
3
Misalnya, di Basic kemudian, seperti Visual Basic, tipe dan variabel bisa nama yang sama. Sebuah contoh yang bagus dari kata kunci yang terlalu banyak kelebihan adalah "statis" di C ++. Itu berarti hal yang berbeda dalam konteks yang berbeda.
zumalifeguard
Bagi mereka yang melihat manual BASIC @RandyMorris yang ditautkan, referensi pertama untuk DIM ada di halaman bernomor 21 atau halaman 26 dalam PDF itu sendiri. Definisi yang lebih formal ada di halaman bernomor 37 atau 41 dalam PDF itu sendiri.
John Cummings
120

Dim memiliki makna berbeda yang dikaitkan dengannya.

Saya telah menemukan referensi tentang Dimarti "Deklarasikan Dalam Memori" , referensi yang lebih relevan adalah dokumen tentang Dim Statement yang diterbitkan Oracle sebagai bagian dari Referensi Bahasa Siebel VB. Tentu saja, Anda mungkin berpendapat bahwa jika Anda tidak mendeklarasikan variabel dalam memori, di mana Anda melakukannya? Mungkin "Deklarasikan dalam Modul" adalah alternatif yang baik mengingat bagaimana Dimdigunakan.

Menurut pendapat saya, "Declare In Memory" sebenarnya adalah mnemonik , dibuat untuk mempermudah mempelajari cara menggunakannya Dim. Saya melihat "Nyatakan dalam Memori" sebagai makna yang lebih baik karena menggambarkan apa yang dilakukannya dalam versi bahasa saat ini, tetapi itu bukan makna yang tepat.

Bahkan, pada asal-usul Basic Dimhanya digunakan untuk mendeklarasikan array. Untuk variabel biasa, tidak ada kata kunci yang digunakan, melainkan jenisnya disimpulkan dari namanya. Misalnya, jika nama variabel berakhir dengan $maka itu adalah string (ini adalah sesuatu yang bisa Anda lihat bahkan dalam nama metode hingga VB6, misalnya Mid$). Jadi, Anda Dimhanya memberi dimensi pada array (pemberitahuan yang ReDimmengubah ukuran array).


Benarkah, Apakah Itu Penting ? Maksud saya, itu adalah kata kunci yang artinya di dalam bahasa buatan. Tidak harus kata dalam bahasa Inggris atau bahasa alami lainnya. Jadi itu bisa berarti apa pun yang Anda inginkan, yang penting adalah itu berfungsi.

Bagaimanapun, itu tidak sepenuhnya benar. Karena BASIC adalah bagian dari budaya kita, dan memahami mengapa hal itu terjadi sebagaimana adanya - saya harap - akan membantu meningkatkan visi kita tentang dunia.


Saya duduk dari komputer saya dengan keinginan untuk membantu melestarikan bagian kecil dari budaya kita yang tampaknya hilang, digantikan oleh dugaan kita tentang apa itu. Jadi, saya telah menggali MSDN CD saat ini dan yang lama dari versi 1998. Saya juga mencari dokumentasi QBasic lama [Harus menggunakan DOSBox] dan berhasil mendapatkan beberapa manual Darthmouth, semua untuk menemukan bagaimana mereka berbicara tentang Dim. Untuk kekecewaan saya, mereka tidak mengatakan apa artinya Dimberdiri, dan hanya mengatakan bagaimana itu digunakan.

Tetapi sebelum harapan saya redup, saya berhasil menemukan Panduan Digunakan Sistem Mikro BBC ini (yang mengklaim berasal dari tahun 1984, dan saya tidak ingin meragukannya). BBC Microcomputer menggunakan varian BASIC yang disebut BBC BASIC dan dijelaskan dalam dokumen. Meskipun demikian, ia tidak mengatakan apa artinya Dim, katanya (di halaman 104):

... Anda dapat membuat dimensi N $ untuk memiliki sebanyak mungkin entri yang Anda inginkan. Misalnya, DIM N $ (1000) akan membuat array string dengan ruang untuk 1000 nama berbeda.

Seperti yang saya katakan, itu tidak mengatakan bahwa Dimsingkatan dimensi, tetapi berfungsi sebagai bukti untuk menunjukkan bahwa bergaul Dimdengan Dimensionadalah hal yang umum pada saat menulis dokumen itu.

Sekarang, saya mendapat kejutan yang bermanfaat kemudian (pada halaman 208), judul untuk bagian yang menggambarkan kata kunci DIM (catatan: yang tidak tercantum dalam konten) mengatakan:

Dimensi array DIM

Jadi, saya tidak mendapatkan kutipan "Dim berarti ..." tetapi saya kira jelas bahwa setiap manusia yang layak yang dapat membaca dokumen itu akan menganggap itu Dimberarti dimensi.


Dengan harapan baru, saya memutuskan untuk mencari tentang bagaimana Dimterpilih. Sekali lagi, saya tidak menemukan akun pada subjek, masih saya dapat menemukan kutipan yang pasti:

Sebelum Anda dapat menggunakan array, Anda harus mendefinisikannya dalam pernyataan DIM (dimensi).

Anda dapat menemukan ini sebagai bagian dari Panduan Pengguna Online True BASIC di halaman web True BASIC inc, sebuah perusahaan yang didirikan oleh Thomas Eugene Kurtz , penulis bersama BASIC.


Jadi, dalam kenyataan, Dim adalah singkatan untuk DIMENSION, dan ya. Itu ada di FORTRAN sebelumnya, jadi kemungkinan besar itu diambil oleh pengaruh FORTRAN sebagaimana dikatakan Patrick McDonald dalam jawabannya .


Dim sum as string = "this is not a chinese meal" REM example usage in VB.NET ;)
Theraot
sumber
1
Saya pernah mendengar "menyatakan dalam memori" juga.
jocull
"Sungguh, Apakah Itu Penting ?" Lelucon yang kurang dihargai. Juga saya sekarang akan mendesak orang-orang bahwa inilah yang Dimsebenarnya merupakan kepanjangan dari
Jacob Stamm
30

Ini kependekan dari Dimension, seperti yang awalnya digunakan dalam BASIC untuk menentukan ukuran array.

DIM - (kependekan untuk dimensi) menentukan ukuran array

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

Bagian dari kode sumber kompiler BASIC asli, di mana ia akan melompat ketika menemukan DIMperintah, di mana Anda dapat dengan jelas melihat maksud asli untuk kata kunci:

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

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

Kemudian mulai digunakan untuk mendeklarasikan semua jenis variabel, ketika kemungkinan untuk menentukan jenis variabel ditambahkan dalam implementasi yang lebih baru.

Guffa
sumber
15

Dimensi variabel, pada dasarnya Anda memberi tahu kompiler bahwa Anda akan memerlukan variabel jenis ini di beberapa titik.

JoshBerke
sumber
13

Itu singkatan Dimensi, tetapi umumnya dibaca sebagai "Buat Variabel," atau "Alokasikan Ruang untuk Ini."

Robert Harvey
sumber
7

DIM adalah singkatan dari Declaration In Memory DIM x As New Integer menciptakan ruang di memori tempat variabel x disimpan

MonstaP
sumber
6

Kembali pada hari memori cadangan DIM untuk array dan ketika memori terbatas Anda harus berhati-hati bagaimana Anda menggunakannya. Saya pernah menulis (pada 1981) program BASIC pada TRS-80 Model III dengan 48Kb RAM. Itu tidak akan berjalan pada mesin yang sama dengan 16Kb RAM sampai saya mengurangi ukuran array dengan mengubah pernyataan DIM

Thornton
sumber
4

Kependekan dari Dimensi. Ini adalah jenis variabel. Anda menyatakan (atau "memberi tahu" Visual Basic) bahwa Anda sedang mengatur variabel dengan kata ini.

AbdulAziz
sumber
3

Kata kunci Dim adalah opsional, ketika kita menggunakannya dengan pengubah- Publik, Terlindungi, Teman, Teman Dilindungi, Pribadi, Dibagikan, Bayangan, Statis, Hanya Baca dll, mis. - Static nTotal As Integer

Untuk tipe referensi, kita harus menggunakan kata kunci baru untuk membuat instance kelas atau struktur yang baru. mis Dim lblTop As New System.Windows.Forms.Label.

Pernyataan redup dapat digunakan tanpa tipe data saat Anda menyetel Opsi Masuk ke Hidup . Dalam hal ini kompiler menyimpulkan tipe data variabel dari jenis ekspresi inisialisasi. Contoh:

Option Infer On

Module SampleMod

Sub Main()

 Dim nExpVar = 5

Pernyataan di atas setara dengan- Dim nExpVar As Integer

Chandralal
sumber
Selamat datang di StackOverflow dan terima kasih atas jawaban ini, tetapi itu tidak benar-benar berkembang pada banyak jawaban lain yang semuanya memberikan jawaban yang sama.
Deanna