در خدمت شما هستیم با دانلود رایگان کتاب آموزش نظریه زبانها و ماشین از وب سایت آموزش برنامه نویسی سورس باران. این کتاب پیش نیاز درس طراحی کامپایلر برای دانشجویان نرم افزار و برنامه نویسان است. با یادگیری زبانها و گرامرها میتوانید نحوه کار کامپایلر و همچنین طراحی زبان های برنامه سازی را متوجه شوید. یادگیری این درس بدون مدرس کار سادهای نمیباشد و در این آموزش تجربه حداقل پانزده سال تدریس نویسنده در اختیار شما گذاشته میشود.
این کتاب نوشته فرشید شیرافکن و 260 صفحه ارائه شده که در آن با زبان، گرامر و ماشین آشنا می شوید.
کتاب آموزش نظریه زبانها و ماشین
- فصل ۱: عبارت منظم – زبان منظم
- فصل ۲: گرامر – گرامر منظم
- فصل ۳: اتوماتای متناهی (DFA, NFA)
- فصل ۴: زبان و گرامر مستقل از متن
- فصل ۵: ابهام – ساده سازی گرامر – فرمهای نرمال
- فصل ۶: اتوماتای پشتهای (DPDA, NPDA)
- فصل ۷: ماشینهای تورینگ (TM)
- فصل ۸: زبانهای بازگشتی – گرامر بدون محدویت و حساس به متن
حتما مشاهده کنید : آرشیو کامل کتاب های آموزش برنامه نویسی سورس باران
نظریه زبانها و ماشین چیست؟
شايد بپرسيد نظريه زبانها کجا کاربرد دارد؟ اصلا به چه درد ميخورد؟ جواب سوال را به اين شکل بگوييم، الان در اين صفحه شما داريد با نظريه زبانها و ماشين ها آشنا ميشويد. همه اين زبانها يا کامپايلر دارد يا مفسر و بعضي هم هردو را دارا هستند.
اين کامپايلر و مفسر وظيفهشان اين هست که دستورايي که شما براي کامپيوتر به زبان محاوره داريد داخلش مينويسيد، به زبان قابل فهم ماشين تبديل ميکند (يعني همون صفر و يک). فرض کنيد در آينده شما ميخواهيد يک زبان برنامه نويسي طراحي و ابداع کنيد خب قبل از همه چيز بايد کامپايلر زبان خودتان را بنويسيد و به ماشين بگوييد در اين زبان هر دستور به چه شکلي هست و چه برداشتي بايد از اين دستور انجام شود. براي طراحي يک کامپايلر شما بايد با نظريه زبانها و ماشينها آشنا باشيد و بلکه هم بيشتر از آشنايي بايد بدانيد.
در علوم نظريه رايانهها، نظريهي اتوماتا به انگليسي Automata theory يا نظريهي ماشينها عبارت است از بررسي رياضي ماشينهاي محاسبهگر انتزاعي و تواناييهاي آنها براي حل مسايل. به اين ماشينهاي انتزاعي اتوماتا گفته ميشود. اين نظريه بسيار نزديک به نظريه زبان صوري است. بهطوريکه اتوماتا اغلب توسط دسته? زبانهاي رسمي قابل تشخيص دستهبندي ميشوند. اتوماتا نقش اساسي در طراحي کامپايلر و تجزيه کردن (parsing) ايفا ميکند. زبانهايي که توسط اين ماشينها بررسي ميشوند زبان هاي فرمال هستند.
يک ماشين، يک مدل رياضي از ماشين حالات متناهي (FSM) است. يک ماشين شامل مجموعهاي متناهي از حالات است که بر اساس ورودي و تابع گذار خود (که ميتواند به صورت جدول باشد)، از يک حالت به حالت ديگر، تغيير وضعيت ميدهد. اين تابع انتقال به ماشين خودکار ميگويد که به کدام حالت بعدي با توجه به حالت فعلي و نماد داده شده، برود. به صورت کلي، يک ماشين شامل مجموعهاي متناهي يا شماري از حالات مختلف است.
يک ماشين خودکار قرار است که بر روي تعدادي ورودي از دنباله يا رشته در مراحل زماني گسسته اجرا شود. در هر مرحله از زمان، ماشين يک ورودي که از مجموعهاي از نمادها يا حرفها برداشته شدهاست را، ميگيرد که به آن الفبا (Alphabet) گفته ميشود. يک ماشين حاوي مجموعهي متناهي از حالت هاست. در هر لحظه از اجرا بسته به نوع ماشين، ميتواند در يکي يا چند تا از حالتهايش باشد. در هر مرحلهي زماني، هنگامي که ماشين يک نماد را ميخواند، بر اساس حالت فعلي و نماد خوانده شده به حالت بعدي پرش يا گذر ميکند.
اين تابع روي حالت فعلي و نماد ورودي تابعگذار گفته ميشود. ماشين تا زماني که يک ورودي کامل خوانده شود ورودي را نماد به نماد در دنبالهاي ميخواند و از حالتي به حالت ديگر بر اساس تابع گذار، گذر ميکند. زماني که ورودي نهايي خوانده ميشود، اصطلاحاً ماشين متوقف شدهاست و به اين حالت، حالت نهايي ميگويند. بر اساس حالت نهايي گفته ميشود که ماشين يک ورودي را قبول يا رد کردهاست. زير مجموعهاي از حالتهاي ماشين وجود دارد که به عنوان مجموعهي حالتهاي مورد قبول تعريف ميشود. اگر حالت نهايي يک حالت مورد قبول باشد ماشين ورودي را پذيرفته است. در غير اين صورت ورودي رد ميشود. به مجموعهاي از وروديها که توسط ماشين پذيرفته ميشود زبان قابل تشخيص ماشين ميگويند.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- حجم فايل : 5.73 مگابایت
- منبع : سورس باران
- رمز فايل : www.sourcebaran.com
- انتشار: ۱۰ آبان ۱۴۰۱
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- رپورتاژ
- فروشگاه
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- Go
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس