topbella

Rabu, 19 Oktober 2011

algoritma dan pemrograman 1c

ABSTRACTION DAN GENERALIZATION
  Abstraction adalah penekanan pada kualitas ide, dan sifat daripada khusus (yang penindasan detail).
  Generalisasi adalah perluasan aplikasi untuk mencakup domain yang lebih besar dari objek yang sama atau yang berbeda jenis.

  Kemampuan untuk abstrak dan generalisasi merupakan bagian penting dari setiap aktivitas intelektual. Abstrak dan generalisasi yang mendasar untuk matematika dan filsafat yang sangat penting dalam ilmu computer. Pentingnya abstraksi berasal dari kemampuannya untuk menyembunyikan rincian yang tidak relevan dan dari pengguna nama untuk objek referensi. Bahasa pemrograman menyediakan abstraksi melalui prosedur,fungsi, dan modul yang memungkinkan programmer untuk membedakan antara apa program tidak dan bagaimana hal itu diimplementasikan.

  Abstraksi adalah penting dalam pembangunan program. Tidak kalah pentingnya dengan generalisasi, sementara abstraksi mengurangi kompleksitas dengan menyembunyikan relevan detail. Generalisasi mengurangi kompleksitas dengan mengganti beberapa entitas yang melakukan fungsi yang sama dengan membangun tunggal. Bahasa pemrograman menyediakan generalisasi melalui variabel, parameterisasi, obat generik, dan polimorfisme.

  Generalisasi sangat penting dalam pembangunan program. Ini penekanan pada kesamaan antara objek. Dengan demikian, hal ini membantu untuk mengelola kompleksitas dengan mengumpulkan individu-individu kedalam kelompok dan memberikan perwakilan yang dapat digunakan untuk menentukan individu kelompok.

  Abstraksi yang umum melalui parameterisasi untuk menyediakan utilitas yang besar. Dalam parameterisasi, satu atau lebih bagian dari entitas. Nama ini digunakan sebagai parameter.


  Ketika sebuah abstraksi sepenuhnya parameterized (semua variabel bebas terikat untuk parameter) abstraksi dapat dipahami tanpa memandang melampaui abstraksi. 
Abstraksi dan generalisasi tergantung pada prinsip transparansi referensial. 
Prinsip Transparansi Referential Arti dari suatu entitas tidak berubah ketika bagian dari entitas diganti dengan bagian yang sama. 


Prinsip trasparansi referential adalah sebagai berikut :
abstraction
  prinsip abstraction adalah sebuah entitas bernama yang dapat dipanggil oleh menyebut nama. Pemberian nama objek memberikan izin untuk menganti nama hal yang bernama (atau sebaliknya) tanpa mengubah arti. Deklarasi dan definisi adalah semua contoh dari penggunaan abstraksi dalam bahasa pemrograman selain itu penamaan ada aspek kedua untuk abstraksi. Itu bahwa abstrak dirumuskan, rincian abstrak yang tersembunyi sehingga nama cukup untuk mewakili entitas. Sebuah benda dikatakan sepenuhnya abstrak jika dapat dimengerti tanpa mengacu pada setiap hal eksternal untuk objek.
   Terminology. Aspek penamaan abstraksi ditangkap dalam konsep mengikat, definisi dan deklarasi sementara menyembunyikan rincian yang tidak relevan atau ditangkap oleh konsep enkapsulasi. Mengikat adalah sebuah asosiasi dari dua entitas. Definisi adalah pengikat nama untuk entitas, deklarasi adalah definisi yang mengikat sebuah nama untuk variabel.
Binding     
  Adalah konsep binding umum untuk semua bahasa pemrograman. Benda yang dapat terikat pada nama disebut bindables bahasa. Para bindables dapat mencakup : nilai-nilai permitif, nilai-nilai senyawa, referensi ke variable jenis-jenis, dan abstraksi dieksekusi. Sementara binding terjadi dalam definisi dan deklarasi, itu juga terjadi pada tingkat mesin virtual dan perangkat keras antara nilai-nilai dan penyimpanan lokasi.
  Cara yang paling umum binding menyusun secara berurutan.Sebuah mengikat sekuensial adalah untuk melakukan binding dalam urutan di mana mereka terjadi. Efeknya adalah untuk memungkinkan binding nanti untuk menggunakan binding diproduksi sebelumnya dalam urutan. Harus dicatat bahwa binding sekuensial tidak mengijinkan saling definisi rekursif. 
 
   Untuk memberikan definisi rekursif saling fungsi dan prosedur, C / C + + dan Pascal menyediakan untuk pemisahan tanda tangan dari fungsi atau prosedur dari tubuh dengan cara prototipe fungsi & Maju deklarasi sehingga sehingga definisi rekursif saling dapat dibangun. 
