نحو
در علم کامپیوتر، اصطلاح نحو یک زبان کامپیوتری به مجموعه قوانینی اطلاق میشود که ترکیبی از نمادها را تعریف میکنند که به عنوان یک قطعه یا سند با ساختار صحیح در آن زبان در نظر گرفته میشوند. این هم برای زبانهای نشانهگذاری که سند نشاندهنده دادهها است و هم زبانهای برنامهنویسی، جایی که سند نشاندهنده کد منبع است، صدق میکند. نحو یک زبان شکل سطحی آن را مشخص می کند. زبان های رایانه ای که مبتنی بر متن هستند بر اساس توالی کاراکترها هستند. از طرف دیگر زبان های برنامه نویسی بصری بر اساس ارتباط بین نمادها (که ممکن است گرافیکی یا متنی باشند) و بر اساس چیدمان فضایی هستند. گفته می شود اسنادی که از نظر نحوی نامعتبر هستند دارای خطای نحوی هستند.
نحو - شکل - در تقابل با معناشناسی - معنی است. در پردازش زبان های رایانه ای، پردازش معنایی معمولاً پس از پردازش نحوی انجام می شود. با این حال، در برخی موارد پردازش معنایی برای تجزیه و تحلیل کامل نحوی مهم است، و بنابراین آنها به طور همزمان یا با هم انجام می شوند. در یک کامپایلر، تحلیل نحوی شامل قسمت جلویی است، در حالی که تحلیل معنایی شامل پایانه (و انتهای میانی در مواردی که فاز متمایز است) را شامل می شود.
سطوح نحو
نحو زبان رایانه معمولاً به سه سطح مختلف تقسیم می شود:
تمایز به این روش ماژولار بودن را ایجاد می کند که به هر سطح اجازه می دهد تا به طور جداگانه و اغلب به طور مستقل پردازش شود. با تبدیل کردن توالی خطی کاراکترها به یک توالی خطی از نشانهها توسط یک واژگان شروع میشود: به این تحلیل واژگانی یا lexing گفته میشود.
دوم، تجزیه کننده دنباله خطی نشانه ها را به چیزی تبدیل می کند که درخت نحو سلسله مراتبی نامیده می شود. این به عنوان تجزیه نامیده می شود.
ثالثاً، تحلیل زمینه ای بررسی ها را حل می کند و انواع را نام می برد. مرحله تجزیه خود را می توان به دو بخش تقسیم کرد: درخت نحو مشخص یا درخت تجزیه که توسط دستور زبان تعیین می شود، اما برای استفاده عملی بسیار دقیق است، و درخت نحو انتزاعی (AST)، که این را به شکل ساده می کند. که قابل استفاده است
نحو در مقابل معنایی
نحو یک زبان، فرم یک برنامه معتبر را توصیف می کند، اما هیچ اطلاعاتی در مورد معنای برنامه یا نتایج حاصل از اجرای آن برنامه ارائه نمی دهد. معنایی که به ترکیبی از نمادها داده میشود توسط معناشناسی (اعم از کدگذاری سخت یا رسمی در اجرای مرجع) مدیریت میشود. همه برنامه هایی که از نظر نحوی صحیح هستند از نظر معنایی صحیح نیستند. با این وجود، تعداد زیادی از برنامههای صحیح نحوی، طبق قوانین زبان، بد شکل هستند. و ممکن است (با توجه به مشخصات زبان و همچنین درستی اجرا) منجر به خطا در اجرا یا ترجمه شود. در برخی موارد، چنین برنامه هایی می توانند رفتار نامشخصی از خود نشان دهند. حتی در مواقعی که یک برنامه در یک زبان به خوبی تعریف شده است، باز هم می تواند معنایی داشته باشد که نویسنده آن قصد ندارد.
در مثال یک زبان طبیعی، ممکن است غیرممکن باشد که به جمله ای که از نظر گرامری صحیح باشد، معنی داد. مثلا،