Compiler: Perbedaan utama antara penganalisa leksikal dan pengurai?


Jawaban 1:

Mari kita melihatnya sebagai analogi, menganggap bahasa Inggris sebagai bahasa pemrograman kita.

Analis leksikal membagi input menjadi token yang valid, yaitu entitas yang lebih kecil yang masuk akal dan didefinisikan dengan baik dalam bahasa:

Misalnya - "beautiful" adalah token yang valid karena merupakan kata yang valid dalam bahasa Inggris.

Sedangkan "dsefuewfiu" bukan token yang valid karena tidak masuk akal.

Sedangkan Parser memeriksa tata bahasa, yaitu kalimat mematuhi hukum pembentukan kalimat dalam bahasa Inggris:

Misalnya- "Nama saya Rahul" adalah kalimat bahasa Inggris yang valid.

Sedangkan "nama saya adalah Rahul" tidak masuk akal.

Ini adalah perbedaan mendasar antara penganalisa leksikal dan pengurai.


Jawaban 2:

Alat analisis leksikal biasanya mem-parsing dalam hal ekspresi reguler, memberikan output yang digunakan parser dalam bentuk token: pengidentifikasi, string, angka, operator.

Parser mengimplementasikan tata bahasa level yang lebih tinggi menggunakan token sebagai input. Ia melakukan hal-hal yang tidak bisa dilakukan oleh penganalisa leksikal, seperti tanda kurung keseimbangan.

Secara teknis tidak diperlukan untuk memecahnya menjadi dua langkah seperti ini, tetapi secara konseptual, lebih mudah untuk melakukannya.


Jawaban 3:

Analis leksikal adalah tahap pertama dari proses kompilasi yang mengambil program sumber sebagai input dan menghasilkan serangkaian karakter yang berarti yang disebut leksem ...

Leksem ini berfungsi sebagai input untuk

Tahap analisis sintaksis berikutnya.

Dalam fase ini parser mengambil lexeme ini sebagai input dan menghasilkan output dalam bentuk pohon sintaks ......