Sebuah mengikat rekursif adalah satu di mana nama terikat digunakan (secara langsung atau tidak langsung) dalam sendiri 
mengikat. 
Bahasa pemrograman yang membutuhkan "deklarasi sebelumnya referensi" harus menciptakan mekanisme khusus untuk menangani referensi ke depan. Untuk jenis data dinamis, aturannya adalah santai untuk memungkinkan definisi dari pointer jenis. 
Untuk fungsi dan prosedur, ada deklarasi terpisah untuk tanda tangan dari fungsi atau prosedur dan tubuhnya. Pascal dengan "maju" nya deklarasi dan C + + dengan prototipe fungsi yang khas. 
Encapsulation

  Bagian abstrak mengikat sering mengandung binding lain yang dikatakan definisi lokal. Seperti definisi lokal tidak terlihat atau tersedia untuk direferensikan luar abstrak. Jadi abstrak bagian dari mengikat melibatkan ``''menyembunyikan informasi. informasi ini tersembunyi kadang-kadang tersedia dengan mengekspor nama. Sebuah sistem modul menyediakan cara untuk menulis program besar sehingga berbagai potongan program 
tidak mengganggu yang lain karena bentrokan nama dan juga menyediakan sebuah cara untuk menyembunyikan rincian pelaksanaan.
   Sebuah modul umumnya terdiri dari dua bagian, bagian ekspor dan bagian lokal. Bagian ekspor modul terdiri dari deklarasi bahasa untuk simbol yang tersedia untuk digunakan baik bagian dari modul dan dalam modul lain yang impor mereka dan deklarasi modul memberikan simbol dari modul lain yang tersedia untuk digunakan dalam bagian manapun dari modul dan modul lain yang impor mereka. Bagian lokal dari sebuah modul terdiri dari deklarasi bahasa untuk simbol yang tersedia untuk digunakan hanya pada bagian ini. TGPL-Hill dan Lloyd Pekerjaan membangun program besar dibagi di antara beberapa orang, yang masing-masing harus menghasilkan bagian dari keseluruhan. Masing-masing bagian disebut modul dan programmer masing-masing harus mampu membangun modul tanpa mengetahui rincian internal dari bagian lain.
   Hal ini hanya mungkin bila setiap modul adalah dipisahkan menjadi bagian interface dan merupakan bagian implementasi. Bagian antarmuka menjelaskan semua informasi yang diperlukan untuk menggunakan modul sementara bagian implementasi menggambarkan pelaksanaannya. Ide ini sudah ada dalam bahasa pemrograman yang paling dalam cara di mana fungsi dan prosedur yang ditetapkan. Fungsi dan prosedur definisi biasanya dipisahkan menjadi dua bagian. Yang pertama bagian memberikan nama subprogram dan persyaratan parameter dan bagian kedua menjelaskan implementasi. 
 
Generalization

  Prinsip generik Generalisasi adalah sebuah entitas yang mungkin khusus (diuraikan) 
pada doa. Generalisasi memungkinkan penggunaan satu pola tunggal untuk mewakili masing-masing anggota kelompok. Kami menggunakan :
Notasi: lambda p.B ' 
(Disebut abstraksi lambda) untuk menunjukkan generalisasi dari B dimana p adalah disebut parameter dan B 'adalah B dengan p menggantikan sejumlah kejadian beberapa bagian dari B dengan hal Parameter p dikatakan terikat dalam ekspresi tetapi bebas dalam B 'dan ruang lingkup p dikatakan B'. Lambda simbol suatu pembilang. Quantifiers digunakan untuk mengganti konstanta dengan variabel. Spesialisasi (elaborasi) dari generik disebut aplikasi dan mengambil bentuk: 
                                                          (Lambda p.B a) 
Ini menunjukkan ekspresi B 'yang diperoleh dari ekspresi lambda saat kejadian bebas dari p di B diganti dengan a. 

  Selain itu, Simbol lambda diperkenalkan oleh Gereja untuk pengenalan variabel dalam 
kalkulus lambda. Ini kira-kira sesuai dengan FORALL simbol, quantifier universal, dari 
orde pertama logika. Lampiran ini berisi pengantar singkat untuk orde pertama logika. Para 
Bab pemrograman fungsional berisi pengenalan singkat ke kalkulus lambda. 
Generalisasi sering dikombinasikan dengan abstraksi dan mengambil bentuk sebagai berikut: 
                                                                n (p): B 
