آموزش نوشتن پارسر در C++ (برای عبارات ریاضی / SQL و غیره) - آخرین آپدیت

دانلود Writing Parsers in C++ ( for MathExpressions / SQL etc )

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

پروژه‌های C++ و ساخت پارسرها

با پروژه‌های پیشرفته C++ و ساخت پارسرها آشنا شوید!

  • پروژه‌های C++
  • پارسر کوئری SQL (SQL Query Parser)
  • پارسر عبارات ریاضی پیشرفته (Advanced Math Expression Parsers)
  • پیاده‌سازی گرامر در C/C++ (CFG Grammar implementation)
  • نوشتن پارسرها (Writing Parsers)
  • محاسبه عبارات ریاضی پیچیده (Calculation of Complex mathematical expressions)
  • پارسر برای کوئری‌های SQL (Parser for SQL Queries)
  • پیاده‌سازی گرامرها در C/C++ (Implementing Grammars in C/C++)

پیش‌نیازهای دوره

  • مفاهیم پایه‌ای برنامه‌نویسی شیءگرا (Basic OOPs Concepts)
  • استفاده از عبارات منظم (Using an Writing Regular Expressions)
  • تبدیل Infix به Postfix با عملگرهای پیشرفته (Infix to postfix Conversion involving advanced Operators)
  • الگوریتم‌های درخت جستجوی دودویی (Post-Order) (Binary Search Tree Algorithms ( Post-Order ))

تا به حال به این فکر کرده‌اید که رابط‌های خط فرمان (CLIs) چگونه برای دستگاه‌های مختلف نوشته می‌شوند؟ مثلاً، چگونه یک پارسر برای کوئری‌های SQL بنویسیم؟ یا چگونه پارسری برای تجزیه و ارزیابی عبارات ریاضی بنویسیم، آن هم فقط زمانی که معتبر باشند؟

این دوره آموزشی، کلید پیاده‌سازی پارسرهای عمومی در C/C++ را به شما می‌دهد. ما با کدنویسی شیءگرا در C++، پارسر یا همان کتابخانه عبارات ریاضی را خواهیم ساخت. این کتابخانه به برنامه‌نویسان کمک می‌کند تا برنامه‌هایی را که نیاز به محاسبه عبارات ریاضی پیچیده دارند، به راحتی توسعه دهند. علاوه بر این، نحوه تجزیه عبارات مربوط به نامساوی‌ها یا عبارات منطقی را نیز پوشش خواهیم داد.

پس از آماده‌سازی و تست کامل این پروژه، آن را به عنوان یک جعبه سیاه (black box) وارد پروژه‌های بزرگ‌تر خواهیم کرد تا مشکلاتی چون پیاده‌سازی سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS) از ابتدا را حل کنیم.

موفق باشید و از یادگیری لذت ببرید! این دوره بسیار جذاب است و مطمئنیم که از آن بسیار لذت خواهید برد. این یک دوره پرانرژی خواهد بود!

دستور کار دوره (Agenda)

  • نوشتن پارسرها با استفاده از Lex (GNU Lexical analyzer)
  • پیاده‌سازی گرامرها در C/C++
  • ساخت و ایجاد درختان عبارتی (Construct and Build Expression Trees)
  • ارزیابی درختان عبارتی، نامساوی‌ها و عبارات منطقی (Evaluate Expression Trees, Inequalities, and Logical Expressions)

مطالعه موردی (Case Study)

نوشتن پارسرها برای تجزیه کوئری‌های SQL


سرفصل ها و درس ها

مقدمه Introduction

  • پیش‌نمایش! Teaser !

  • دستور جلسه Agenda

  • دسترسی به کد Code Access

  • بررسی چک پوینت گیت Checking the Git Checkpoint

راه اندازی پارسر Setting up the Parser

  • نقشه راه این دوره Road Map of this Course

  • ایجاد فایل Parser.l Creating Parser.l file

  • اضافه کردن عبارات منظم بیشتر Adding more Regular Expressions

  • تطابق yylex() و عبارت منظم yylex( ) and Regular Expression Matching

  • توسعه زیرساخت پارسر Developing Parser Infrastructure

  • راه اندازی پشته تجزیه معنایی (Lexical Stack) Setting up Lexical Stack

  • متغیر سراسری پارسر (کرسر) Parser Global Variable ( Cursor )

  • cyylex() و yyrewind() cyylex() and yyrewind()

  • اضافه کردن دو API دیگر توسط خودتان Add two more APIs by yourself

  • چک پوینت کردن پشته تجزیه معنایی Checkpointing the Lexical Stack

  • ایجاد فایل ParserExport.h Creating a ParserExport.h file

  • بیایید پارسر نمایشی را بنویسیم Lets Write Demo Parser

  • تکلیف الزامی Mandatory Assignment

  • لمس نهایی! Final Touch !

