/Tubes1TBFO

Tubes 1 Teori Bahasa Formal dan Automata

Primary LanguagePython

Tugas Besar IF2124

General Information

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.

Anggota Kelompok

  1. Muhammad Hanan - 13521
  2. Shidqi Indy Izhari - 13521
  3. Mohammad Farhan Fahrezy - 13521106

Cara Penggunaan

  1. Clone repository github ini
  2. Ganti directory pada terminal menjadi folder repository
  3. Ketik "python CFGtoCNF.py" pada terminal
  4. Masukkan program JavaScript yang dicek pada file test.js
  5. Ketik "python main.py test.js" pada terminal

Informasi Tambahan

Release untuk tubes adalah release dengan tags v1.0