dimana p adalah nama, x adalah parameter, dan B adalah abstrak. Seruan abstrak mengambil 
bentuk: 
                                                                 n (a) 
atau occaisionally (na) di mana n adalah nama dan disebut argumentasi yang nilainya diganti 
untuk parameter. 
Setelah doa abstrak, argumen terikat untuk parameter. Bahasa pemrograman yang paling memungkinkan bentuk implisit dari generalisasi di mana variabel yang dapat diperkenalkan tanpa menyediakan untuk sebuah prosedur permintaan yang menggantikan parameter dengan argumen.
Prinsip generalisasi tergantung pada prinsip analogi :
 
§  Analogi Prinsip
   Ketika ada konformasi dalam pola antara dua objek yang berbeda, obyek dapat digantikan dengan satu objek parameter untuk memungkinkan rekonstruksi obyek asli. 
Ini adalah prinsip analogi yang memungkinkan pengenalan variabel untuk mewakili unsur sewenang-wenang kelas. 

§  Prinsip Generalisasi
  Tidak membuat pembatasan pada parameter atau bagian dari suatu entitas yang dapat 
parameter,
Tidak harus bahasa pemrograman. Hal ini ditekankan pada prinsip berikut: 

*      Prinsip parameterisasi. Sebuah parameter generik dapat dari domain manapun. 

*      Terminologi. Istilah parameter formal (pakaian resmi) dan parameter aktual (Kenyataan) yang kadang-kadang digunakan sebagai pengganti istilah parameter dan argument masing-masing. 

Substitution

  Utilitas dari kedua abstraksi dan generalisasi tergantung pada substitusi. Ikatan antara keduanya adalah ditangkap pada prinsip berikut: 

*      Prinsip mekanisme Parameter Korespondensi mengikat dan mekanisme definisi 
yang setara. Prinsip Korespondensi adalah formalisasi aspek dari Prinsip Abstraksi yang menyiratkan bahwa definisi dan substitusi berhubungan erat. 
*      Terminologi. Notasi untuk substitusi dipilih untuk menekankan hubungan 
antara abstraksi dan substitusi. Teks-teks lain menggunakan notasi E [p: = a] untuk substitusi
. 
Block structure

  Blok adalah membangun yang memisahkan ruang lingkup dari setiap definisi yang mungkin mengandung. Ini menyediakan local yaitu lingkungan, kesempatan untuk definisi lokal. Struktur blok (hubungan tekstual antara blok) dari suatu bahasa pemrograman memiliki banyak pengaruh atas struktur program dan modularitas.
  Block structur menyajikan dua gaya blok, yang pertama membutuhkan definisi untuk melanjutkan tubuh dan kedua membutuhkan definisi untuk mengikuti tubuh. 
Program A memiliki struktur blok monolitik jika terdiri dari hanya satu blok. Struktur ini adalah khas dari BASIC dan COBOL versi awal. 
 
  Struktur monolitik hanya cocok untuk program-program kecil. Para ruang lingkup definisi setiap seluruh program. Biasanya semua definisi dikelompokkan dalam satu tempat bahkan jika mereka digunakan di berbagai program. 
  kelebihan blok batin yaitu, tubuh mungkin berisi blok blok tambahan tetapi batin tidak mungkin mengandung blok. Struktur ini adalah khas dari FORTRAN dan C. Dalam bahasa, semua subprogram (Prosedur dan fungsi) yang terpisah, dan masing-masing bertindak sebagai blok. Variabel dapat dideklarasikan di dalam sebuah Subprogram kemudian lokal untuk subprogram itu. Subprogram nama adalah bagian dari blok luar dan dengan demikian ruang lingkup mereka adalah seluruh program bersama dengan variabel global.

Activation Records

Adalah Setiap Penyimpanan blok untuk variabel local.

Scope Rules

 Tindakan partisi program menimbulkan masalah lingkup nama.Yang objek dengan dipartisi harus terlihat di luar partisi? Solusi yang biasa adalah untuk menunjuk beberapa nama yang akan diekspor dan orang lain untuk menjadi pribadi atau lokal untuk partisi dan tak terlihat partisi lain. Dalam hal ada mungkin nama konflik antara nama diekspor dari partisi, partisi sering diizinkan untuk menunjuk nama-nama yang akan diimpor dari partisi yang ditunjuk atau untuk memenuhi syarat nama dengan partisi nama.
  Ruang lingkup aturan untuk modul mendefinisikan hubungan di antara nama-nama dalam partisi. Ada empat pilihan yaitu :
 - Semua nama setempat terlihat secara global.
 - Semua nama eksternal terlihat lokal.
 - Hanya nama lokal diekspor secara eksplisit terlihat secara global.
 - Hanya nama eksternal yang diimpor secara eksplisit terlihat secara lokal.

