توسعه مفسر با استفاده از زبان برنامهنویسی گو
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- ایجاد مفسر از ابتدا
- درک مراحل مختلف ساخت مفسر
- یادگیری ساخت مفسر با استفاده از زبان برنامهنویسی گو
- پیروی از TDD هنگام ساخت مفسر با استفاده از گو
- ایجاد ساختارهای داده مانند آرایهها و هش
توضیحات دوره
به دوره توسعه یک مفسر با استفاده از زبان برنامهنویسی گو خوش آمدید.
این دوره یک راهنمای جامع و عملی است که شما را در مسیر ساخت مفسر خودتان با زبان برنامهنویسی گو همراهی میکند. این دوره از کتاب فوقالعاده «نوشتن یک مفسر در گو» نوشته Thorsten Ball الهام گرفته شده است. تمام احترام و تقدیرها متعلق به ایشان است. در این دوره دنیای پیچیده مفسرها را ساده و قابل فهم خواهیم کرد.
دوره با معرفی مفاهیم اساسی مفسرها و زبانهای برنامهنویسی آغاز میشود، به گونهای که برای مبتدیان و توسعهدهندگان باتجربه قابل درک باشد. ما یک مفسر با استفاده از گو برای زبان برنامهنویسی سفارشی به نام Monkey خواهیم ساخت و همه موارد را به صورت عملی دنبال میکنیم.
در این مسیر مفاهیم کلیدی مانند تحلیل لکسیکال، تجزیه و ارزیابی عبارات را یاد خواهیم گرفت. طراحی و پیادهسازی یک lexer و تجزیهگر کاهشی بازگشتی را انجام میدهیم که پایهای قوی در تکنیکهای پردازش زبان فراهم میکند.
این دوره به توسعهدهندگانی که میخواهند درک عمیقتری از پیادهسازی زبان پیدا کنند، کمک میکند. استفاده از زبان گو به دلیل سادگی و آسان بودن آن انتخاب شده است.
در طول توسعه مفسر، مباحث پیشرفتهتر مانند closures، توابع first-class و مدیریت خطا را نیز خواهیم آموخت.
در پایان دوره، انتظار میرود که درک عمیقی از نحوه کار مفسرها به دست آورده باشید و مهارت لازم برای ساخت زبان برنامهنویسی خود را کسب کرده باشید. این موضوع راه را برای اکتشاف و خلاقیتهای جدید در دنیای توسعه نرمافزار باز میکند.
این دوره برای چه کسانی مناسب است؟
- برنامهنویسان مبتدی زبان گو که علاقهمند به درک نحوه ساخت یک مفسر هستند.
توسعه مفسر با استفاده از زبان برنامهنویسی گو
-
مقدمه 03:25
-
نگاه کلی به مفسر 04:58
-
نصب 02:19
-
مقدمه زبان برنامهنویسی Monkey 04:46
-
مرحله lexer 02:06
-
برنامهای که برای lexing استفاده خواهیم کرد 02:21
-
تفسیر دستی 01:52
-
ساختار تایپ توکن 03:38
-
ثابتها در تایپ توکن 03:00
-
تست lexer 09:39
-
تابع جدید lexer 03:02
-
خواندن تابع helper کاراکتر 04:11
-
دریافت توکن بعدی 08:13
-
بروزرسانی تست برای متد NextToken 07:54
-
بروزرسانی متد NextToken 06:24
-
جستجوی شناسهها 03:21
-
نادیده گرفتن فاصلهها 03:07
-
خواندن اعداد 05:12
-
افزودن توکنهای تک کارکتری بیشتر 04:58
-
بروزرسانی Lexer برای تجزیه توکنهای تک کارکتری جدیدا اضافه شده 03:48
-
بروزرسانی ورودی تست با عبارات شرطی 03:44
-
افزودن کلیدواژههای جدید برای موفقیت تست 02:35
-
تفسیر چندین کاراکتر ویژه 07:45
-
افزودن REPL 09:53
-
مقدمه تجزیهگر 07:27
-
نکتهای درباره مولدهای تجزیهگر 02:45
-
انواع تجزیهگر و انتخاب آن 02:10
-
مقدمه دستورات let 01:45
-
پکیج AST با رابطها 05:03
-
مدیریت دستور let 05:44
-
شروع کار با پکیج تجزیهگر 09:04
-
تجزیهگر کاهشی بازگشتی با استفاده از شبهکد 03:39
-
تست تجزیه برنامه دستور let 10:41
-
پیادهسازی منطق برنامه تجزیهگر 10:06
-
افزودن فیلد خطاها به تجزیهگر 06:47
-
بروزرسانی متد expect peek برای افزودن خطاها 03:04
-
افزودن ساختار دستور return در پکیج AST 03:09
-
افزودن تست برای دستور return 04:29
-
بروزرسانی تجزیهگر برای تجزیه دستور return 02:45
-
چالشها در تجزیه عبارات 04:32
-
عبارات در زبان برنامهنویسی Monkey 03:54
-
افزودن ساختار دستور عبارت 03:24
-
افزودن متد رشته به رابط Node 08:10
-
تست متد رشته 05:41
-
شروع پیادهسازی برای تجزیهگر Pratt 05:40
-
افزودن متدهای helper برای افزودن Infix و Prefix به تایپ توکن 02:40
-
افزودن تست برای تجزیه شناسهها 10:19
-
افزودن ثابتهای مقدم 06:14
-
تکمیل تجزیه یک شناسه 11:26
-
تست تجزیه لیترال عدد صحیح 07:03
-
کدنویسی برای تجزیه لیترال عدد صحیح 06:27
-
افزودن تست برای تجزیه عملگر پیشوندی 11:02
-
ایجاد تایپ AST برای عبارت پیشوندی 05:56
-
تکمیل پیادهسازی منطق برای تجزیه عبارات 04:01
-
نوشتن تست برای عبارت Infix 08:54
-
افزودن تایپ InfixExpression 04:10
-
پیادهسازی متدهای عبارت Infix 15:16
-
افزودن مورد تست تقدم عملگرها 10:22
-
بررسی الگوریتم تجزیهگر Pratt 09:02
-
استک فراخوانی تجزیهگر Pratt 06:03
-
ریفکتور کردن تست تجزیهگر 15:06
-
AST برای بولی 02:53
-
پیادهسازی منطق تجزیهگر برای عبارت بولی 12:03
-
تست و پیادهسازی عبارت گروهبندی شده 08:03
-
نمایش AST برای عبارت if 09:11
-
موارد تست عبارت if 09:55
-
پیادهسازی عبارت if 08:47
-
پیادهسازی بلوک else در عبارت if 03:37
-
AST برای لیترال تابع 06:35
-
افزودن مورد تست برای تجزیه لیترال تابع 08:01
-
پیادهسازی تجزیهگر لیترال تابع 15:38
-
ساختار AST برای عبارت فراخوانی 05:16
-
مورد تست برای تجزیه عبارت فراخوانی 07:38
-
پیادهسازی تجزیه عبارت فراخوانی 06:41
-
فیکس کردن تقدم نادرست infix fn در عبارت فراخوانی 06:15
-
مورد تست برای تجزیه آرگومان عبارت فراخوانی 02:03
-
بازبینی تجزیه دستورات let و return برای تکمیل TODO 13:32
-
بروزرسانی REPL برای استفاده از پکیج تجزیهگر 08:07
-
آشنایی با ارزیابی 03:41
-
استراتژیهای ارزیابی 03:58
-
شبه کد ارزیابی 02:20
-
نمایش آبجکتها 02:26
-
رابط آبجکت جدید 04:39
-
آبجکت عدد صحیح 03:58
-
آبجکتهای بولی و Null 04:21
-
تست برای ارزیابی عبارت عدد صحیح 06:25
-
پیادهسازی اولیه Eval برای تجزیه عبارات عدد صحیح 05:29
-
تکمیل حلقه خواندن، ارزیابی و چاپ 02:49
-
پیادهسازی آبجکت بولی 07:31
-
پیادهسازی آبجکت Null 00:54
-
ارزیابی Bang عملگر پیشوندی 10:37
-
ارزیابی Minus عملگر پیشوندی 03:55
-
ارزیابی Infix عدد صحیح - بخش 1 10:22
-
ارزیابی Infix عدد صحیح - بخش 2 04:03
-
ارزیابی Infix بولی 05:09
-
ارزیابی شرطیها 11:20
-
ارزیابی تایپ بازگشت 08:09
-
فیکس کردن مشکل شرطیهای تودرتو با تایپ بازگشت 05:44
-
آبجکت خطا 09:02
-
پیادهسازی آبجکت خطا - بخش 1 05:18
-
پیادهسازی آبجکت خطا - بخش 2 06:54
-
تست برای ارزیابی دستور let 03:46
-
افزودن آبجکت محیطی 10:48
-
تکمیل پیادهسازی ارزیابی دستور let 05:05
-
ارزیابی اولیه توابع 10:31
-
ارزیابی تابع - بخش 2 05:25
-
ارزیابی تابع - بخش 3 04:08
-
ارزیابی تابع - بخش 4 06:58
-
تکمیل پیادهسازی ارزیابی تابع 06:58
-
دلیل unwrapping 01:01
-
آشنایی با مفهوم closure 06:09
-
جمعبندی بخش 03:05
-
مقدمه 01:20
-
مورد تست برای تایپ داده رشته (مرحله lexer) 02:44
-
تکمیل مرحله lexer برای تایپ داده رشته 02:56
-
مرحله تجزیهگر برای تایپ داده رشته 07:27
-
مرحله ارزیابی رشته 05:11
-
پیادهسازی الحاق رشته 07:34
-
آبجکت داخلی 04:16
-
مورد تست برای تابع داخلی len 07:37
-
پیادهسازی تابع داخلی len 10:54
-
آشنایی با آرایه 02:04
-
مرحله lexer برای آرایه 04:07
-
مرحله تجزیه آرایه 11:08
-
تجزیه عبارات ایندکس 15:17
-
ارزیابی لیترال آرایه 07:47
-
ارزیابی عبارت ایندکس آرایه 11:19
-
اصلاح تابع داخلی len برای آرایهها 01:54
-
توابع داخلی First وd Last 04:42
-
توابع داخلی rest و push 05:22
-
مرحله lexer برای هش 03:32
-
تجزیه هش - بخش 1 10:43
-
تجزیه هش - بخش 2 09:57
-
کلید هش 12:31
-
سیستم آبجکت برای هش 04:47
-
ارزیابی هش 14:28
-
اتمام کار با ساختار داده هش 10:20
-
تابع داخلی نهایی - puts 02:58
-
نتیجهگیری 02:21
مشخصات آموزش
توسعه مفسر با استفاده از زبان برنامهنویسی گو
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:139
- مدت زمان :14:29:02
- حجم :5.29GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy