Bagaimana cara kompiler bekerja? pertama tahap preprocessing dimana akan di ekpansi source codenya.Lalu kedua yaitu tahap compilation, disini source code tersebut akan diubah menjadi bahasa assembly. Tahap ketiga adalah Assembling yaitu konversi dari bahasa assembly menjadi kode mesin.. Terakhir Linking yaitu object kode mesin di link dengan file yang lain (e.g. executable).
Monday, April 30, 2012
Pointer Problems
Example of How Pointer Works |
Keadaan ketika pointer menunjuk ke variabel heap-dynamic yang telah di deallocated (tidak dapat diakses lagi disebut Dangling Pointers.
Lost heap-dynamic variable yaitu Alocated heap-dynamic variable yang tidak dapat lagi diakses oleh pemrogram tersebut.
Untuk Masalah Dangling Pointers ada solusinya yaitu :
- Tombstone : menambahkan sel heap yang berupa pointer ke heap-dynamic variable. Variabel pointer aktual hanya menunjuk ke tombstone. Jika variabel heap-dynamic di de-allocated, tombstone tetap ada tetapi di-set ke nil.
- Locks-and-keys : nilai pointer disajikan sebagai pasangan. Variabel heap-dynamic disajikan sebagai variabel plus sel nilai integer lock. Jika variabel heap-dynamic dialokasi, nilai lock di-create dan diletakan di sel lock dan sel key.
Sunday, April 29, 2012
Type Checking , Strongly Typed , Coercion , Cast , Narrowing & Widening Conversion
Type Checking adalah aktivitas untuk meyakinkan bahwa operand suatu operator adalah tipe yang kompatibel (bisa digunakan oleh operator atau dibolehkan secara aturan yang berlaku).Strongly Typed adalah jika semua bentuk error selalu dideteksi oleh bahasa pemograman.
Coercion adalah operand kompatibel yang dibolehkan oleh aturan yang
berlaku untuk dikonversi secara implisit oleh kompilator menjadi tipe
yang legal.Cast adalah mirip dengan coercion namun dikonversi secara eksplisit oleh kompilatornya agar menjadi tipe yang legal.
Narrowing Conversion adalah konversi objek ke tipe baru yang tidak mengakomodasi semua nilai dari tipe aslinya. contoh adalah float ke int dimana nilai desimal float tidak dimasukan ke int.Widening Conversion sama seperti Narrowing namun konversi mancakup aproksimasi semua nilai dari tipe asli. contoh int ke float.
Operator Overloading
Bahasa C / C++ mempunyai kelebihan dari bahasa yang lain, yakni Operator Overloading. Kemampuan tersebut berguna untuk memberitahu compiler bagaimana melakukan suatu operasi ketika operator yang sama digunakan oleh satu variabel atau lebih.
Contoh simpel Operator Overloading :
int volume(int a, int b);
void volume(int c);
terlihat bahwa "volume" punya 2 nama variabel yang sama namun fungsinya beda.
Arsitektur Von Neumann
Jika anda sedang mempelajari Konsep Bahasa Pemograman pastinya istilah Von Neumann sangat akrab dipikiran anda. Istilah arsitektur Von Neumann (Von Neumann architecture / model) berasal dari seorang ilmuwan komputer John von Neumann 30 Juni 1945. Arsitektur Von Neumann menggambarkan tentang desain arsitektur untuk sebuah komputer elektronik digital terdiri empat bagian utama yaitu :
- Arithmetic Logic Unit (ALU).
- Control Unit yang menampung instruction register dan program counter.
- Memory untuk menyimpan data dan instruksi juga mass external storage.
- Mekanisme input dan output.
Subscribe to:
Posts (Atom)