Abstract Syntax Tree (درخت نحو انتزاعی)

در علوم کامپیوتر، نوع داده‌ی درخت (tree) به یک نوع‌داده‌ی انتزاعی گفته می‌شود که ساختار آن به صورت سلسله مراتبی و مشابه درخت (شامل برگ، ساقه و ریشه) می‌باشد. این ساختار داده شامل چندین گره خواهد بود که اولین گره root یا ریشه نامیده شده و هر گره‌ی دیگر زیرمجموعه‌ی آن، خود یک درخت یا تک گره خواهد بود. به آخرین گره از هر مسیر که خود زیرمجموعه‌ای نداشته باشد، یک برگ (leaf) گفته می‌شود.

در تصویر بالا گره‌های 5، 11، 4 و 2 برگ‌های درخت و گره‌ی 2 ریشه درخت می‌باشد.

یک درخت نحو، درختی است که برای ارائه‌ی ساختار نحوی یک متن(معمولا سورس کد) در یک زبان، مورد استفاده قرار می‌گیرد. هر گره (node) از این درخت یک جزء از یک عبارت خواهد بود. کامپایلر‌ها از درخت نحو انتزاعی برای کامپایل (بررسی خطاهای نحوی) کد‌های نوشته شده در یک زبان خاص استفاده می‌کنند.

برای مثال عبارت

 if number > 5
    return 'Bigger than 5'
 else
    return 'Not bigger than 5'

بعد از تفسیر در ساختار درخت نحو انتزاعی به صورت زیر تفسیر می‌شود:

در مثال بالا گره‌‌ی if شامل گره‌های compare، true و false بوده و برگ‌های درخت موارد زیر هستند:

متغیر number

عدد صحیح 5

رشته متنی 'Bigger than 5'

رشته متنی 'Not bigger than 5'

 

online-support-icon