گرامر مستقل از متن (CFG) Context Free Grammar ( CFG )

  • گرامر مستقل از متن (CFG) - مقدمه CFG - Introduction

  • قوانین تولید Production Rules

  • پیاده‌سازی گرامرهای مستقل از متن Implementing CFGs

  • پیاده‌سازی گرامر G2 - تمرین Implementing Grammar G2 - Exercise

  • تولید لیست در گرامر مستقل از متن List Generation in CFG

  • تجزیه کوئری SQL Parsing SQL Query

  • تکلیف پیاده‌سازی گرامر مستقل از متن Assignment on CFG Implementation

گرامر مستقل از متن برای عبارات ریاضی CFG for MathExpressions

  • عبارات Expressions

  • گرامر عبارات ریاضی Grammar for Mathematical Expressions

  • مدیریت بازگشت چپ Handling Left Recursion

  • پیاده‌سازی گرامر عبارات ریاضی Implementing Mathematical Expression Grammar

  • گرامر تجزیه نابرابری‌ها Grammar for Parsing Inequalities

  • تکلیف Assignment

تبدیل infix به postfix Infix to Postfix Conversion

  • API تبدیل infix به postfix Infix to Postfix Conversion API

  • آزمایش الگوریتم تبدیل infix به postfix شما Test your Infix to Postfix Conversion Algorithm

  • الگوریتم پیشرفته تبدیل infix به postfix Advanced Infix to Postfix Algorithm

  • آزمایش الگوریتم تبدیل پیشرفته infix به postfix شما Test your Infix to Postfix Enhanced Conversion Algorithm

ساخت درخت‌های عبارت Construction of Expression Trees

  • نمودار کلاس درخت عبارت Expression Tree Class Diagram

  • اضافه کردن کلاس‌های نوع داده جدید Adding New Data type Classes

  • اضافه کردن کلاس‌های عملگر جدید Adding New Operator Classes

  • آنچه تا اینجا داریم! What we have so far !

  • پیاده‌سازی متدهای کارخانه (factory Methods) Implement factory Methods

  • پیاده‌سازی توابع مجازی برای کلاس Dtype Implementing Virtual functions for Dtype Class

  • الگوریتم ساخت درخت عبارت Expression Tree Construction Algorithm

  • پیاده‌سازی الگوریتم ساخت درخت عبارت Expression Tree Construction Algorithm Implementation

  • تکلیف الزامی Mandatory Assignment

  • پیاده‌سازی تابع مجازی clone() Implementing clone () Virtual fn

  • پیاده‌سازی الگوریتم اعتبارسنجی - بخش ۱ Implementing Validation Algorithm - Part1

  • پیاده‌سازی الگوریتم اعتبارسنجی - بخش ۲ Implementing Validation Algorithm - Part2

  • تکلیف الزامی - به‌روزرسانی ResultStorageType() برای همه عملگرها Mandatory Assignment - Update ResultStorageType( ) for all Operators

  • پیاده‌سازی الگوریتم ارزیابی - بخش ۱ Implementing Evaluation Algorithm - Part1

  • پیاده‌سازی الگوریتم ارزیابی - بخش ۲ Implementing Evaluation Algorithm - Part2

  • تکلیف - ساخت ماشین حساب پیشرفته Assignment - Build Advance Calculator

  • تکلیف Assignment

تشخیص عملوند Operand Resolution

  • تشخیص عملوند Operand Resolution

  • تشخیص در عمل Resolution in Action

  • تکلیف Assignment

  • پیاده‌سازی تشخیص عملوند Operand Resolution Implementation

  • دموی تشخیص عملوند Operand Resolution Demo

پیاده‌سازی عملگرهای منطقی Implementing Logical Operators

  • اضافه کردن عملگرهای منطقی Adding Logical Operators

  • گرامر عبارات منطقی Grammar for Logical Expressions

  • بهبود الگوریتم‌ها Algorithm Enhancements

  • دمو با عملگرهای منطقی Demo with Logical Operators

ایجاد کتابخانه Mexpr Creating Mexpr Library

  • تکلیف Assignment

عملیات پیشرفته بر روی درخت‌های عبارت Advanced Operations On Expression Trees

  • عملیات پیشرفته بر روی درخت‌های Mexpr Advance Operations on Mexpr Trees

نمایش نظرات

آموزش نوشتن پارسر در C++ (برای عبارات ریاضی / SQL و غیره)
جزییات دوره
7.5 hours
50
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
360
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

من شبکه می سازم!

Shiwani Nigam Shiwani Nigam

مجری بازاریابی دیجیتال

Ekta Ekta Ekta Ekta

مدیر تاسیسات