شنبه و اصطلاح کامپیوتری (Syntax and Semantic)
در پست قبلی (لینک) در مورد زمان کامپایل و زمان اجرا صحبت کردیم. گفتیم خطاهای زمان کامپایل دو نوع خطای Syntax و Semantic است.
Syntax و Semantic چه هستند؟
برای اینکه یک برنامه کامپیوتری ایجاد شود ابتدا مسأله به صورت کامل صورت بندی و سپس روش حل مسأله نوشته می شود. در بیشتر مواقع یک برنامه به مسأله های کوچک تر تقسیم شود. به روش حل مسأله الگوریتم می گوییم.
الگوریتم مستقل از زبان برنامه نویسی است و دارای قواعدی است که در یک پست دیگر به آن می پردازیم اما همین قدر بدانیم که وقتی توضیح حل یک مسأله را به زبان مادری به صورت واضح بیان کنیم به آن الگوریتم می گوییم.
سپس الگوریتم با یک زبان برنامه نویسی نوشته و به کامپیوتر داده می شود. زبان های برنامه نویسی عموماً به زبان انسان نزدیک هستند یعنی دستورات آنها کلمات قابل فهم برای انسان است. برنامه نوشته شده از لایه های مختلف برنامه نویسی عبور می کند تا به زبان قابل فهم برای کامپیوتر که همان 0 و 1 هست تبدیل شود.
به طور مثال در اسمبلی که یک زبان برنامه نویسی نزدیک به کامپیوتر هست مجموعه ای از 0 ها و 1 ها کنار هم را یک الگو تعریف می کند و برای آن ها اسم در نظر گرفته شده است.
00011100001000110 می تواند الگویی باشد که به معنای انتقال مقدار 6 به خانه 8 است و به این الگو در اسمبلی نام MOVE R8,#6 داده شده است.
الگوریتم باید به یک فرم و قواعدی برای کامپیوتر قابل فهم شود که به آن Syntax می گویند.
همچنین هر قسمت از قوانین syntax که مجموعه ای از دستورات به کامپیوتر هست معنای مشخصی دارد که به آن Semantic گفته می شود.
Semantic معنای دقیق و واضح برای یک برنامه درست است. برنامه درست یعنی برنامه از نظر قواعد دستوری در کنار هم معنای درستی دارند.
Semantic یک فریم ورک در مورد برنامه و منطق برنامه ارائه می دهد.
چرا به داشتن منطق برنامه نیاز داریم؟
- - مطمئن بشیم که برنامه کاری که می خواهیم انجام میده.
- - بازسازی کد
- به طور مثال به جای دستورات { x = x+1 , x = x+2 } می توانیم بنویسیم x = x+3
- - بهبود کامپایلر
- - ساخت نمونه اولیه کامپایلرها و مفسرها
....
Syntax و Semantic با هم زبان را تشکیل می دهند.
- ۰۲/۱۱/۲۹