Rabu, 13 April 2011

model linguistik



MODEL LINGUISTIK
Interaksi user dengan komputer dapat dipandang dari segi language, beberapa formalisasi model menggunakan konsep ini. Grammar BNF paling sering digunakan untuk melakukan dialog.

Backus-Naur Form (BNF)
• Memandang dialog pada level sintaksis, mengabaikan semantik dari
bahasa tersebut.

Contoh: Fungsi menggambar garis pada sistem grafik :
draw-line ::= select-line + choose-points + last-point
select-line ::= position-mouse + CLICK-MOUSE
choose-points ::= choose-one | choose-one + choose-points
choose-one ::= position-mouse + CLICK-MOUSE
last-point ::= position-mouse + DOUBLE-CLICK-MOUSE
position-mouse ::= empty | MOVE-MOUSE + position-mouse.

• Non-terminals (huruf kecil) adalah abstraksi level tinggi dimana dapat
terdiri dari non-terminal lainnya dan terminal dalam format:
name ::= expression
• Terminals (huruf besar), merepresentasikan level terendah dari user
behaviour
• Operator ‘+’ adalah sequence, ‘|’ adalah choice

• Deskripsi BNF dapat dianalisa dengan mengukur jumlah rules dan
operatornya
• Pengukuran kompleksitas untuk bahasa secara keseluruhan, BNF dapat
digunakan untuk menentukan berapa banyak tindakan dasar yang
dibutuhkan dalam tugas tertentu, dan mendapatkan estimasi kasar
kesulitan (difficulty) dari tugas
Task-Action Grammar (TAG)
• BNF mengabaikan kelebihan konsistensi dalam struktur language dan
dalam menggunakan nama perintah
Contoh:
3 UNIX command:
copy ::= ‘cp’ + filename + filename | ‘cp’ + filename + directory
move ::= ‘mv’ + filename + filename | ‘mv’ + filename + directory
link ::= ‘ln’ + filename + filename | ‘ln’ + filename + directory

BNF tidak dapat membedakan konsistensi dan inkonsistensi command (misal: ln mengambil argumen direktori lebih dahulu). Dengan TAG dapat diatasi dengan mengubah deskripsinya :

File-op [Op] := command-op[Op]+ filename + filename
| command-op[Op] + filename + directory
command-op[Op=copy] := ‘cp’
command-op[Op=move] := ‘mv’
command-op[Op=link] := ‘ln’

• TAG mengatasi masalah ini dengan menyertakan parametrized grammar
rules untuk konsistensi dan pengetahuan umum user (seperti atas
lawan dari bawah)

Contoh: Dua command line interface untuk menggerakkan robot di atas lantai

Command interface 1
movement [Direction] := command[Direction] + distance + RETURN
command[Direction=forward] := ‘go 395’
command[Direction=backward] := ‘go 013’
command[Direction=left] := ‘go 712’
command[Direction=right] := ‘go 956’
Command interface 2
movement [Direction] := command[Direction] + distance + RETURN
command[Direction=forward] := ‘FORWARD’
command[Direction=backward] := ‘BACKWARD’
command[Direction=left] := ‘LEFT’
command[Direction=right] := ‘RIGHT’


Tidak ada komentar: