TuBes-IF2124-TBFO
Table of Contents
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.
Member List
Nama | NIM |
---|---|
M. Abdul Aziz Ghazali | 13521128 |
M. Zaki Amanullah | 13521146 |
M. Rifqi Farhansyah | 13521166 |
Features
Pada tugas besar ini, telah diimplementasikan parser JavaScript (Node.js)
untuk beberapa statement dan sintaks bawaan JavaScript. Konsep CFG (Context Free Grammar)
digunakan untuk pengerjaan parser yang mengevaluasi syntax program. Sementara itu, nama variabel dan operasi (+, -, >, dll) dalam program, akan dievalusi menggunakan FA (Finite Automata)
.
Structure
β coba.js
β coba.py
β main.py
β parser_main.py
β README.md
β
ββββ.vscode
β tasks.json
β
ββββCYK
β β cyk.py
β β __init__.py
β β
β ββββ__pycache__
β cyk.cpython-310.pyc
β cyk.cpython-39.pyc
β __init__.cpython-310.pyc
β __init__.cpython-39.pyc
β
ββββfileProcessing
β β file.txt
β β file_processing.py
β β token.py
β β __init__.py
β β
β ββββ__pycache__
β token.cpython-310.pyc
β token.cpython-39.pyc
β __init__.cpython-310.pyc
β __init__.cpython-39.pyc
β
ββββgrammar
β β debug_grammar.txt
β β grammar.txt
β β grammar_convert.py
β β grammar_parser.py
β β __init__.py
β β
β ββββ__pycache__
β grammar_convert.cpython-310.pyc
β grammar_convert.cpython-39.pyc
β grammar_parser.cpython-310.pyc
β grammar_parser.cpython-39.pyc
β __init__.cpython-310.pyc
β __init__.cpython-39.pyc
β
ββββresult
β tokenResult.txt
β
ββββvariable_fa
β variable_fa.py
β
ββββ__pycache__
CFGtoCNF.cpython-310.pyc
CFGtoCNF.cpython-39.pyc