pengembangan-web-mp-pd.com

Apa itu tabel simbol?

Adakah yang bisa menggambarkan tabel simbol dalam konteks C dan C++?

78
jdt141

Ada dua arti umum dan terkait dari tabel simbol di sini.

Pertama, ada tabel simbol di file objek Anda. Biasanya, kompiler C atau C++ mengkompilasi file sumber tunggal ke file objek dengan ekstensi .obj atau .o. Ini berisi kumpulan kode yang dapat dieksekusi dan data yang dapat diproses oleh linker menjadi aplikasi yang berfungsi atau pustaka bersama. File objek memiliki struktur data yang disebut tabel simbol di dalamnya yang memetakan berbagai item dalam file objek ke nama yang dapat dipahami oleh linker. Jika Anda memanggil fungsi dari kode Anda, kompiler tidak memasukkan alamat akhir rutin dalam file objek. Alih-alih, ini menempatkan nilai placeholder ke dalam kode dan menambahkan catatan yang memberitahu linker untuk mencari referensi di berbagai tabel simbol dari semua file objek yang sedang diproses dan menempelkan lokasi terakhir di sana.

Kedua, ada juga tabel simbol di pustaka bersama atau DLL. Ini diproduksi oleh tautan dan berfungsi untuk memberi nama semua fungsi dan item data yang terlihat oleh pengguna perpustakaan. Ini memungkinkan sistem untuk melakukan run-time linking, menyelesaikan referensi terbuka ke nama-nama tersebut ke lokasi di mana perpustakaan dimuat dalam memori.

Jika Anda ingin mempelajari lebih lanjut, saya sarankan buku bagus John Link "Linkers and Loaders" . tautan teks

73
Ben Combee

Secara singkat, ini adalah pemetaan nama yang Anda tetapkan variabel ke alamatnya di memori, termasuk metadata seperti jenis, cakupan, dan ukuran. Ini digunakan oleh kompiler.

Itu secara umum, bukan hanya C [++] *. Secara teknis, itu tidak selalu termasuk alamat memori langsung. Itu tergantung pada bahasa apa, platform, dll. Yang ditargetkan oleh kompiler.

22
Steve Landey

Di Linux, Anda dapat menggunakan perintah: 

nm [file objek]

untuk daftar tabel simbol file objek itu.

13
hdn

Tabel simbol adalah daftar "simbol" dalam suatu program/unit. Simbol paling sering adalah nama-nama variabel atau fungsi. Tabel simbol dapat digunakan untuk menentukan di mana dalam variabel memori atau fungsi akan berada.

8
Joe Schneider

Lihatlah entri Symbol Table wikipedia.

4
Allan Wind

Tabel simbol adalah struktur data penting yang dibuat dan dikelola oleh kompiler untuk menyimpan informasi tentang terjadinya berbagai entitas seperti nama variabel, nama fungsi, objek, kelas, antarmuka, dll.

0
rashedcs