Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Budi Rahardjo Kuliah Metoda Formal 2004

Presentasi serupa


Presentasi berjudul: "Budi Rahardjo Kuliah Metoda Formal 2004"— Transcript presentasi:

1 Budi Rahardjo Kuliah Metoda Formal 2004
PROMELA & SPIN Budi Rahardjo Kuliah Metoda Formal 2004

2 PROMELA & SPIN - Budi Rahardjo
PROMELA = PROcess MEta Language Sebuah bahasa untuk men-spesifikasi-kan sistem Menggabungkan CSP, C, SDL SPIN merupakan tools untuk melakukan (model) checking terhadap sistem yang dituliskan dalam PROMELA PROMELA & SPIN - Budi Rahardjo

3 Bahasa PROMELA

4 PROMELA & SPIN - Budi Rahardjo
OBJECTS Ada 3 objects (akan dijelaskan nanti) Processes Message channels State variables Object ini bisa ditransalasikan menjadi finite state machine PROMELA & SPIN - Budi Rahardjo

5 Executability of statements
Dalam PROMELA tidak ada perbedaan antara conditions dan statements Eksekusi dari statement bergantung kepada sifat executability nya PROMELA statement bisa executable atau blocked bergantung kepada nilai dari variable atau isi dari message channels Jika kondisi benar (holds) maka statement dieksekusi. Jika tidak, maka dia akan terblokir (blocked) sampai condition holds PROMELA & SPIN - Budi Rahardjo

6 PROMELA & SPIN - Budi Rahardjo
Variabel & Data Types Ada 6 predefined data types Bit, bool, byte, short, int, chan Ukuran (1), (1), (8), (16), (32) bit, kecuali channel Chan -> message channel, yaitu sebuah object yang dapat menyimpan beberapa nilai yang disatukan menjadi sebuah struktur Contoh penggunaan bool flag; int state; byte msg; PROMELA & SPIN - Budi Rahardjo

7 PROMELA & SPIN - Budi Rahardjo
Array Variabel dapat dinyatakan sebagai array byte state[N] state[0] = state[3] + 5 * state[3*2/n] Declaration dan assigments selalu executable PROMELA & SPIN - Budi Rahardjo

8 PROMELA & SPIN - Budi Rahardjo
Process proctype A() { byte state; state = 3} merupakan deklarasi sebuah proses dengan sebuah variable yang bernama state Tanda titik koma (semicolon) merupakan statement separator (bukan statement terminator). Ada dua statement separator: anak panah -> dan titik koma ;. Keduanya ekivalen PROMELA & SPIN - Budi Rahardjo

9 PROMELA & SPIN - Budi Rahardjo
Contoh byte state = 2; proctype A() { (state == 1) -> state = 3} proctype B() { state = state – 1} PROMELA & SPIN - Budi Rahardjo

10 PROMELA & SPIN - Budi Rahardjo
Initial Process init { run A(); run B() } Proses init sama seperti main() pada program Bahasa C PROMELA & SPIN - Budi Rahardjo

11 PROMELA & SPIN - Budi Rahardjo
Message Channels chan a, b; chan c[3] chan qname = [16] of { byte, int, chan, byte} qname!expr mengirimkan nilai dari ekspresi expr ke channle qname?msg membaca sebuah message dari head dari channel tersebut, dan menyimpannya dalam variabel msg PROMELA & SPIN - Budi Rahardjo

12 PROMELA & SPIN - Budi Rahardjo
Control Flow Case selection Repetition Unconditional jumps PROMELA & SPIN - Budi Rahardjo

13 PROMELA & SPIN - Budi Rahardjo
Case Selection if :: (a != b) -> option1 :: (a == b) -> option2 fi Statement pertama berfungsi sebagai guard Jika lebih dari satu guard yang executable, dipilih salah satu secara random Jika semua guard tidak ada yang executable, maka proses menjadi blocked sampai ada salah satu yang bisa dieksekusi PROMELA & SPIN - Budi Rahardjo

14 PROMELA & SPIN - Budi Rahardjo
Repetition byte count; proctype counter() { do :: count = count +1 :: count = count -1 :: (count == 0) -> break od } Hanya ada satu option yang dapat dieksekusi pada satu saat. PROMELA & SPIN - Budi Rahardjo

15 PROMELA & SPIN - Budi Rahardjo
Jump proctype Euclid(in x, y) { do :: (x > y) -> x = x – y :: (x < y) -> y = y – x :: (x == y) -> goto done od done: skip } PROMELA & SPIN - Budi Rahardjo


Download ppt "Budi Rahardjo Kuliah Metoda Formal 2004"

Presentasi serupa


Iklan oleh Google