ساختار درختی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Tanhabot (بحث | مشارکت‌ها)
جز ربات: اصلاح فاصله مجازی
Tanhabot (بحث | مشارکت‌ها)
جز ربات: ویرایش جزئی
خط ۱:
== تعریف ==
 
یک درخت تجزیه [[درخت_درخت (ساختار_دادهساختار داده)|درختی]] است که نشان دهندهٔ ساختار دستوری(نحوی) یک رشته است. معمولا این نمایش با توجه به دستور زبان های رسمی است. دریک درخت تجزیه گره‌های داخلی، نقش های دستوری و برگ ها یا همان گره‌های خارجی کلمات مربوط به آن نقش هستند.
== کاربرد ها و مثال ها ==
 
[[Imageپرونده:parseTree.svg|thumb|شکل 1.یک درخت تجزیهٔ ساده برای جملات روزمره]]
 
[[Imageپرونده:Parse_Tree.jpg|thumb| شکل 2.مثالی از درخت تجزیه برای زبان های کامپیوتری.]]
 
یکی از نیازمندیهای اساسی که در تولید برنامه­ها نیاز است، این است که بایستی از لحاظ دستوری، درستی برنامه­های نوشته شده تائید گردند. اغلب غیر ممکن است که یک برنامهٔ نوشته شده با زبان های کامپیوتری را به شکل اولیه نوشته شده توسط برنامه ­نویس؛ اجرا کنیم، زیرا اولاً برنامه نوشته شده به احتمال زیاد با خطاهای دستوری کاربر همراه است و ثانیاً اینکه فرم اولیه برنامه ­ها سطح بالا بوده و قابل تبدیل به کد، در همان شکل اولیه ­اش نیست. بنابراین برنامه بایستی در ابتدا به یک شکل بهتری تبدیل شود. بنابراین کامپایلرها سعی می­ کنند که برنامه نوشته شده را به یک فرم یکنوا و ساده­ تر که درخته‌ای تجزیه نام­ دارند، تبدیل کنند.
درخت تجزیه با بحث [[کامپایلر|''کامپایلرها(همگردان)'']] مرتبط است.برنامه‌ای که این چنین درخت هایی را تولید می‌کنند؛ تجزیه کننده (Parser ) نامیده می‌شوند. درخت های تجزیه ممکن است برای جملات و عبارات زبان های روزمره مورد استفاده قرار بگیرند و یا در پردازش زبان های کامپیوتری ( [[زبان برنامه زبان_برنامه_نویسی نویسی| زبان های برنامه نویسی ]] ) مثل: [[زبان زبان_برنامه_نویسی_Cبرنامه |نویسی C|C]]، [[زبان زبان_برنامه_نویسی_جاوا|برنامه نویسی جاوا|جاوا]]، [[زبان زبان_برنامه_نویسی_دلفی|برنامه دلفینویسی دلفی|دلفی]] و ... بکار گرفته شوند. کارکرد این درخت بدین صورت است که با
یک درخت تجزیه مثل دیگر [[درخت_درخت (ساختار_دادهساختار داده)|درخت ها]] از یال و گره تشکیل شده است.
 
در زیر مثال هایی از این نوع درخت را می بینید. البته شکل 1، یک حالت از درخت تجزیهٔ این جمله است، که البته حالت های دیگری را نیز می‌توان متصور بود. درخت تجزیه یک ساختار کامل است که با جمله شروع می‌شود و به نقش های دستوری در برگ های انتهایی، پایان می‌یابد. البته این در صورتی درست است که که عبارتی مورد بررسی یک عبارت یا جمله از جملات روزمره باشد.
خط ۱۶:
 
 
در مورد زبان های کامپیوتری شکل شمارهٔ 2 مثال خوبی است. در این مثال یکی از حالت های تجزیهٔ عبارت ''' (x/y+(10+32))-(3*(Pow(x,y)))''' را می بینید. البته در اینجا هم همان قواعد به گونه‌ای دیگر صادق است. با توجه به قواعد توافقی و همچنین نیاز می‌توان حالت های دیگری از تجزیه را به دست آورد.
با شروع از پایین به بالا و قرار دادن پدر هر یک از گره‌ها به عنوان عملوند ان دو گره؛ عبارت مورد نظر به دست می‌آید.
 
خط ۲۴:
 
 
== پیوند های درونی ==
* [[زبان شناسی محاسباتی]]
*[[ زبان_شناسی_محاسباتی]]
* [[تحلیل‌گر نحوی]]
*[[ تحلیل‌گر_نحوی]]
 
 
== پیوند های بیرونی ==
*[http://courses.soleimanpour.com/web/gpparse.htm درخت تجزیه]
*[http://iranictnews.ir/related/89150/R_79678_____%D8%AF%D9%82%D8%AA-%D8%AF%D8%B1-%D8%AC%D9%85%D9%84%D9%87-%D8%A8%D9%86%D8%AF%DB%8C--%D8%B5%D8%AD%DB%8C%D8%AD.htm تجزیه کردن عبارات]