CLU adalah bahasa pemrograman yang dibuat di MIT oleh Barbara Liskov dan murid-muridnya antara 1974 dan 1975. Itu terkenal karena penggunaan konstruktor untuk tipe data abstrak yang termasuk kode yang beroperasi pada mereka, langkah kunci ke arah berorientasi objek pemrograman (OOP). Namun banyak fitur lain dari OOP (sengaja) hilang, terutama warisan.
Cluster
The sintaks dari CLU didasarkan pada ALGOL , maka titik awal untuk sebagian besar desain bahasa baru. Tambahan utama adalah konsep cluster , sistem ekstensi tipe CLU dan akar nama bahasa (CLUster). Cluster umumnya sesuai dengan konsep "objek" dalam bahasa OO, dan kira-kira memiliki sintaks yang sama. Sebagai contoh, berikut adalah sintaks CLU untuk cluster yang mengimplementasikan bilangan kompleks :
complex_number = cluster adalah add , kurangi , gandakan , ...
rep = record [ real_part : real , imag_part : real ]
add = proc ... end add ;
kurangi = proc ... akhiri kurangi ;
multiply = proc ... end multiply ;
...
end complex_number ;
Nama-nama kluster bersifat global, dan tidak ada mekanisme namespace yang disediakan untuk kelompok grup atau memungkinkan mereka dibuat "secara lokal" di dalam kluster lainnya.
CLU tidak melakukan konversi tipe implisit. Dalam sebuah cluster, tipe konversi eksplisit 'atas' dan 'turun' perubahan antara tipe abstrak dan representasi. Ada tipe universal 'apa saja', dan prosedur memaksa [] untuk memeriksa bahwa suatu objek adalah tipe tertentu. Objek mungkin bisa berubah atau tidak berubah, yang terakhir menjadi "tipe dasar" seperti bilangan bulat.
Fitur lainnya
Fitur kunci lain dari sistem tipe CLU adalah iterator , yang mengembalikan objek dari koleksi satu demi satu. Iterator adalah "kotak hitam" yang menawarkan API yang identik tidak peduli data apa yang digunakan. Jadi iterator untuk koleksi complex_numbers akan identik dengan array untuk integers. Iterator sekarang menjadi fitur umum dari sebagian besar bahasa modern (Lihat Iterator ) .
CLU juga mencakup penanganan pengecualian , berdasarkan berbagai upaya dalam bahasa lain; pengecualian dimunculkan menggunakan signaldan ditangani dengan except. Anehnya, mengingat fokus pada desain tipe, CLU tidak menawarkan tipe yang disebutkan , atau cara yang jelas untuk membuatnya.
Fitur khas terakhir dalam CLU adalah penugasan ganda, di mana lebih dari satu variabel dapat muncul di sisi kiri operator penugasan . Misalnya, menulis x,y = y,xakan menukar nilai xdan y. Dengan cara yang sama, fungsi dapat mengembalikan beberapa nilai, seperti x,y,z = f(t).
Semua objek dalam program CLU hidup di heap, dan manajemen memori otomatis.
Mempengaruhi bahasa pemrograman lain
· Python dan Ruby [ 1 ] meminjam beberapa konsep dari CLU (seperti panggilan dengan berbagi, pernyataan hasil , dan beberapa tugas [ rujukan? ] )
· CLU dan Ada adalah inspirasi utama untuk template C ++ .
· Mekanisme penanganan pengecualian CLU juga memengaruhi bahasa yang lebih baru seperti Java dan C ++.
· Semua objek dalam program CLU hidup di heap, dan manajemen memori otomatis. Elemen-elemen ini secara langsung mempengaruhi Java [ rujukan? ] .
· Python, C # , dan Sather termasuk iterator , yang pertama kali muncul di CLU.
· Lua mengambil banyak penugasan dan beberapa pengembalian dari panggilan fungsi dari CLU. [ 2 ]
SET REGISTER
PENGERTIAN REGISTER
Register adalah sebuah tempat penampungan sementara untuk data-data yang akan diolah oleh prosesor, dan dibentuk oleh 16 titik elektronis di dalam chip mikroprosessor itu sendiri. Dengan adanya tempat-tempat penampungan data sementara ini, proses pengolahan akan bisa dilakukan secara jauh lebih cepat dibandingkan apabila data-data tersebut harus diambil langsung dari lokasi-lokasi memori. Register-register tersebut sebagai register internal dan terdiri dari empat belas register dan keseluruhannya dapat dibagi dalam beberapa jenis, yaitu : Register Segment Terdiri dari 4 register, yaitu Code Segment, Data Segment, Stack Segment, dan Extra Segment.
1. Segment adalah bagian dari ruang memori yang berkapasitas 64 kilobyte (65536 byte) dan digunakan secara spesifik untuk menempatkan jenis-jenis data tertentu. Misalnya code segment digunakan oleh program dan instruksi-instruksi (code), data segment dialokasikan untuk data-data, stack segment dipakai untuk menyediakan ruang untuk stack, yang berfungsi untuk penyimpanan data dan alamat sementara pada saat program utama sedang mengerjakan program percabangan (subroutine, prosedur, dan sebagainya) dan extra segment sebagaimana halnya data segment juga dipergunakan sebagai penempatan data-data.
2.Register Data Register data adalah register yang mengandung informasi yang akan, sedang atau telah diolah oleh komputer. Pada 8088 register ini diwujudkan oleh AX, BX, CX dan BX (sebagai general purpose register), sehubungan dengan fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaatkan untuk membantu proses-proses pengolahan data didalam internal mikroprosessor.
3.Register Index dan Pointer Register jenis pointer dan register index merupakan register-register yang memuat alamat offset dari segment-segment tertentu, yang terdiri dari stack pointer (SP) dan base pointer (BP) yang digunakan sebagai pemegang nilai offset dari stack segment, sedangkan source index (SI) dan destination index (DI) berisi nilai offset dari data segment. Instruction pointer (IP) merupakan pemegang nilai offset dari code segment dan fungsinya mirip dengan program counter (PC) pada prosesor-prosesor 8 bit. Hanya bedanya, program counter langsung mengalamati instruksi-instruksi yang ada dimemori dengan nilainya sendiri, IP harus bekerja sama dengan register CS untuk dapat membentuk pengalamatan 20 bit dalam format segment offset. Register Status Register ini mempunyai struktur yang berbeda dengan register-register lainnya, yang dibentuk dari sebuah register 16 bit, yang masing-masing bitnya memberikan informasi tertentu tentang keadaan-keadaan yang terjadi pada prosesor, sebagai akibat proses pengolahan data Informasi yang diwakili oleh sebuah bit pada register status disebut 'flag'. Hanya 9 dari keseluruhan 16 bit yang dipakai oleh register status sebagai tanda kondisi-kondisi prosesor.
Referensi
http://bahasa-pemrograman.kerbau.web.id/IT/1586-1468/CLU_6872_bahasa-pemrograman-kerbau.html
http://bahasa-pemrograman.kerbau.web.id/IT/1586-1468/CLU_6872_bahasa-pemrograman-kerbau.html
http://nyekripkomputer.blogspot.com/2015/09/pengertian-register-dan-jenis-jenisnya.html
Tidak ada komentar:
Posting Komentar