Apakah Lookahead dalam Parsing?
Lookahead ialah ciri beberapa bahasa pengaturcaraan yang membolehkan penghurai mengintip ke hadapan pada token atau token seterusnya dalam aliran input dan menggunakan maklumat tersebut untuk menentukan struktur program.
Dalam erti kata lain, lookahead membolehkan penghurai melihat perkara yang akan datang seterusnya dalam aliran input sebelum ia benar-benar menghuraikannya. Ini boleh berguna untuk menyelesaikan kekaburan dalam tatabahasa, seperti apabila ayat boleh dihuraikan dalam pelbagai cara.
Sebagai contoh, pertimbangkan ayat berikut:
"Kucing mengejar tetikus."
Ayat ini samar-samar dari segi tatabahasa kerana ia boleh dihuraikan sama ada "Kucing mengejar tetikus" atau "Mengejar tetikus kucing." Untuk menyelesaikan kekaburan ini, penghurai mungkin menggunakan lookahead untuk mengintip ke hadapan pada token seterusnya dan menentukan penghuraian yang betul. Jika token seterusnya ialah "the", maka parsing pertama adalah betul, tetapi jika token seterusnya "dikejar", maka parsing kedua adalah betul.
Lookahead boleh dilaksanakan dengan cara yang berbeza bergantung pada bahasa dan parser yang digunakan. Beberapa teknik biasa untuk melaksanakan pandangan ke hadapan termasuk:
1. Left Recursion: Dalam teknik ini, parser memanggil dirinya secara rekursif untuk menghuraikan seluruh aliran input, menggunakan maklumat yang dikumpul daripada token semasa untuk menentukan cara menghuraikan token seterusnya.
2. Rekursi Kanan: Dalam teknik ini, penghurai secara rekursif memanggil dirinya sendiri untuk menghuraikan token sebelumnya, menggunakan maklumat yang dikumpul daripada token semasa untuk menentukan cara menghuraikan token seterusnya.
3. Penghuraian Ramalan: Dalam teknik ini, penghurai menggunakan model statistik untuk meramalkan token seterusnya dalam aliran input dan menggunakan ramalan itu untuk membimbing penghuraiannya.
4. Penghuraian CYK: Dalam teknik ini, penghurai menggunakan jadual nilai untuk menjejaki pokok penghuraian yang mungkin bagi aliran input dan menggunakan maklumat pandangan hadapan untuk memangkas ruang carian dan mencari pokok penghuraian yang betul.
Secara keseluruhannya, lihat hadapan ialah ciri berkuasa yang boleh membantu penghurai mengendalikan kekaburan dalam tugas pemprosesan bahasa semula jadi, tetapi ia juga boleh mahal dari segi pengiraan dan mungkin tidak selalu diperlukan bergantung pada kes penggunaan tertentu.



