Indah Wahyuni
V
ALUE Suatu nilai (value): hal apapun yang mungkin
dapat dievaluasi, disimpan dalam suatu struktur data, dikirimkan sebagai suatu argumentasi
atau dikembalikan lagi sebagai hasil.
Suatu perhitungan: suatu urutan operasi yang
diberlakukan untuk suatu nilai untuk menghasilkan suatu nilai.
Dengan demikian nilai-nilai dan operasi adalah
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
Kumpulan dari argumen-argumen dan
hasil-hasil dari fungsi dikenal dengan domain dan co-domain.
Domain akan ditandai sebagai kumpulan dari
nilai-nilai yang dikirimkan sebagai argumen-argumen atau dikembalikan sebagai hasil.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
V
ALUE Dua kategori domain, yaitu :
Primitive Domain
Sifatnya atomic
Compound Domain
Kumpulan dari nilai-nilai yang dibangun dari domain-domain pembangun satu atau domain pembangun yang lain.
Suatu domain: satu kumpulan elemen-elemen
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
D
OMAINE
LEMEN-
ELEMENT
EORID
OMAIN Ada beberapa compound domain yang digunakan
dalam computer sign, yaitu: array, tupple, record, union, set, list, tree, file, relation, definition dan mapping.
Compound domain dibangun oleh suatu domain
pembangun dibawah ini:
Product domain Sum domain Function domain Power domain Recursive domain . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. P
RODUCTD
OMAIN(D
OMAINP
RODUK)
Domain-domain yang dibangun oleh pembangun
product domain disebut record dalam Pascal.
Bentuk product domain adalah dasar dari
database relational dan pemrograman logic.
Pada kasus biner, product domain pembangun, x,
membangun domain A x B dari domain A dan B.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. P
RODUCTD
OMAIN(D
OMAINP
RODUK)
Jika a adalah elemen dari A dan b adalah suatu
elemen dari B, maka (a,b) adalah suatu elemen dari A x B.
A X B = {(a,b)| a in A, b in B}
Domain produk disebut “Cartesian” atau
“Cross” produk. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. P
RODUCTD
OMAIN(D
OMAINP
RODUK)
Product Domain : D0 x … x Dn
Assembly operation:
(a0 ,…,an ) in D0 x…x Dn where ai in Di and D0 x…x Dn = {(a0 ,…an ) | ai in Di}
Disassembly operation: (a0 ,…,an ) | i = ai for 0
<= i <= n . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
2. S
UMD
OMAIN(D
OMAINS
UM)
Domain-domain yang dibangun oleh
pembangun sum domain disebut varian record dalam Pascal.
Dalam kasus biner, sum domain pembangun,+,
membangun domain A + B dari domain A dan B.
Jika a adalah elemen dari A dan b adalah elemen
dari B maka (A,a) dan (B,b) adalah unsur-unsur A + B A + B = {(A,a) | a in A} union {(B,b) | b in B} . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
2. S
UMD
OMAIN(D
OMAINS
UM)
Dimana A dan B disebut tags dan digunakan
untuk membedakan pendukung elemen A dan pendukung elemen B.
Sum domain disebut juga disjoint union atau
co-product domain. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
3. F
UNCTIOND
OMAIN(D
OMAINF
UNGSI)
Domain-domain yang dibangun oleh pembangun
function domain disebut fungsi di dalam Haskell.
Pembangun function domain membentuk domain
A B dari domain A dan B.
Domain A B terdiri dari semua fungsi A ke B.
A disebut domain dan B disebut co-domain.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
4. P
OWERD
OMAIN(D
OMAINP
OWER)
Teori Set menyediakan suatu notasi untuk
uraian perhitungan.
Pascal menyediakan operasi set gabungan
(union) dan simpangan dan keanggotaan set (intersection).
Kumpulan dari semua subsets dari sebuah set
adalah power set dan digambarkan: PS = { s | s is a subset of S } . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
Subtype dan subrange adalah contoh dari
pembangun power set.
Power domain membangun suatu domain dari
elemen-elemen set.
Untuk domain A, pembangun power domain
P() menciptakan domain P(A), suatu
kumpulan yang anggotanya adalah subset dari A. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
TERDEFINISI REKURSIF
)
Recursively defined domain adalah domain yang
didefinisikan dari bentuk D : … D …
Definisi disebut Recursively sebab nama domain
“recurs/berulang” pada sisi kanan dari definisi.
Tergantung pada abstrak karena nama domain
adalah suatu bagian penting dari definisi domain. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
TERDEFINISI REKURSIF
)
Lebih dari satu set boleh mencukupi suatu
recursively defined.
Selalu mempunyai solusi terkecil.
Solusi terkecil adalah suatu subset solusi yang
lain. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
T
YPES
YSTEM Prosentase besar kesalahan di dalam program adalah
dalam kaitan dengan operasi ke object jenis yang bertentangan.
Type system telah dikembangkan untuk membantu
programmer dalam pendeteksian kesalahan.
Suatu type system adalah satu set aturan untuk
mendefinisikan jenis dan menghubungkan suatu type dengan ekspresi dalam bahasa.
Suatu type system menolak suatu ekspresi jika tidak
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
T
YPES
YSTEM Type checking boleh berjalan pada waktu
kompilasi atau waktu berjalan atau kedua-duanya.
Jika kesalahan diharapkan untuk dideteksi pada
waktu kompilasi maka suatu static type checking system diperlukan. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
T
YPES
YSTEM Satu pendekatan ke static type checking
memerlukan programmer untuk menetapkan type masing-masing obyek di dalam program.
Mengizinkan compiler untuk melaksanakan
type checking sebelum pelaksanaan program
Pendekatan yang diambil oleh bahasa seperti
Pascal . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. T
YPEC
HECKINGSuatu bahasa disebut :
tidak berjenis (untype) jika tidak ada jenis abstrak
yang berlaku,
Strong type jika menyelenggarakan jenis abstrak
(operasi mungkin diterapkan hanya untuk object jenis yang sesuai),
Static type jika jenis ungkapan masing-masing dapat
ditentukan dari teks program,
Dynamic type jika penentuan jenis beberapa
ungkapan tergantung pada perilaku waktu berjalan program. . P emro gr ama n, 2 01 2 19 Dom ai n & T ip e, Indah Wa hyuni
1. T
YPEC
HECKING(K
EUNTUNGAN)
Untyped adalah fleksibilitas mereka.
Programmer mempunyai kendali penuh atas
bagaimana suatu nilai data digunakan
Harus mengasumsikan tanggung jawab penuh
untuk mendeteksi aplikasi operasi ke type object yang bertentangan.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. T
YPEC
HECKING(K
EUNTUNGAN)
Strong type membantu untuk memastikan
portabilitas dan keamanan kode
Memerlukan ketegasan dalam menggambarkan
type masing-masing object di dalam suatu program.
Penting dalam kumpulan untuk pemilihan
operasi yang sesuai dan untuk optimisasi.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. T
YPEC
HECKING(K
EUNTUNGAN)
Static Type dikenal sebagai kebutuhan untuk
produksi software yang dapat dipercaya dan aman.
Type static dipilih ketika efisiensi di dalam
waktu pelaksanaan adalah penting
Kompilator pendukung digunakan untuk
mendukung rancang bangun software berjalan.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
1. T
YPEC
HECKING(K
EUNTUNGAN)
Dynamic type checking menyiratkan bahwa type
dicek pada waktu pelaksanaan
Tiap-tiap nilai berlabel untuk mengidentifikasi
typenya dalam rangka membuat type checking mungkin.
Hukuman untuk dynamic type checking adalah
biaya waktu dan ruang tambahan.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
2. T
YPEE
QUIVALENCE(K
ESAMAANJ
ENIS)
Dua type tak dikenal (satuan object) adalah
sama jika mereka berisi elemen-elemen yang sama.
Yang sama tidak bisa dikatakan type nama
mereka yang dulu, maka tidak diperlukan untuk memisah type union.
Kapan type dinamai, ada dua pendekatan utama
untuk menentukan apakah dua type sama.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
2. T
YPEE
QUIVALENCE(K
ESAMAANJ
ENIS)
1.
Name Equivalence (kesamaan nama)
Dua type adalah sama jika merekamempunyai nama yang sama.
Type diberi nama berbeda diperlakukan
berbeda dan tidak bisa secara kebetulan dicampur hanya karena struktur mereka secara kebetulan adalah sama.
Name equivalence perlu definisi type untuk
global. . P emro gr ama n, 2 01 2 25 Dom ai n & T ip e, Indah Wa hyuni
2. T
YPEE
QUIVALENCE(K
ESAMAANJ
ENIS)
2. Structural Equivalence (kesamaan struktural)
Nama type diabaikan
Elemen-elemen type dibandingkan untuk kesamaan yaitu dua type logic yang berbeda boleh menjadi kebetulan yang sama dan dapat dicampur.
Definisi type tidak diperlukan untuk menjadi
global.
Penting didalam distribusi pemrograman, dimana
. P emro gr ama n, 2 01 2 26 Dom ai n & T ip e, Indah Wa hyuni
2. T
YPEE
QUIVALENCE(K
ESAMAANJ
ENIS)
Definisi N.1:
Dua type T, T’ adalah name equivalence if T
dan T’ memiliki nama yang sama.
Dua type T, T’ adalah structural equivalence
if T dan T’ memiliki satuan nilai yang sama.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
2. T
YPEE
QUIVALENCE(K
ESAMAANJ
ENIS)
Tiga aturan yang digunakan untuk
menentukan jika dua type adalah structural equivalence :
1. Suatu nama type sama secara struktur dengan dirinya sendiri
2. Dua type yang sama secara struktur jika mereka dibentuk dengan menerapkan type pembangun yang sama (secara berulang) ke type structural equivalence.
Setelah suatu deklarasi type, type n = T,
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
3. T
YPEI
NFERENCE(
JENIS KESIMPULAN)
Type inference: masalah yang umum dalam
menjelmakan untyped atau sintaksis type parsial ke dalam terminologi yang baik.
Deklarasi tetap Pascal adalah suatu contoh
type inference, type nama adalah kesimpulan dari type yang tetap.
Dalam Pascal untuk pengulangan type index,
pengulangan dapat ditarik kesimpulan dari type recursively defined
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
3. T
YPEI
NFERENCE(
JENIS KESIMPULAN)
Indeks pengulangan harus suatu variabel lokal
dari pengulangan.
Suatu type checking harus mampu :
Menentukan jika suatu program adalah type yang
baik dan
Jika program adalah type yang baik, tentukan type
ekspresi manapun di dalam program
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
4. T
YPED
ECLARATION(
JENIS DEKLARASI)
Bahasa yang menyediakan suatu type
inference system mengizinkan para
programmer untuk membuat deklarasi type eksplisit.
Programmer harus meneliti beberapa halaman
kode untuk menentukan type suatu fungsi.
Compiler mengeluarkan pemberitahuan
kesalahan:
Kesalahan kecil oleh programmer
Untuk menyimpulkan suatu type yang berbeda dibanding yang diharapkan.
. P emro gr ama n, 2 01 2 31 Dom ai n & T ip e, Indah Wa hyuni
5. P
OLYMORPHISM Suatu type system adalah monomorphic jika
masing-masing konstanta, variabel, parameter, dan hasil fungsi mempunyai suatu type unik.
Type checking suatu system monomorphic
adalah type secara langsung.
Tetapi system type monomorphic semata-mata
tidak memuaskan untuk penulisan software yang bisa dipakai kembali.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
5. P
OLYMORPHISM System yang sepenuhnya monomorphic jarang.
Kebanyakan bahasa pemrograman berisi
beberapa operator atau prosedur yang
mengizinkan argumentasi lebih dari satu type.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
5. P
OLYMORPHISM Definisi N.2 :
Monomorphism : tiap-tiap konstanta, variabel,
parameter, fungsi dan operator mempunyai suatu type unik.
Pemuatan lebih mengacu pada penggunaan
dari sintaksis pengenal tunggal untuk mengacu pada beberapa operasi berbeda yang dibedakan oleh type dan jumlah argumentasi pada operasi.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
5. P
OLYMORPHISM Polymorphism: suatu operator, fungsi atau
prosedur yang mempunyai suatu keluarga type yang terkait dan berorientasi secara seragam
atas argumentasinya dengan mengabaikan type.
Dapat berlaku untuk type yang berbeda tetapi
berhubungan dengan argumentasi.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
5. P
OLYMORPHISM Suatu type system adalah polymorphic jika
abstrak beroperasi secara seragam pada argumentasi suatu keluarga type terkait.
Polymorphism type ini kadang-kadang disebut
parametric polymorphism. . P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
KELENGKAPAN
)
Prinsip type ini, tidak ada operasi yang dapat
berlaku semaunya, terbatas yang berhubungan dengan nilai type.
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni
. P emro gr ama n, 2 01 2 Dom ai n & T ip e, Indah Wa hyuni