![Page 1: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/1.jpg)
Fungsi Dasar Kompilator
GrammarAnalysis LeksikalAnalysis Syntaks
Pembangkitan Kode
![Page 2: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/2.jpg)
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 Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/3.jpg)
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 Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/4.jpg)
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 Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/5.jpg)
Grammar Pascal yang Disederhanakan
Aturan rekursif
![Page 6: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/6.jpg)
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 Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/7.jpg)
Parse Tree
![Page 8: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/8.jpg)
Parse Tree
![Page 9: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/9.jpg)
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 Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/10.jpg)
Scan Leksikal
![Page 11: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/11.jpg)
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 Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/12.jpg)
Finite Automata untuk Typical Tokens
![Page 13: Grammar Analysis Leksikal Analysis Syntaks Pembangkitan Kodeopenstorage.gunadarma.ac.id/handouts/S1-Sistem... · Grammar • Grammar merupakan deskripsi formal dari sintaks. • BNF](https://reader030.vdocuments.pub/reader030/viewer/2022012316/5ceba0ef88c99319498bb6ae/html5/thumbnails/13.jpg)
AlgoritmaPengenalan
Token