Top Banner
Fungsi Dasar Kompilator Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kode
13

Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

May 16, 2019

Download

Documents

dinhtram
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Fungsi Dasar Kompilator

GrammarAnalysis LeksikalAnalysis Syntaks

Pembangkitan Kode

Page 2: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Bahasa Pemrograman Tingkat Tinggi• Bahasa pemrograman tingkat tinggi dideskripsikan

dalam grammar, yang menspesifikasi sintaks statement yang legal.– Statement assignment:

• nama variabel + operator assignment + ekspresi

Page 3: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Kompilator• Kompilasi: statement yang sesuai (ditulis oleh

programmer) dengan struktur (didefinisikan olehgrammar) dan membuat object code yang sesuai– Analisis leksikal (scanning)

• Scanning source statement, mengenali dan mengklasifikasiberbagai token, termasuk keyword, nama variabel, tipe data, operator, dsb.

– Analisis syntaks (parsing)• Mengenali setiap statement sebagai suatu konstruksi bahasa

yang dideskripsikan oleh grammar– Semantik (pembangkitan kode)

• Pembangkitan object code

Page 4: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Grammar• Grammar merupakan deskripsi formal dari

sintaks.• BNF (Backus-Naur Form):

– Notasi yang sederhana dan banyak digunakan untukmenulis grammar yang diperkenalkan oleh John Backus dan Peter Naur pada sekitar tahun 1960.

– Meta-symbols BNF: • ::= “didefinisikan sebagai" • | "or" • < > kurung siku digunakan untuk mengapit simbol non-

terminal symbols– Aturan BNF yang mendefinisikan nonterminal

mempunyai bentuk: nonterminal ::= urutan alternatifyang terdiri dari strings terminal (token) ataunonterminal dipisahkan oleh meta-symbol |

Page 5: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Grammar Pascal yang Disederhanakan

Aturan rekursif

Page 6: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Parse Tree(Syntax Tree)

READ(VALUE)

VARIANCE:=SUMSQ DIV 100 – MEAN*MEAN

Perkalian dan pembagianmendahului penambahan danpengurangan

Page 7: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Parse Tree

Page 8: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Parse Tree

Page 9: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Analisis Leksikal• Token dapat didefinisikan oleh aturan

grammar agar dikenali oleh parser:

• Untuk efisiensi yang lebih baik, scanner dapat digunakan untuk mengenali danmengeluarkan token dalam suatu deretyang direpresentasikan oleh kode yang panjangnya tetap dan token specifieryang berhubungan

Page 10: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Scan Leksikal

Page 11: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Pemodelan Scanners sebagai Finite Automata

• Token seringkali dapatdikenali oleh finite automata, yang terdiridari– Himpunan status yang

tertentu (termasuk status awal dan satu atau lebihstatus final)

– Satu set transisi darisatu status ke yang lainnya

Page 12: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

Finite Automata untuk Typical Tokens

Page 13: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeajuarna.staff.gunadarma.ac.id/Downloads/files/5308/sliIT-012323-7_8_9_10-1+Fungsi... · Grammar • Grammar merupakan deskripsi

AlgoritmaPengenalan

Token