Dalam proses pembuatan program dari sebuah bahasa menjadi instruksi yang dapat dieksekusi oleh mesin, terdapat pemeriksaan sintaks bahasa atau parsing yang dibuat oleh programmer untuk memastikan program dapat dieksekusi tanpa menghasilkan error. Parsing ini bertujuan untuk memastikan instruksi yang dibuat oleh programmer mengikuti aturan yang sudah ditentukan oleh bahasa tersebut. Baik bahasa berjenis interpreter maupun compiler, keduanya pasti melakukan pemeriksaan sintaks. Perbedaannya terletak pada apa yang dilakukan setelah proses pemeriksaan (kompilasi/compile) tersebut selesai dilakukan. Dibutuhkan grammar bahasa dan algoritma parser untuk melakukan parsing. Sudah sangat banyak grammar dan algoritma yang dikembangkan untuk menghasilkan compiler dengan performa yang tinggi. Terdapat CFG, CNF-e, CNF+e, 2NF, 2LF, dll untuk grammar yang dapat digunakan, dan terdapat LL(0), LL(1), CYK, Earley’s Algorithm, LALR, GLR, Shift-reduce, SLR, LR(1), dll untuk algoritma yang dapat digunakan untuk melakukan parsing. Tugas besar ini berisi tentang pengaplikasian algoritma tersebut agar memastikan apakah sintaks yang diinginkan dapat terbaca.
- Muhammad Hanan - 13521
- Shidqi Indy Izhari - 13521
- Mohammad Farhan Fahrezy - 13521106
- Clone repository github ini
- Ganti directory pada terminal menjadi folder repository
- Ketik "python CFGtoCNF.py" pada terminal
- Masukkan program JavaScript yang dicek pada file test.js
- Ketik "python main.py test.js" pada terminal
Release untuk tubes adalah release dengan tags v1.0