Dynamic scope rules
   Aturan lingkup dinamis mendefinisikan ruang lingkup dinamis dari asosiasi masing-masing dalam hal program dinamis eksekusi program. Cadel.
kemudahan pelaksanaan, generalisasi murah untuk fungsi parameterless.
Static scope rules
Teminology. Aturan lingkup statis juga disebut aturan lingkup leksikal. Cobol, BASIC, FORTRAN, Prolog, kalkulus Lambda, Skema, Miranda, Algol-60, Pascal.
Environment

  Lingkungan adalah satu set binding.
  Lingkup ada hubungannya dengan kisaran visibilitas nama.Misalnya, batas nasional dapat merangkum bahasa alami. Namun, beberapa kata yang digunakan dalam batas bukan kata-kata asli. Mereka adalah kata-kata dipinjam dari beberapa bahasa lain dan didefinisikan dalam bahasa asing. Jadi berada dalam Program. Sebuah definisi memperkenalkan nama dan batas (objek). Objek dapat berisi nama yang tidak ada definisi lokal (dengan asumsi definisi mungkin bersarang). 
Nama-nama ini dikatakan bebas. Arti nama-nama yang ditugaskan untuk dapat ditemukan di luar definisi. Aturan diikuti dalam menentukan arti dari nama-nama ini gratis disebut ruang lingkup aturan. Lingkup Hal ini terkait dengan kontrol nama.

ADTs

  Sebuah pendekatan yang lebih efektif adalah dengan memisahkan tanda tangan dari operasi dari tubuh para operasi dan jenis representasi sehingga tubuh operasi dan representasi tipe dapat dikompilasi secara terpisah. Hal ini memudahkan pengembangan perangkat lunak dalam bahwa ketika suatu tipe data abstrak yang representasi berubah (misalnya untuk meningkatkan kinerja) perubahan lokal untuk data abstrak jenis.

Pragmatics

Bindings and Binding Times

  Bindings dapat terjadi pada berbagai waktu dari sudut definisi bahasa melalui eksekusi program. Waktu di mana mengikat terjadi disebut waktu mengikat. Empat kali mengikat yang berbeda dapat dibedakan :
1.  Bahasa desain waktu. Sebagian besar struktur bahasa pemrograman adalah tetap dan bahasa desain waktu. Tipe data, struktur data, perintah dan bentuk-bentuk ekspresi, dan struktur program adalah contoh dari fitur bahasa yang tetap pada waktu bahasa desain. Kebanyakan pemrograman bahasa membuat ketentuan untuk memperluas bahasa dengan menyediakan data yang didefinisikan programmer jenis, ekspresi dan perintah.
2.  Implementasi bahasa waktu. Beberapa fitur bahasa ditentukan oleh pelaksanaannya.
Program yang berjalan pada satu komputer tidak dapat berjalan atau memberikan hasil yang salah ketika dijalankan di lain mesin. Ini terjadi ketika hardware berbeda dalam representasi atas angka dan aritmatika operasi. Sebagai contoh, maxint Pascal ditentukan oleh pelaksanaannya. C bahasa pemrograman menyediakan akses ke mesin yang mendasari dan karena itu program-program yang tergantung pada karakteristik dari mesin yang mendasari tidak dapat melakukan seperti yang diharapkan ketika pindah ke komputer lain.
3.  Program penerjemahan waktu. Mengikat antara kode sumber dan kode objek terjadi pada
program penerjemahan waktu. Programmer variabel didefinisikan dan jenis adalah contoh lain dari binding yang terjadi pada saat program penerjemahan.
4.  Program waktu eksekusi. Pengikatan nilai-nilai ke variabel dan parameter formal untuk actual parameter terjadi selama eksekusi program.
Awal mengikat sering izin eksekusi yang lebih efisien dari program meskipun penerjemahan ketik waktu memeriksa sementara mengikat akhir izin lebih banyak fleksibilitas melalui modifikasi program run-time. Para pelaksanaan rekursi mungkin memerlukan alokasi memori pada saat run-time kontras waktu satu untuk alokasi memori pada saat kompilasi.

2 komentar:

Unknown mengatakan...

kak untuk materi Abstraction and Generalization pny definisi yg lebih lengkap ga?

ningrum tania widayu mengatakan...

oo..ini sudah lngkap..kita ngmbil ringkasnya saja...

Posting Komentar

My Visitors

free counters

About Me

Foto Saya
ningrum tania widayu
student of gunadarma university'11 15111184|1ka23|sistem informasi
Lihat profil lengkapku