توسعه یک مفسر با استفاده از TypeScript
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- توسعه یک مفسر با استفاده از TypeScript
- درک مراحل Lexing ،Parsing و Evaluation در Parser
- ایجاد یک محیط REPL برای کار با مفسر
- توسعه مفسر برای یک زبان برنامهنویسی سفارشی
- توسعه و درک منطق Pratt Parser
توضیحات دوره
با سلام، به دوره توسعه یک مفسر با استفاده از TypeScript خوش آمدید.
این دوره یک راهنمای جامع و عملی است که مسیری برای ساخت یک مفسر اختصاصی با زبان TypeScript را ارائه میدهد. این دوره از کتاب عالی Writing An Interpreter In Go نوشته Thorsten Ball الهام گرفته شده است و تمام اعتبار آن متعلق به ایشان است. در این دوره، دنیای پیچیده مفسرها رمزگشایی خواهد شد.
دوره با معرفی مفاهیم اساسی مفسرها و زبانهای برنامهنویسی آغاز میشود تا هم برای مبتدیان و هم برای توسعهدهندگان باتجربه قابل استفاده باشد. در طول دوره، یک مفسر با استفاده از TypeScript برای یک زبان برنامهنویسی سفارشی به نام Monkey به صورت عملی پیادهسازی میشود.
مفاهیم کلیدی مانند تحلیل لغوی، تجزیه و ارزیابی عبارات مورد بررسی قرار میگیرند. همچنین چگونگی طراحی و پیادهسازی یک Lexer و یک Parser بازگشتی آموزش داده میشود تا دانشپذیران اصول محکم در تکنیکهای پردازش زبان پیدا کنند.
این دوره به توسعهدهندگانی که به دنبال درک عمیقتری از پیادهسازی زبانها هستند، کمک شایانی خواهد کرد.
در حین فرآیند توسعه مفسر، موضوعات پیشرفتهتری مانند Closures، توابع First-class و مدیریت خطا نیز فرا گرفته میشود.
امید است که در پایان دوره، درک عمیقی از چگونگی عملکرد مفسرها حاصل شده و مهارت ساخت زبان برنامهنویسی اختصاصی کسب شود؛ امری که افقهای جدیدی را برای بررسی و خلاقیت در دنیای توسعه نرمافزار میگشاید.
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان سطح متوسط JavaScript / TypeScript
توسعه یک مفسر با استفاده از TypeScript
-
مقدمه 05:05
-
نمای کلی از مفسر 03:10
-
مروری بر زبان برنامهنویسی Monkey 05:08
-
مقدمهای بر تحلیل لغوی 03:05
-
نصب ابزارها 03:04
-
راهاندازی اولیه پروژه 08:46
-
پیکربندی Vitest به عنوان Test Runner 09:26
-
نوع Token 08:19
-
پیادهسازی متد Next Token در Lexer 21:15
-
توضیح مجدد پیادهسازی Next Token در Lexer 04:54
-
گسترش تست برای دریافت ورودی معتبر زبان Monkey 08:27
-
پیادهسازی خواندن Tokenهای Identifier 11:17
-
نادیده گرفتن Whitespace و متد Lookup Ident 10:12
-
خواندن اعداد 07:10
-
گسترش Tokenهای تککاراکتری 05:42
-
بروزرسانی متد Next Token 02:21
-
گسترش کلمات کلیدی 06:41
-
گسترش Tokenها با Tokenهای دو کاراکتری 07:38
-
ایجاد یک محیط REPL 10:06
-
رفع مشکل در REPL 01:04
-
مقدمهای بر Parser 09:08
-
مقدمهای بر تجزیه دستورات Let 02:39
-
درخت AST برای Nodeهای Statement و Expression 05:19
-
درخت AST برای Let و Identifierها 07:37
-
شروع پیادهسازی Parser 06:09
-
مورد تست برای تجزیه دستورات Let 12:21
-
توضیح مورد تست 03:15
-
پیادهسازی متد parseStatement 05:32
-
تکمیل تجزیه دستور let 13:07
-
افزودن مدیریت خطا به Parser 07:31
-
تجزیه دستورات Return 09:52
-
مقدمهای بر تجزیه Expressionها 04:19
-
بازسازی ماژول AST 04:17
-
افزودن متد رشتهای به Root Node در AST 17:00
-
متدهای Infix و Prefix 06:30
-
مورد تست برای Identifier Expression 06:58
-
پیادهسازی تجزیه Identifierها 13:39
-
تجزیه Integer Literalها 13:03
-
تست کیس برای Prefix Expression 09:45
-
پیادهسازی Prefix Expression 15:00
-
تست کیس برای Infix Expression 05:29
-
پیادهسازی Infix Expression 20:12
-
تست اولویت عملگرها 05:32
-
چگونگی عملکرد Pratt Parser 08:42
-
بازسازی تستها 14:11
-
درخت AST و تست عبارات Boolean 07:18
-
پیادهسازی Boolean Expression 09:20
-
پیادهسازی عبارات گروهبندی شده 10:53
-
درخت AST برای If Expression 07:25
-
تست کیس برای If Else Expression 09:39
-
پیادهسازی If Else Expression 14:43
-
درخت AST و تست کیس برای Function Literal 10:27
-
پیادهسازی Function Literal 13:47
-
درخت AST و تست کیس برای Call Expression 08:15
-
پیادهسازی Call Expression 11:01
-
کار روی موارد Todo 07:49
-
تکمیل Parser و بروزرسانی REPL 06:16
-
مقدمه ارزیابی 06:56
-
نمایش Object 03:41
-
نمایش Integer 05:01
-
نمایش مقادیر Boolean و Null 04:14
-
پیادهسازی ارزیابی Integer 19:16
-
پیادهسازی ارزیابی Boolean 06:58
-
پیادهسازی Null 01:18
-
ارزیابی Prefix Expression 10:20
-
ارزیابی Infix (اعداد صحیح) 09:21
-
ارزیابی Infix (اعداد صحیح) - عملگرهای Boolean 03:18
-
ارزیابی Infix (مقادیر Boolean) 04:06
-
عبارات شرطی (Conditionals) 13:53
-
دستور Return 17:39
-
مدیریت خطا (Error Handling) 22:48
-
دستور Let 18:29
-
توابع بخش 1 12:15
-
توابع بخش 2 25:02
-
پایان ارزیابی 03:26
-
مقدمه 01:20
-
ساختار داده String - بخش Lexer 07:39
-
ساختار داده String - بخش Parser 06:12
-
ساختار داده String - بخش Evaluator 04:49
-
ساختار داده String - الحاق 05:32
-
توابع Builtin 03:45
-
تابع Builtin - تابع len (برای string) 23:32
-
آرایه - بخش Lexer 03:33
-
آرایه - بخش Parsing 13:52
-
تجزیه عبارات Index آرایه 12:37
-
ارزیابی Array Literalها 07:17
-
ارزیابی عبارات Index آرایه 12:14
-
توابع Builtin آرایه 12:52
-
ساختار داده Hash - بخش Lexer 03:07
-
ساختار داده Hash - بخش Parsing 17:32
-
ساختار داده Hash - کلید Hash 14:48
-
ساختار داده Hash - نمایش Object 06:19
-
ساختار داده Hash - ارزیابی 18:18
-
ساختار داده Hash - عبارت Index 10:41
-
متد Builtin - متد Puts 03:55
-
نتیجهگیری 00:47
مشخصات آموزش
توسعه یک مفسر با استفاده از TypeScript
- تاریخ به روز رسانی: 1404/10/04
- سطح دوره:متوسط
- تعداد درس:96
- مدت زمان :14:25:54
- حجم :6.57GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy