{"id":26053287,"url":"https://github.com/mr-r0ot/nexon","last_synced_at":"2026-04-12T16:05:05.004Z","repository":{"id":281078713,"uuid":"944136791","full_name":"mr-r0ot/Nexon","owner":"mr-r0ot","description":"Masterpiece programming language NEXon!","archived":false,"fork":false,"pushed_at":"2025-03-06T21:33:34.000Z","size":166,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-26T20:57:25.128Z","etag":null,"topics":["cpp","fast","fast-code","language","llvm","programming","programming-language"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mr-r0ot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-06T21:04:52.000Z","updated_at":"2025-04-13T15:31:37.000Z","dependencies_parsed_at":"2025-03-06T22:20:23.395Z","dependency_job_id":"161c26bc-dbbe-494b-bd4e-d6af7f797c1e","html_url":"https://github.com/mr-r0ot/Nexon","commit_stats":null,"previous_names":["mr-r0ot/nexon"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mr-r0ot/Nexon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mr-r0ot%2FNexon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mr-r0ot%2FNexon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mr-r0ot%2FNexon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mr-r0ot%2FNexon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mr-r0ot","download_url":"https://codeload.github.com/mr-r0ot/Nexon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mr-r0ot%2FNexon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271795314,"owners_count":24822699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","fast","fast-code","language","llvm","programming","programming-language"],"created_at":"2025-03-08T07:27:48.386Z","updated_at":"2026-04-12T16:05:04.943Z","avatar_url":"https://github.com/mr-r0ot.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Nexon\n# Next \u0026 On - آینده ای روشن\nاین پروژه در [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) قرار دارد.  \nنویسنده و سازنده این پروژه: **محمد طاها گرجی**\n\n---\n\n# زبان برنامه‌نویسی Nexon\n\n## مقدمه\nزبان برنامه‌نویسی Nexon، شاهکاری از نسل جدید زبان‌های برنامه‌نویسی است که با بهره‌گیری از پیشرفته‌ترین الگوریتم‌های بهینه‌سازی، استفاده حداکثری از منابع CPU و GPU، پردازش موازی و قابلیت ادغام کامل با کتابخانه‌های C++ و Python، به عنوان یک سیستم جامع و تولیدی طراحی شده است. این زبان، با هدف ارائه یک محیط توسعه‌ی قدرتمند، دقیق و کارآمد برای حل مسائل پیچیده علمی، فیزیکی، رمزنگاری، محاسبات فضایی و سایر کاربردهای پیشرفته، ایجاد شده است.\n\nاین زبان توسط **محمد طاها گرجی** طراحی و ساخته شده و تمامی بخش‌های آن از یک سیستم کامل تولیدی بهره‌مند است. Nexon با بهره‌گیری از زیرساخت‌های قدرتمند مانند LLVM برای تولید کد، CUDA برای شتاب‌دهی GPU، پردازش موازی با استفاده از std::thread و ادغام کامل با کتابخانه‌های استاندارد C++ و Python، یک پلتفرم یکپارچه برای توسعه برنامه‌های سطح بالا فراهم می‌کند.\n\nدر این مستند، به تفصیل در مورد معماری کلی زبان Nexon، الگوریتم‌های اصلی کارکرد آن، نحوه استفاده از ابزارها و دستورات آن، نحوه استفاده از کتابخانه‌های C++ و Python، و راهنمای نصب و اجرای پروژه توضیح داده شده است.\n\n---\n\n## بخش ۱: معرفی زبان Nexon\n\n### ۱.۱. ویژگی‌های کلیدی Nexon\n- **پشتیبانی از بهینه‌سازی‌های سطح پایین:**  \n  استفاده از زیرساخت LLVM برای تولید کد بهینه و بهره‌مندی از تکنیک‌های پیشرفته بهینه‌سازی مانند بهینه‌سازی‌های بین‌رویه، وکتوریزه کردن کد و غیره.\n\n- **استفاده حداکثری از منابع سخت‌افزاری:**  \n  استفاده واقعی از چندپردازشی (multi-threading) با بهره‌گیری از std::thread و شتاب‌دهی GPU از طریق CUDA برای افزایش سرعت اجرای الگوریتم‌های پیچیده.\n\n- **ادغام کامل با کتابخانه‌های C++ و Python:**  \n  امکان استفاده از تمامی کتابخانه‌های استاندارد C++ در کدهای Nexon به صورت مستقیم (از طریق #include) و همچنین امکان استفاده از کتابخانه‌های Python با استفاده از مفسر جاسازی‌شده در Runtime.\n\n- **سیستم ماژولار و استاندارد:**  \n  زبان Nexon به گونه‌ای طراحی شده است که تمامی امکانات مورد نیاز برای توسعه پروژه‌های پیچیده در حوزه‌های مختلف (مانند محاسبات علمی، فیزیک، رمزنگاری، پردازش داده‌های حجیم و غیره) در اختیار توسعه‌دهنده قرار می‌گیرد.\n\n- **دستورات جامع و متنوع:**  \n  Nexon دارای دستورات متعددی برای اجرای کد، بسته‌بندی فایل‌ها به صورت ZIP، نصب کتابخانه‌ها، تولید کد C++، کامپایل به فایل‌های native (مثل .exe در ویندوز)، اجرای حالت دیباگ و همچنین اجرای کدهای Python است.\n\n- **رابط کاربری خط فرمان پیشرفته:**  \n  ابزار Nexon از دستورات خط فرمان پشتیبانی می‌کند تا توسعه‌دهندگان بتوانند به راحتی کدهای خود را اجرا، دیباگ، بسته‌بندی و نصب نمایند.\n\n---\n\n### ۱.۲. الگوریتم کارکرد زبان Nexon\nالگوریتم کارکرد زبان Nexon از چندین بخش کلیدی تشکیل شده است:\n\n1. **Lexer (تجزیه‌کننده واژه‌ای):**  \n   - ورودی: کد منبع به صورت رشته‌ای.\n   - خروجی: توکن‌هایی که نشان‌دهنده‌ی اجزای نحوی کد (مانند کلمات کلیدی، شناسه‌ها، اعداد و عملگرها) هستند.\n   - الگوریتم: استفاده از توابع پیشرفته برای رد کردن فاصله‌ها، شناسایی الگوهای عددی و متنی، و تولید توکن‌های مناسب.\n\n2. **Parser (تجزیه‌کننده نحوی):**  \n   - ورودی: توکن‌های تولیدشده توسط Lexer.\n   - خروجی: درخت نحوی انتزاعی (AST) که ساختار کد منبع را نشان می‌دهد.\n   - الگوریتم: استفاده از روش‌های تجزیه‌ی نزولی (Recursive Descent) با پشتیبانی از اولویت عملگرها و کنترل خطاهای نحوی برای تولید یک AST دقیق و کامل.\n\n3. **Semantic Analysis (تحلیل معنایی):**  \n   - در نسخه‌های پیشرفته، این بخش شامل بررسی نوع‌ها، همگام‌سازی نام‌ها و مدیریت محدوده (scoping) می‌شود.\n   - الگوریتم: اعمال قوانین معنایی به AST تولیدشده جهت اطمینان از صحت کد و آماده‌سازی آن برای تولید کد.\n\n4. **Code Generation (تولید کد):**  \n   - ورودی: AST تحلیل شده.\n   - خروجی: LLVM IR بهینه‌شده که سپس توسط LLVM به کد ماشین نهایی تبدیل می‌شود.\n   - الگوریتم: استفاده از IRBuilder برای ایجاد بلوک‌های پایه و تولید کد ماشین به صورت بهینه. بهینه‌سازی‌های متعددی نیز با استفاده از pass‌های LLVM اعمال می‌شود.\n\n5. **Runtime Environment (محیط زمان اجرا):**  \n   - وظیفه: فراهم آوردن زیرساخت‌های لازم برای اجرای کد تولیدشده، شامل مدیریت حافظه، پردازش موازی و شتاب‌دهی GPU.\n   - الگوریتم: راه‌اندازی و پایان‌دهی به محیط اجرا، بارگذاری کتابخانه‌های استاندارد، و ادغام مفسر Python جهت پشتیبانی از کتابخانه‌های Python.\n\n6. **Packaging and Installation (بسته‌بندی و نصب):**  \n   - وظیفه: فراهم آوردن ابزارهایی برای بسته‌بندی فایل‌های پروژه به صورت آرشیو ZIP و نصب کتابخانه‌ها در مسیرهای مشخص.\n   - الگوریتم: استفاده از توابع فایل و سیستم‌عامل جهت ایجاد آرشیوها و مدیریت مسیرهای سیستم (PATH).\n\n7. **Integration with C++ and Python Libraries:**  \n   - امکان استفاده از تمامی کتابخانه‌های استاندارد C++ به‌طور مستقیم از طریق دستورات #include.\n   - ادغام کامل با کتابخانه‌های Python از طریق استفاده از مفسر جاسازی‌شده Python در Runtime که اجازه می‌دهد کاربران کدهای Python خود را اجرا کنند.\n\n---\n\n## بخش ۲: نحوه استفاده از Nexon\n\n### ۲.۱. نصب پروژه\n\nپروژه Nexon در GitHub به نشانی [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) قرار دارد. برای نصب و استفاده از پروژه مراحل زیر را دنبال کنید:\n\n1. **دانلود مخزن (Repository):**  \n   با استفاده از Git مخزن پروژه را دانلود کنید:\n   ```bash\n   git clone https://github.com/mr-r0ot/Nexon.git\n   ```\n   یا فایل‌های پروژه را به صورت ZIP دانلود و استخراج کنید.\n\n2. **نصب وابستگی‌ها:**  \n   برای نصب وابستگی‌های لازم (شامل LLVM، CUDA، Python3 و...) می‌توانید از اسکریپت install.py استفاده کنید.  \n   برای اجرای آن در محیط Python:\n   ```bash\n   python install.py\n   ```\n   این اسکریپت ابتدا سیستم عامل را شناسایی می‌کند، بررسی می‌کند که آیا یک کامپایلر C++ (g++/clang++/cl) نصب است یا خیر و سپس در صورت نیاز از طریق ابزارهای native نصب می‌کند. همچنین کتابخانه‌های لازم مانند LLVM و CUDA را نصب و پیکربندی می‌کند.\n\n3. **کامپایل پروژه:**  \n   پس از نصب وابستگی‌ها، به پوشه اصلی پروژه بروید و از CMake استفاده کنید:\n   ```bash\n   cmake -S . -B build\n   cmake --build build\n   ```\n   پس از موفقیت‌آمیز بودن ساخت، فایل اجرایی Nexon در پوشه bin/ یا build/ قرار می‌گیرد.\n\n---\n\n### ۲.۲. استفاده از Nexon\n\nبعد از نصب و کامپایل پروژه، می‌توانید از دستورات خط فرمان Nexon برای اجرای پروژه استفاده کنید. در زیر توضیحات کامل دستورات آورده شده است:\n\n#### 2.2.1. اجرای فایل منبع Nexon (.xon)\nبرای اجرای یک فایل منبع Nexon به‌صورت زیر عمل کنید:\n```bash\nnexon run test.xon\n```\nاین دستور، فایل `test.xon` را خوانده، توسط Lexer و Parser تجزیه می‌کند، کد تولید شده (LLVM IR) را بهینه‌سازی و سپس اجرا می‌کند.\n\n#### 2.2.2. بسته‌بندی فایل‌ها به صورت ZIP\nبرای بسته‌بندی چند فایل به صورت یک آرشیو ZIP:\n```bash\nnexon package file1.txt file2.txt -o library.zip\n```\nاین دستور فایل‌های `file1.txt` و `file2.txt` را در یک فایل ZIP به نام `library.zip` قرار می‌دهد.\n\n#### 2.2.3. نصب کتابخانه از فایل ZIP\nبرای نصب یک کتابخانه از یک فایل ZIP:\n```bash\nnexon install library.zip -d C:\\Path\\To\\Install\n```\nاین دستور کتابخانه موجود در `library.zip` را به دایرکتوری `C:\\Path\\To\\Install` استخراج می‌کند و در صورت عدم وجود در PATH، از شما می‌پرسد که آیا آن را به PATH اضافه کند.\n\n#### 2.2.4. کامپایل کردن Nexon به فایل اجرایی native (.exe در ویندوز)\nبرای کامپایل یک فایل Nexon به یک باینری native:\n```bash\nnexon compile source.xon -o output.exe\n```\nاین دستور فایل `source.xon` را به یک فایل C++ می‌تبدد (که شامل تمامی دستورات و کتابخانه‌های C++ است) و سپس با استفاده از کامپایلر سیستم به یک فایل اجرایی native (مثلاً output.exe در ویندوز) کامپایل می‌کند.\n\n#### 2.2.5. تولید فایل C++ از Nexon\nبرای تولید یک فایل C++ کامل از یک فایل Nexon:\n```bash\nnexon generate-cpp source.xon -o output.cpp\n```\nاین دستور فایل `source.xon` را به یک فایل C++ تبدیل می‌کند. در فایل خروجی، تمامی دستورات و ارجاعات به کتابخانه‌های استاندارد C++ به صورت مستقیم قرار دارند.\n\n#### 2.2.6. اجرای حالت دیباگ\nبرای اجرای فایل Nexon در حالت دیباگ (با خروجی‌های تشخیصی کامل):\n```bash\nnexon debug source.xon\n```\nاین دستور علاوه بر اجرای کد، اطلاعات دقیقی از مراحل اجرای برنامه (مانند تعداد تکرارها، پیشرفت حلقه‌ها و...) نمایش می‌دهد.\n\n#### 2.2.7. اجرای کد Python از طریق مفسر جاسازی‌شده\nبرای اجرای یک فایل Python از طریق مفسر جاسازی‌شده:\n```bash\nnexon pyrun script.py\n```\nاین دستور فایل `script.py` را خوانده و توسط محیط Python جاسازی‌شده اجرا می‌کند. در این حالت می‌توانید از تمامی کتابخانه‌های Python استفاده نمایید.\n\n---\n\n### ۲.۳. نحوه استفاده از کتابخانه‌های C++ و Python در Nexon\n\nیکی از ویژگی‌های برجسته‌ی Nexon این است که کاربران می‌توانند به صورت مستقیم از کتابخانه‌های استاندارد C++ و همچنین کتابخانه‌های Python استفاده کنند.\n\n#### 2.3.1. استفاده از کتابخانه‌های C++\nبرای استفاده از کتابخانه‌های C++ در کدهای Nexon، کافی است در ابتدای فایل منبع Nexon از دستور `#include` استفاده کنید. به عنوان مثال:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n```\nاین دستورات به صورت مستقیم به فایل C++ تولیدشده ترجمه شده و در زمان کامپایل، کتابخانه‌های استاندارد C++ به برنامه اضافه می‌شوند.\n\n#### 2.3.2. استفاده از کتابخانه‌های Python\nدر بخش Runtime، مفسر Python جاسازی‌شده راه‌اندازی شده است. برای استفاده از کتابخانه‌های Python در کدهای Nexon، کاربران می‌توانند از دستور `pyrun` استفاده کنند. به عنوان مثال، اگر بخواهید کتابخانه‌ی NumPy را در کد Python خود استفاده کنید، فایل Python شما می‌تواند به شکل زیر باشد:\n```python\nimport numpy as np\n\ndef compute_array():\n    arr = np.array([1, 2, 3, 4, 5])\n    print(\"Array:\", arr)\n    print(\"Mean:\", np.mean(arr))\n\ncompute_array()\n```\nسپس اجرای دستور:\n```bash\nnexon pyrun numpy_example.py\n```\nاین کد توسط محیط Python جاسازی‌شده اجرا شده و خروجی مربوطه را نمایش می‌دهد.\n\n---\n\n## بخش ۳: الگوریتم و معماری زبان Nexon\n\n### 3.1. ساختار کلی سیستم Nexon\nسیستم Nexon شامل چندین جزء اصلی است:\n- **Lexer:** وظیفه تجزیه ورودی متنی (کد منبع) به توکن‌ها را دارد.\n- **Parser:** توکن‌های تولیدشده را به یک درخت نحوی انتزاعی (AST) تبدیل می‌کند.\n- **Semantic Analysis:** تحلیل معنایی AST جهت بررسی نوع‌ها، نام‌گذاری و صحت کد.\n- **Code Generation:** استفاده از LLVM برای تولید کد ماشین از AST به صورت IR و بهینه‌سازی آن.\n- **Runtime Environment:** فراهم کردن زیرساخت‌های لازم جهت اجرای کد تولیدشده (مدیریت حافظه، پردازش موازی، GPU acceleration و مفسر Python جاسازی‌شده).\n- **Toolchain:** شامل ابزارهایی برای بسته‌بندی، نصب، کامپایل، تولید کد C++، دیباگ و اجرای کد Python.\n\n### 3.2. الگوریتم‌های اصلی کارکرد\n\n#### 3.2.1. Lexer\nالگوریتم Lexer به‌صورت زیر عمل می‌کند:\n- **ورودی:** کد منبع به صورت یک رشته.\n- **خروجی:** توکن‌های استخراج‌شده.\n- **مراحل:**  \n  1. رد کردن فاصله‌ها و کاراکترهای سفید.\n  2. شناسایی الگوهای عددی، شناسه‌ها و کلمات کلیدی.\n  3. تولید توکن مناسب برای هر جزء.\n- **پیاده‌سازی:**  \n  از توابع استاندارد C++ مانند `std::isspace` و `std::isalnum` استفاده می‌شود تا توکن‌ها به صورت دقیق استخراج شوند.\n\n#### 3.2.2. Parser\nالگوریتم Parser مراحل زیر را طی می‌کند:\n- **ورودی:** توکن‌های تولید شده توسط Lexer.\n- **خروجی:** درخت نحوی انتزاعی (AST).\n- **مراحل:**  \n  1. استفاده از روش تجزیه نزولی (Recursive Descent) برای پردازش توکن‌ها.\n  2. پشتیبانی از اولویت عملگرها.\n  3. تولید گره‌های AST برای اعداد، متغیرها، عملگرهای باینری و فراخوانی توابع.\n- **پیاده‌سازی:**  \n  کدهای Parser به صورت تولیدی نوشته شده و خطاهای نحوی را با پیام‌های دقیق گزارش می‌دهد.\n\n#### 3.2.3. Semantic Analysis\nاگرچه در این نسخه پایه‌ای از تحلیل معنایی پیاده‌سازی شده است، در نسخه‌های پیشرفته‌تر باید موارد زیر اضافه شود:\n- بررسی نوع‌ها (Type Checking)\n- حل اشکال نامگذاری (Name Resolution)\n- مدیریت محدوده‌ها (Scoping)\n\n#### 3.2.4. Code Generation\nکد تولید شده از طریق LLVM IR تولید می‌شود:\n- **مراحل:**  \n  1. تبدیل AST به LLVM IR با استفاده از IRBuilder.\n  2. اعمال بهینه‌سازی‌های سطح پایین با استفاده از LLVM Passes.\n  3. تولید نهایی کد ماشین.\n- **پیاده‌سازی:**  \n  کدهای تولید کد در بخش CodeGen به صورت تولیدی پیاده‌سازی شده و بهینه‌سازی‌های استاندارد مانند Instruction Combining، Reassociation، GVN و CFG Simplification را اعمال می‌کند.\n\n#### 3.2.5. Runtime Environment\nمحیط زمان اجرا در Nexon شامل موارد زیر است:\n- راه‌اندازی محیط زمان اجرا (Runtime::initialize)\n- پایان‌دهی به منابع (Runtime::shutdown)\n- ادغام کامل مفسر Python برای پشتیبانی از کتابخانه‌های Python\n- استفاده از پردازش موازی و GPU acceleration برای اجرای سریع کدهای تولید شده\n\n#### 3.2.6. Toolchain (بسته‌بندی، نصب، کامپایل، دیباگ و تولید C++)\nابزارهای خط فرمان Nexon امکانات زیر را فراهم می‌کنند:\n- **run:** اجرای فایل منبع Nexon (.xon)\n- **package:** بسته‌بندی چند فایل به یک آرشیو ZIP\n- **install:** نصب کتابخانه‌ها از طریق استخراج فایل ZIP و تنظیم PATH\n- **compile:** تبدیل و کامپایل فایل Nexon به یک باینری native (مانند .exe)\n- **generate-cpp:** تولید یک فایل C++ تولیدی از کد Nexon\n- **debug:** اجرای فایل منبع در حالت دیباگ با خروجی‌های تشخیصی\n- **pyrun:** اجرای فایل Python از طریق مفسر جاسازی‌شده\n\n---\n\n## بخش ۴: نحوه استفاده از Nexon\n\n### 4.1. دانلود و نصب پروژه\n1. **دانلود مخزن:**  \n   با استفاده از دستور زیر می‌توانید پروژه Nexon را از GitHub دانلود کنید:\n   ```bash\n   git clone https://github.com/mr-r0ot/Nexon.git\n   ```\n   یا از طریق مرورگر به آدرس [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) مراجعه کنید و فایل ZIP پروژه را دانلود نمایید.\n\n2. **نصب وابستگی‌ها:**  \n   فایل `install.py` موجود در ریشه‌ی پروژه تمامی وابستگی‌های سیستم (مانند کامپایلر C++، LLVM، CUDA و Python3) را شناسایی و در صورت نیاز نصب می‌کند.  \n   برای اجرای این فایل:\n   ```bash\n   python install.py\n   ```\n   این اسکریپت ابتدا سیستم عامل را شناسایی می‌کند، بررسی می‌کند که آیا کامپایلر C++ (g++ یا clang++) نصب است یا خیر، سپس در صورت نیاز وابستگی‌ها را نصب می‌کند.\n\n3. **کامپایل پروژه با CMake:**  \n   پس از نصب وابستگی‌ها، وارد پوشه ریشه پروژه شده و از دستورات زیر استفاده کنید:\n   ```bash\n   cmake -S . -B build\n   cmake --build build\n   ```\n   فایل اجرایی Nexon در پوشه `bin/` یا `build/` تولید می‌شود.\n\n---\n\n### 4.2. استفاده از Nexon\n\nپس از ساخت پروژه، فایل اجرایی Nexon را از خط فرمان با دستورات زیر اجرا کنید:\n\n#### اجرای فایل منبع Nexon (.xon)\nبرای اجرای یک فایل منبع به نام `test.xon`:\n```bash\nnexon run test.xon\n```\nاین دستور فایل `test.xon` را خوانده، توسط Lexer و Parser تجزیه می‌کند، کد تولید شده (LLVM IR) را بهینه می‌کند و سپس اجرا می‌کند.\n\n#### بسته‌بندی فایل‌ها به صورت ZIP\nبرای بسته‌بندی چند فایل به یک آرشیو ZIP:\n```bash\nnexon package file1.txt file2.txt -o library.zip\n```\nاین دستور فایل‌های `file1.txt` و `file2.txt` را به صورت یک فایل ZIP تولید می‌کند.\n\n#### نصب کتابخانه از فایل ZIP\nبرای نصب کتابخانه از فایل ZIP:\n```bash\nnexon install library.zip -d C:\\Path\\To\\Install\n```\nاین دستور کتابخانه را در مسیر تعیین‌شده استخراج کرده و در صورت عدم وجود در PATH، از شما درخواست افزودن آن را می‌کند.\n\n#### کامپایل Nexon به فایل اجرایی native\nبرای تبدیل یک فایل Nexon (مثلاً `source.xon`) به یک فایل اجرایی native (مثلاً `output.exe` در ویندوز):\n```bash\nnexon compile source.xon -o output.exe\n```\nاین دستور کد Nexon را به یک فایل C++ ترجمه کرده و سپس آن را کامپایل می‌کند.\n\n#### تولید فایل C++ از Nexon\nبرای تولید فایل C++ از کد Nexon:\n```bash\nnexon generate-cpp source.xon -o output.cpp\n```\nاین دستور کد Nexon را به یک فایل C++ کامل تولید می‌کند که می‌توانید آن را به صورت مستقل کامپایل کنید.\n\n#### اجرای حالت دیباگ\nبرای اجرای فایل Nexon در حالت دیباگ (با خروجی‌های تشخیصی دقیق):\n```bash\nnexon debug source.xon\n```\nاین حالت جزئیات دقیقی از مراحل اجرا مانند تکرار حلقه‌ها، عملکرد توابع و سایر اطلاعات دیباگ را نمایش می‌دهد.\n\n#### اجرای کد Python با استفاده از مفسر جاسازی‌شده\nبرای اجرای یک فایل Python به نام `script.py`:\n```bash\nnexon pyrun script.py\n```\nاین دستور فایل Python را خوانده و توسط مفسر Python جاسازی‌شده اجرا می‌کند. در این حالت می‌توانید از تمامی کتابخانه‌های Python استفاده نمایید.\n\n#### نمایش راهنما\nبرای مشاهده‌ی تمامی دستورات و گزینه‌های موجود:\n```bash\nnexon help\n```\n\n---\n\n### 4.3. نحوه استفاده از کتابخانه‌های C++ و Python در Nexon\n\nیکی از ویژگی‌های برجسته‌ی Nexon این است که توسعه‌دهندگان می‌توانند به راحتی از کتابخانه‌های استاندارد C++ و کتابخانه‌های Python استفاده کنند.\n\n#### استفاده از کتابخانه‌های C++\nدر فایل‌های Nexon (.xon) کاربران می‌توانند دستورات زیر را به صورت مستقیم وارد کنند:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n```\nاین دستورات به هنگام تولید فایل C++، به همان صورت به فایل تولیدشده منتقل می‌شوند و امکان استفاده از تمام کتابخانه‌های استاندارد C++ را فراهم می‌آورند.\n\n#### استفاده از کتابخانه‌های Python\nبا استفاده از مفسر Python جاسازی‌شده در بخش Runtime، کاربران می‌توانند از کتابخانه‌های Python مانند NumPy، pandas، matplotlib و سایر کتابخانه‌های محبوب استفاده کنند. برای مثال، یک فایل Python می‌تواند به صورت زیر باشد:\n```python\nimport numpy as np\n\ndef compute_statistics():\n    data = np.array([1, 2, 3, 4, 5])\n    print(\"Data:\", data)\n    print(\"Mean:\", np.mean(data))\n    print(\"Standard Deviation:\", np.std(data))\n\ncompute_statistics()\n```\nسپس اجرای دستور:\n```bash\nnexon pyrun stats.py\n```\nکد Python اجرا شده و خروجی مربوطه نمایش داده می‌شود.\n\n---\n\n## بخش ۵: معماری و الگوریتم کارکرد Nexon\n\n### 5.1. معماری کلی سیستم\nسیستم Nexon شامل ماژول‌های زیر است:\n- **Lexer:** تجزیه کد منبع به توکن‌های نحوی دقیق.\n- **Parser:** تبدیل توکن‌ها به یک درخت نحوی انتزاعی (AST) با استفاده از الگوریتم‌های بازگشتی.\n- **Semantic Analyzer:** تحلیل معنایی AST جهت بررسی صحت کد و تعیین نوع‌ها (در نسخه‌های پیشرفته).\n- **Code Generation:** استفاده از LLVM برای تولید IR و تبدیل آن به کد ماشین بهینه.\n- **Optimizer:** اجرای مجموعه‌ای از بهینه‌سازی‌های پیشرفته روی LLVM IR.\n- **Runtime Environment:** محیط زمان اجرا که شامل مدیریت حافظه، پردازش موازی، GPU acceleration و مفسر Python جاسازی‌شده است.\n- **Toolchain:** ابزارهای خط فرمان (run، package، install، compile، generate-cpp، debug، pyrun) برای اجرای کامل پروژه.\n- **ادغام کتابخانه‌های C++ و Python:** کاربران می‌توانند به صورت مستقیم از کتابخانه‌های C++ استفاده و همچنین از طریق مفسر Python از کتابخانه‌های Python بهره ببرند.\n\n### 5.2. الگوریتم‌های اصلی\n\n#### 5.2.1. Lexer\n- **ورودی:** یک رشته متنی حاوی کد منبع Nexon.\n- **خروجی:** مجموعه‌ای از توکن‌ها.\n- **الگوریتم:**  \n  - رد کردن فاصله‌ها و کاراکترهای سفید.\n  - شناسایی الگوهای عددی (شامل اعشار) و متنی (شناسه‌ها و کلمات کلیدی).\n  - تولید توکن‌های دقیق برای اعداد، شناسه‌ها و عملگرها.\n\n#### 5.2.2. Parser\n- **ورودی:** توکن‌های تولیدشده توسط Lexer.\n- **خروجی:** درخت نحوی انتزاعی (AST) که ساختار کد منبع را مدل می‌کند.\n- **الگوریتم:**  \n  - استفاده از روش تجزیه نزولی (Recursive Descent) جهت پشتیبانی از اولویت عملگرها.\n  - ایجاد گره‌های AST برای اعداد، متغیرها، عملگرهای باینری و فراخوانی توابع.\n  - مدیریت خطاهای نحوی با گزارش دقیق.\n\n#### 5.2.3. Semantic Analysis\n- **ورودی:** AST تولیدشده توسط Parser.\n- **خروجی:** AST اصلاح‌شده با بررسی نوع‌ها و نام‌گذاری.\n- **الگوریتم:**  \n  - بررسی تطابق نوع‌ها (Type Checking).\n  - حل اشکال نامگذاری و مدیریت محدوده (Scoping).\n  - در نسخه‌های پیشرفته، افزودن پشتیبانی از ویژگی‌های چندریختی.\n\n#### 5.2.4. Code Generation\n- **ورودی:** AST تحلیل‌شده.\n- **خروجی:** LLVM IR بهینه‌شده که سپس به کد ماشین تبدیل می‌شود.\n- **الگوریتم:**  \n  - استفاده از IRBuilder جهت تولید بلوک‌های پایه و کدهای سطح پایین.\n  - اعمال بهینه‌سازی‌های استاندارد مانند Instruction Combining، Reassociation، Global Value Numbering (GVN) و CFG Simplification.\n  - تبدیل نهایی LLVM IR به کد ماشین native.\n\n#### 5.2.5. Runtime Environment\n- **وظیفه:**  \n  - راه‌اندازی محیط زمان اجرا و بارگذاری کتابخانه‌های استاندارد.\n  - مدیریت حافظه و اجرای عملیات پردازش موازی.\n  - استفاده از GPU برای شتاب‌دهی محاسبات سنگین.\n  - ادغام مفسر Python جهت اجرای کدهای Python در کنار کدهای Nexon.\n- **الگوریتم:**  \n  - راه‌اندازی اولیه با فراخوانی توابع Runtime::initialize() و initializePython().\n  - پایان‌دهی صحیح با استفاده از Runtime::shutdown() و finalizePython().\n\n#### 5.2.6. Toolchain (بسته‌بندی، نصب، کامپایل، تولید C++، دیباگ)\n- **بسته‌بندی (package):**  \n  - خواندن فایل‌های مشخص‌شده، ادغام آن‌ها و تولید یک فایل ZIP.\n- **نصب (install):**  \n  - استخراج فایل ZIP در دایرکتوری تعیین‌شده و بررسی تنظیم PATH.\n- **کامپایل (compile):**  \n  - ترجمه کد Nexon به یک فایل C++ میانی و سپس کامپایل آن به باینری native.\n- **تولید C++ (generate-cpp):**  \n  - تولید یک فایل C++ کامل از کد Nexon به طوری که تمامی دستورات #include برای کتابخانه‌های C++ حفظ شود.\n- **دیباگ (debug):**  \n  - اجرای کد با نمایش اطلاعات تشخیصی دقیق.\n- **اجرای Python (pyrun):**  \n  - اجرای کدهای Python از طریق مفسر جاسازی‌شده Python.\n\n#### 5.2.7. ادغام کتابخانه‌های C++ و Python\n- **استفاده از کتابخانه‌های C++:**  \n  - کاربران می‌توانند به سادگی از دستورات #include در کد Nexon استفاده کنند تا کتابخانه‌های استاندارد C++ به کد تولید شده انتقال یابد.\n- **استفاده از کتابخانه‌های Python:**  \n  - با استفاده از دستورات pyrun، کدهای Python (که می‌توانند شامل import کتابخانه‌های محبوب مانند NumPy، pandas، matplotlib باشند) توسط محیط Python جاسازی‌شده اجرا می‌شوند.\n\n---\n\n## بخش ۶: نحوه استفاده از Nexon (راهنمای جامع)\n\n### 6.1. دانلود و نصب پروژه\n1. **دانلود مخزن:**\n   - به آدرس [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) بروید.\n   - با استفاده از Git، مخزن را دانلود کنید:\n     ```bash\n     git clone https://github.com/mr-r0ot/Nexon.git\n     ```\n   - یا فایل ZIP پروژه را دانلود و استخراج نمایید.\n\n2. **نصب وابستگی‌ها:**\n   - فایل `install.py` موجود در ریشه پروژه تمامی وابستگی‌های لازم (C++ compiler، LLVM، CUDA، Python3) را شناسایی و نصب می‌کند.\n   - برای اجرای آن:\n     ```bash\n     python install.py\n     ```\n   - این اسکریپت به‌طور خودکار سیستم عامل شما را شناسایی کرده و در صورت نیاز دستورالعمل نصب کامپایلر و سایر وابستگی‌ها را اجرا می‌کند.\n\n3. **پیکربندی و ساخت پروژه:**\n   - از پوشه ریشه پروژه، دستورات زیر را اجرا کنید:\n     ```bash\n     cmake -S . -B build\n     cmake --build build\n     ```\n   - فایل اجرایی Nexon در پوشه `bin/` یا `build/` تولید می‌شود.\n\n---\n\n### 6.2. اجرای پروژه Nexon\n\nپس از ساخت پروژه، از فایل اجرایی Nexon با دستورات مختلف استفاده کنید:\n\n#### 6.2.1. اجرای فایل منبع Nexon (.xon)\nبرای اجرای یک فایل منبع به نام `test.xon`:\n```bash\nnexon run test.xon\n```\nاین دستور فایل `test.xon` را توسط Lexer و Parser تجزیه و سپس اجرا می‌کند.\n\n#### 6.2.2. بسته‌بندی فایل‌ها به صورت ZIP\nبرای بسته‌بندی چند فایل به صورت یک آرشیو ZIP:\n```bash\nnexon package file1.txt file2.txt -o library.zip\n```\nاین دستور فایل‌های `file1.txt` و `file2.txt` را در یک فایل ZIP به نام `library.zip` قرار می‌دهد.\n\n#### 6.2.3. نصب کتابخانه از فایل ZIP\nبرای نصب یک کتابخانه از یک فایل ZIP:\n```bash\nnexon install library.zip -d C:\\Path\\To\\Install\n```\nاین دستور کتابخانه را در دایرکتوری مشخص استخراج می‌کند و در صورت نبود، از شما درخواست می‌کند که آن را به PATH اضافه کنید.\n\n#### 6.2.4. کامپایل Nexon به باینری native\nبرای کامپایل یک فایل Nexon به یک فایل اجرایی native:\n```bash\nnexon compile source.xon -o output.exe\n```\nاین دستور کد Nexon را به یک فایل C++ میانی ترجمه کرده و سپس با استفاده از کامپایلر سیستم، به باینری native (مثلاً output.exe) تبدیل می‌کند.\n\n#### 6.2.5. تولید فایل C++ از Nexon\nبرای تولید یک فایل C++ از کد Nexon:\n```bash\nnexon generate-cpp source.xon -o output.cpp\n```\nاین دستور، تمامی کدهای Nexon را به صورت یک فایل C++ کامل انتقال می‌دهد که شامل تمامی دستورهای #include می‌شود.\n\n#### 6.2.6. اجرای حالت دیباگ\nبرای اجرای فایل Nexon در حالت دیباگ:\n```bash\nnexon debug source.xon\n```\nدر این حالت، جزئیات دقیق مراحل اجرای کد مانند تکرار حلقه‌ها و اطلاعات عملکردی نمایش داده می‌شود.\n\n#### 6.2.7. اجرای کد Python از طریق مفسر جاسازی‌شده\nبرای اجرای یک فایل Python به نام `script.py`:\n```bash\nnexon pyrun script.py\n```\nدر این حالت، کد Python توسط مفسر جاسازی‌شده اجرا شده و امکان استفاده از کتابخانه‌های Python مانند NumPy، pandas و ... فراهم می‌شود.\n\n---\n\n### 6.3. نحوه استفاده از کتابخانه‌های C++ و Python در کد Nexon\n\n#### 6.3.1. استفاده از کتابخانه‌های C++\nکاربران می‌توانند به راحتی از تمامی کتابخانه‌های استاندارد C++ در کدهای Nexon استفاده کنند. کافی است در ابتدای فایل Nexon از دستور `#include` استفاده شود. به عنوان مثال:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n```\nاین دستورات به همان صورت در فایل C++ تولیدشده باقی می‌مانند و امکان استفاده از کتابخانه‌های C++ را در پروژه فراهم می‌کنند.\n\n#### 6.3.2. استفاده از کتابخانه‌های Python\nبا استفاده از مفسر Python جاسازی‌شده در بخش Runtime، کاربران می‌توانند از کتابخانه‌های Python استفاده کنند. برای مثال، یک فایل Python به صورت زیر نوشته می‌شود:\n```python\nimport numpy as np\n\ndef compute_statistics():\n    data = np.array([1, 2, 3, 4, 5])\n    print(\"Data:\", data)\n    print(\"Mean:\", np.mean(data))\n    print(\"Standard Deviation:\", np.std(data))\n\ncompute_statistics()\n```\nسپس با دستور:\n```bash\nnexon pyrun stats.py\n```\nاین کد توسط مفسر Python اجرا شده و خروجی مربوطه نمایش داده می‌شود.\n\n---\n\n## بخش ۷: الگوریتم‌های کارکرد Nexon\n\n### 7.1. Lexer\n- **هدف:** تبدیل کد منبع Nexon به توکن‌های نحوی.\n- **الگوریتم:**  \n  - رد کردن کاراکترهای سفید با استفاده از توابع استاندارد مانند `std::isspace`.\n  - شناسایی اعداد، شناسه‌ها، کلمات کلیدی و عملگرها با استفاده از الگوریتم‌های دقیق.\n  - تولید توکن‌های مناسب به صورت real.\n\n### 7.2. Parser\n- **هدف:** تبدیل توکن‌های تولیدشده توسط Lexer به درخت نحوی انتزاعی (AST).\n- **الگوریتم:**  \n  - استفاده از روش تجزیه نزولی (Recursive Descent) برای پردازش توکن‌ها.\n  - پشتیبانی از اولویت عملگرها و تولید گره‌های AST برای اعداد، متغیرها و فراخوانی توابع.\n  - گزارش خطاهای نحوی به صورت دقیق و تولید خروجی مناسب.\n\n### 7.3. Semantic Analysis\n- **هدف:** بررسی معنایی AST جهت اطمینان از صحت کد.\n- **الگوریتم:**  \n  - بررسی تطابق نوع‌ها، حل اشکال نامگذاری و مدیریت محدوده‌ها.\n  - در نسخه‌های پیشرفته، پشتیبانی از ویژگی‌های چندریختی و overload کردن عملگرها.\n\n### 7.4. Code Generation\n- **هدف:** تولید کد ماشین از AST به کمک LLVM.\n- **الگوریتم:**  \n  - استفاده از IRBuilder برای تولید بلوک‌های پایه.\n  - اعمال بهینه‌سازی‌های پیشرفته مانند Instruction Combining، Reassociation، GVN و CFG Simplification.\n  - تبدیل نهایی LLVM IR به کد ماشین native.\n\n### 7.5. Runtime Environment\n- **هدف:** فراهم کردن زیرساخت‌های اجرای کد تولیدشده.\n- **الگوریتم:**  \n  - راه‌اندازی محیط زمان اجرا با بارگذاری کتابخانه‌های استاندارد.\n  - مدیریت حافظه، پردازش موازی و استفاده از GPU.\n  - ادغام مفسر Python جهت اجرای کدهای Python و استفاده از کتابخانه‌های آن.\n  \n### 7.6. Toolchain\n- **بسته‌بندی (package):**  \n  - خواندن فایل‌ها و ادغام آن‌ها در یک آرشیو ZIP با استفاده از توابع فایل سیستم.\n- **نصب (install):**  \n  - استخراج فایل ZIP به دایرکتوری مشخص و افزودن آن به PATH در صورت نیاز.\n- **کامپایل (compile):**  \n  - تولید یک فایل C++ میانی از کد Nexon و کامپایل آن به باینری native.\n- **تولید C++ (generate-cpp):**  \n  - ترجمه کامل کد Nexon به یک فایل C++ که تمامی ارجاعات به کتابخانه‌های C++ حفظ می‌شود.\n- **دیباگ (debug):**  \n  - اجرای کد در حالت دیباگ با نمایش اطلاعات عملکردی دقیق.\n- **اجرای Python (pyrun):**  \n  - اجرای کد Python به کمک مفسر جاسازی‌شده برای بهره‌گیری از کتابخانه‌های Python.\n\n### 7.7. ادغام کتابخانه‌های C++ و Python\n- **کتابخانه‌های C++:**  \n  کاربران با استفاده از دستورات #include می‌توانند از تمامی کتابخانه‌های استاندارد C++ استفاده کنند.\n- **کتابخانه‌های Python:**  \n  از طریق دستورات pyrun می‌توانند به سادگی کدهای Python را اجرا و از کتابخانه‌های آن بهره ببرند.\n\n---\n\n## بخش ۸: سینتکس زبان Nexon\n\n### 8.1. معرفی سینتکس\nزبان Nexon به گونه‌ای طراحی شده که برای برنامه‌نویسان همخوان، خوانا و قدرتمند باشد. سینتکس Nexon از الگوهایی مشابه با زبان‌های C، C++ و Python بهره می‌گیرد تا یادگیری آن آسان و در عین حال انعطاف‌پذیر باشد.\n\n### 8.2. اجزای اصلی سینتکس Nexon\n- **دستور تعریف تابع:**  \n  برای تعریف یک تابع از کلمه کلیدی `def` استفاده می‌شود.  \n  مثال:\n  ```xon\n  def functionName(arg1, arg2)\n      // Function body\n  end\n  ```\n- **متغیرها و عملگرها:**  \n  متغیرها به صورت پویا تعریف می‌شوند. عملگرهای ریاضی (+, -, *, /) و منطقی (==, !=, \u003c, \u003e, \u003c=, \u003e=) به صورت استاندارد ارائه شده‌اند.\n- **کنترل جریان:**  \n  از دستورات شرطی `if ... then ... else ... end` و حلقه‌های `while ... do ... end` برای کنترل جریان استفاده می‌شود.\n  مثال:\n  ```xon\n  if condition then\n      // code if true\n  else\n      // code if false\n  end\n  ```\n- **وارد کردن کتابخانه‌های C++:**  \n  کاربران می‌توانند از دستور `#include` در ابتدای فایل‌های Nexon استفاده کنند تا کتابخانه‌های C++ به صورت مستقیم به کد تولیدشده اضافه شوند.\n- **وارد کردن کتابخانه‌های Python:**  \n  از طریق استفاده از دستور `pyrun` می‌توانند کدهای Python را اجرا کنند.\n\n### 8.3. توضیح جزئیات سینتکس به صورت جامع\n\n#### 8.3.1. تعریف توابع\nدر Nexon، تعریف توابع به‌صورت زیر انجام می‌شود:\n```xon\ndef sum(a, b)\n    a + b\nend\n```\nاین تابع دو عدد را گرفته و مجموع آن‌ها را برمی‌گرداند. تمامی توابع در Nexon باید با کلمه کلیدی `def` شروع و با `end` پایان یابند. پارامترها در داخل پرانتز ذکر می‌شوند و بدنه تابع شامل دستوراتی است که به ترتیب اجرا می‌شوند.\n\n#### 8.3.2. متغیرها\nمتغیرها در Nexon به صورت پویا تعریف می‌شوند. نیازی به اعلان نوع نیست و نوع متغیر در زمان اجرا مشخص می‌شود. به عنوان مثال:\n```xon\ndef main()\n    var x = 10\n    var y = 20\n    print(\"Sum: \" + (x + y))\nend\n```\nدر اینجا متغیرهای `x` و `y` به صورت خودکار به عنوان اعداد تعریف شده و عملیات جمع بر روی آن‌ها انجام می‌شود.\n\n#### 8.3.3. شرطی‌ها و حلقه‌ها\nNexon از دستورات شرطی مشابه با سایر زبان‌های برنامه‌نویسی استفاده می‌کند:\n```xon\ndef checkNumber(num)\n    if num \u003e 0 then\n        print(\"Number is positive\")\n    else if num \u003c 0 then\n        print(\"Number is negative\")\n    else\n        print(\"Number is zero\")\n    end\nend\n```\nهمچنین حلقه‌ها به صورت زیر تعریف می‌شوند:\n```xon\ndef loopExample()\n    var i = 0\n    while i \u003c 10 do\n        print(\"Iteration: \" + i)\n        i = i + 1\n    end\nend\n```\nاین ساختارها بسیار شفاف و قابل درک هستند و به توسعه‌دهنده اجازه می‌دهند تا کنترل کاملی بر روی جریان برنامه داشته باشد.\n\n#### 8.3.4. فراخوانی توابع\nفراخوانی توابع در Nexon به سادگی با نام تابع و پارامترهای آن انجام می‌شود:\n```xon\ndef main()\n    var result = sum(5, 7)\n    print(\"Result: \" + result)\nend\n```\nدر این مثال، تابع `sum` که قبلاً تعریف شده است، فراخوانی شده و خروجی آن چاپ می‌شود.\n\n#### 8.3.5. استفاده از کتابخانه‌های C++ در کد Nexon\nکاربران می‌توانند در ابتدای فایل‌های Nexon از دستورات `#include` استفاده کنند تا کتابخانه‌های C++ به صورت مستقیم به کد تولید شده اضافه شوند:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n\ndef main()\n    var vec = [1, 2, 3, 4, 5]\n    // استفاده از تابع std::accumulate برای محاسبه مجموع\n    // در فایل تولیدشده C++، این دستور به همان صورت باقی می‌ماند.\n    print(\"Vector: \" + vec)\nend\n```\nاین امکان به توسعه‌دهندگان اجازه می‌دهد تا از تمامی کتابخانه‌های C++ استفاده کنند و به راحتی کدهای خود را گسترش دهند.\n\n#### 8.3.6. استفاده از کتابخانه‌های Python در کد Nexon\nبرای استفاده از کتابخانه‌های Python در Nexon، از دستور `pyrun` استفاده می‌شود. به عنوان مثال، یک فایل Python به نام `stats.py` می‌تواند شامل موارد زیر باشد:\n```python\nimport numpy as np\n\ndef compute_statistics():\n    data = np.array([10, 20, 30, 40, 50])\n    print(\"Data:\", data)\n    print(\"Mean:\", np.mean(data))\n    print(\"Standard Deviation:\", np.std(data))\n\ncompute_statistics()\n```\nسپس اجرای دستور:\n```bash\nnexon pyrun stats.py\n```\nاین دستور فایل `stats.py` را توسط مفسر Python جاسازی‌شده اجرا می‌کند. در نتیجه، کاربران می‌توانند به راحتی از کتابخانه‌های Python استفاده کنند.\n\n#### 8.3.7. دیباگ و تولید کد C++\nبا دستور `debug` می‌توانید یک فایل Nexon را در حالت دیباگ اجرا کنید:\n```xon\nnexon debug mycode.xon\n```\nدر این حالت، اطلاعات دقیقی از اجرای کد (مانند تعداد تکرارها، عملکرد توابع، و غیره) نمایش داده می‌شود.  \nهمچنین با دستور `generate-cpp` می‌توانید کد تولید شده (C++ source) را مشاهده و ویرایش کنید:\n```xon\nnexon generate-cpp mycode.xon -o mycode.cpp\n```\nاین فایل C++ تولیدشده قابل کامپایل به صورت مستقل است.\n\n#### 8.3.8. کامپایل به فایل اجرایی native\nبرای تبدیل یک فایل Nexon به یک فایل اجرایی native (مثلاً .exe در ویندوز)، دستور زیر را اجرا کنید:\n```xon\nnexon compile mycode.xon -o mycode.exe\n```\nاین دستور ابتدا کد Nexon را به فایل C++ ترجمه کرده و سپس آن را به یک باینری native کامپایل می‌کند.\n\n---\n\n## بخش ۹: توضیحات تکمیلی درباره‌ی الگوریتم‌ها و ساختار پروژه\n\n### 9.1. جزئیات Lexer\nLexer ورودی کد Nexon را دریافت و آن را به توکن‌های معنادار تقسیم می‌کند. این توکن‌ها شامل:\n- **tok_identifier:** شناسه‌های متغیر و نام توابع.\n- **tok_number:** اعداد اعشاری و صحیح.\n- **tok_def، tok_extern:** کلمات کلیدی مربوط به تعریف توابع.\n- **توکن‌های عملگر و جداکننده:** برای عملیات ریاضی و سایر موارد.\n\nالگوریتم Lexer به گونه‌ای طراحی شده که تمامی کاراکترهای سفید (فضا، تب، خط جدید) را رد کند و تنها بخش‌های معنادار را استخراج نماید.\n\n### 9.2. جزئیات Parser\nParser از الگوریتم تجزیه نزولی برای ساخت AST استفاده می‌کند:\n- **تجزیه عبارات (Expressions):** هر عبارت ریاضی یا منطقی به گره‌های AST تبدیل می‌شود.\n- **فراخوانی توابع:** در صورتی که یک شناسه به دنبال آن پرانتز قرار گیرد، به عنوان یک فراخوانی تابع تفسیر می‌شود.\n- **مدیریت عملگرها:** از جدول اولویت عملگرها استفاده می‌کند تا ترتیب عملیات به درستی رعایت شود.\n- **گزارش خطا:** در صورت بروز هرگونه خطا در نحو، پیام خطای دقیق به کاربر نمایش داده می‌شود.\n\n### 9.3. جزئیات تولید کد (Code Generation)\nکد تولید شده توسط بخش CodeGen به وسیله‌ی IRBuilder و LLVM ساخته می‌شود:\n- **تبدیل گره‌های AST به LLVM IR:** هر گره‌ی AST تابع codegen() خاص خود را دارد.\n- **بهینه‌سازی IR:** پس از تولید IR، مجموعه‌ای از بهینه‌سازی‌های استاندارد مانند Promotion، Instruction Combining و غیره اعمال می‌شود.\n- **تولید نهایی کد ماشین:** LLVM IR به وسیله‌ی سیستم کامپایل به کد native تبدیل می‌شود.\n\n### 9.4. جزئیات محیط زمان اجرا (Runtime)\nمحیط زمان اجرا (Runtime) مسئول:\n- **راه‌اندازی و پایان‌دهی محیط:** با فراخوانی توابع initialize() و shutdown() محیط به صورت کامل پیکربندی و پاکسازی می‌شود.\n- **مدیریت حافظه:** از روش‌های پیشرفته مدیریت حافظه بهره می‌برد.\n- **ادغام Python:** با استفاده از Python C API، مفسر Python جاسازی‌شده راه‌اندازی می‌شود تا کاربران بتوانند کدهای Python خود را اجرا و از کتابخانه‌های آن استفاده کنند.\n\n### 9.5. جزئیات پردازش موازی و GPU\nسیستم Nexon از پردازش موازی واقعی بهره می‌برد:\n- **پردازش موازی با std::thread:** تابع parallelFor در Concurrency، وظیفه تقسیم کار و اجرای موازی حلقه‌ها را بر عهده دارد.\n- **GPU Acceleration:** در صورت وجود CUDA، عملکرد GPUAcceleration با اجرای یک kernel واقعی بر روی GPU، شتاب‌دهی محاسبات را انجام می‌دهد.\n\n### 9.6. جزئیات بسته‌بندی و نصب\nابزارهای خط فرمان Nexon امکانات بسته‌بندی و نصب را فراهم می‌کنند:\n- **بسته‌بندی (package):** فایل‌های ورودی را خوانده و در یک آرشیو ZIP قرار می‌دهد.\n- **نصب (install):** آرشیو ZIP را استخراج کرده و در مسیر مشخص نصب می‌کند، همچنین بررسی می‌کند که دایرکتوری نصب در PATH سیستم موجود باشد.\n\n### 9.7. ادغام کتابخانه‌های C++ و Python\nیکی از قابلیت‌های برجسته Nexon این است که:\n- کاربران می‌توانند از تمامی کتابخانه‌های C++ به‌صورت مستقیم (از طریق `#include`) استفاده کنند.\n- کاربران می‌توانند کدهای Python را به‌وسیله‌ی دستور pyrun اجرا کرده و از کتابخانه‌های Python بهره ببرند.\n\nاین ادغام به توسعه‌دهندگان اجازه می‌دهد تا از بهترین امکانات هر دو زبان بهره ببرند.\n\n---\n\n## بخش ۱۰: نحوه استفاده از Nexon توسط کاربران نهایی\n\n### 10.1. نصب پروژه Nexon\n1. **دانلود مخزن از GitHub:**\n   - به آدرس [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) مراجعه کرده و مخزن را دانلود یا clone نمایید.\n     ```bash\n     git clone https://github.com/mr-r0ot/Nexon.git\n     ```\n2. **اجرای اسکریپت نصب (install.py):**\n   - با اجرای اسکریپت install.py تمامی وابستگی‌های سیستم مانند کامپایلر C++، LLVM، CUDA و Python3 نصب می‌شوند.\n     ```bash\n     python install.py\n     ```\n3. **پیکربندی و ساخت پروژه:**\n   - از پوشه اصلی پروژه، دستورهای زیر را اجرا کنید:\n     ```bash\n     cmake -S . -B build\n     cmake --build build\n     ```\n   - فایل اجرایی Nexon در پوشه‌های build یا bin ایجاد می‌شود.\n\n### 10.2. اجرای Nexon\nپس از ساخت پروژه، می‌توانید از فایل اجرایی Nexon با دستورات مختلف استفاده کنید. به عنوان مثال:\n- **اجرای فایل منبع Nexon:**\n  ```bash\n  nexon run test.xon\n  ```\n- **بسته‌بندی فایل‌ها:**\n  ```bash\n  nexon package file1.txt file2.txt -o library.zip\n  ```\n- **نصب کتابخانه:**\n  ```bash\n  nexon install library.zip -d C:\\Path\\To\\Install\n  ```\n- **کامپایل Nexon به باینری native:**\n  ```bash\n  nexon compile source.xon -o output.exe\n  ```\n- **تولید فایل C++ از Nexon:**\n  ```bash\n  nexon generate-cpp source.xon -o output.cpp\n  ```\n- **اجرای حالت دیباگ:**\n  ```bash\n  nexon debug source.xon\n  ```\n- **اجرای کد Python:**\n  ```bash\n  nexon pyrun script.py\n  ```\n- **نمایش راهنما:**\n  ```bash\n  nexon help\n  ```\n\n### 10.3. استفاده از کتابخانه‌های C++ در کد Nexon\nدر ابتدای فایل‌های Nexon (.xon)، می‌توانید از دستورات `#include` برای وارد کردن کتابخانه‌های استاندارد C++ استفاده کنید. برای مثال:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n\ndef main()\n    print(\"Hello from Nexon using C++ libraries!\")\nend\n\nmain()\n```\nاین کد، پس از ترجمه به C++، شامل تمام دستورات #include خواهد شد و کامپایلر می‌تواند از کتابخانه‌های C++ استفاده کند.\n\n### 10.4. استفاده از کتابخانه‌های Python در کد Nexon\nبا استفاده از دستورات pyrun می‌توانید کدهای Python را اجرا کرده و از کتابخانه‌های Python بهره ببرید:\n```python\n# فایل: stats.py\nimport numpy as np\n\ndef compute_statistics():\n    data = np.array([1, 2, 3, 4, 5])\n    print(\"Data:\", data)\n    print(\"Mean:\", np.mean(data))\n    print(\"Std Dev:\", np.std(data))\n\ncompute_statistics()\n```\nسپس اجرای دستور:\n```bash\nnexon pyrun stats.py\n```\nاین کد توسط مفسر Python جاسازی‌شده اجرا شده و خروجی مربوطه نمایش داده می‌شود.\n\n---\n\n## بخش ۱۱: الگوریتم کارکرد Nexon (توضیح دقیق)\n\n### 11.1. الگوریتم Lexer\n1. **ورودی:** کد منبع به صورت یک رشته.\n2. **مراحل:**  \n   - رد کردن فضای خالی و کاراکترهای سفید.\n   - شناسایی اعداد با استفاده از تابع std::strtod.\n   - شناسایی شناسه‌ها و کلمات کلیدی با استفاده از std::isalnum.\n   - تولید توکن‌های معنادار برای هر بخش.\n3. **خروجی:** توکن‌هایی مانند tok_def، tok_identifier، tok_number و ...\n\n### 11.2. الگوریتم Parser\n1. **ورودی:** توکن‌های تولید شده توسط Lexer.\n2. **مراحل:**  \n   - استفاده از Recursive Descent برای تجزیه‌ی عبارات.\n   - ایجاد گره‌های AST برای اعداد، متغیرها و عملگرهای باینری.\n   - پشتیبانی از فراخوانی توابع با استفاده از گره‌ی CallExprAST.\n   - مدیریت اولویت عملگرها با استفاده از جدول BinopPrecedence.\n3. **خروجی:** یک درخت نحوی انتزاعی (AST) که ساختار کد منبع را بازنمایی می‌کند.\n\n### 11.3. الگوریتم Semantic Analysis\n(در نسخه تولیدی کامل، این بخش شامل تحلیل نوع‌ها و حل مشکلات نامگذاری است، اما در این پروژه پایه‌ای پیاده‌سازی شده است.)\n\n### 11.4. الگوریتم Code Generation\n1. **ورودی:** AST تولیدشده.\n2. **مراحل:**  \n   - فراخوانی متد codegen() در هر گره AST جهت تولید LLVM IR.\n   - استفاده از IRBuilder برای ایجاد بلوک‌های پایه.\n   - اعمال بهینه‌سازی‌های LLVM با استفاده از Pass‌های استاندارد.\n3. **خروجی:** LLVM IR بهینه‌شده که سپس توسط LLVM به کد ماشین native تبدیل می‌شود.\n\n### 11.5. الگوریتم Runtime\n1. **راه‌اندازی:**  \n   - فراخوانی تابع Runtime::initialize() جهت راه‌اندازی محیط، بارگذاری کتابخانه‌های استاندارد و راه‌اندازی مفسر Python.\n2. **اجرا:**  \n   - اجرای کد تولید شده (LLVM IR) با استفاده از محیط زمان اجرا.\n   - مدیریت حافظه و پردازش موازی.\n3. **پایان‌دهی:**  \n   - فراخوانی Runtime::shutdown() جهت آزادسازی منابع و پایان اجرای محیط.\n\n### 11.6. الگوریتم‌های اضافی Toolchain\n1. **بسته‌بندی:**  \n   - خواندن فایل‌های ورودی و ایجاد یک آرشیو ZIP از آن‌ها.\n2. **نصب:**  \n   - استخراج آرشیو ZIP به دایرکتوری مشخص و افزودن آن به PATH در صورت نیاز.\n3. **کامپایل:**  \n   - ترجمه کد Nexon به یک فایل C++ میانی و سپس کامپایل آن به باینری native.\n4. **تولید C++:**  \n   - تولید یک فایل C++ کامل از کد Nexon برای ویرایش و کامپایل مستقل.\n5. **دیباگ:**  \n   - اجرای کد در حالت دیباگ با نمایش اطلاعات دقیق عملکرد.\n6. **اجرای Python:**  \n   - اجرای کدهای Python با استفاده از مفسر جاسازی‌شده جهت استفاده از کتابخانه‌های Python.\n\n---\n\n## بخش ۱۲: نحوه استفاده از Nexon توسط کاربران نهایی (راهنمای جامع)\n\n### 12.1. مراحل دانلود و نصب\n1. **دانلود:**  \n   - به آدرس [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) مراجعه کنید و پروژه را دانلود نمایید یا از طریق Git clone کنید:\n     ```bash\n     git clone https://github.com/mr-r0ot/Nexon.git\n     ```\n2. **اجرای اسکریپت نصب:**  \n   - فایل `install.py` را اجرا کنید:\n     ```bash\n     python install.py\n     ```\n   - این اسکریپت وابستگی‌های سیستم (C++ compiler، LLVM، CUDA، Python3) را شناسایی و در صورت نیاز نصب می‌کند.\n\n3. **کامپایل پروژه با CMake:**  \n   - در پوشه اصلی پروژه، دستورات زیر را اجرا کنید:\n     ```bash\n     cmake -S . -B build\n     cmake --build build\n     ```\n   - فایل اجرایی Nexon در پوشه‌های build یا bin تولید خواهد شد.\n\n### 12.2. اجرای پروژه Nexon\nپس از ساخت پروژه، فایل اجرایی Nexon را با دستورات زیر اجرا کنید:\n- **اجرای فایل منبع Nexon (.xon):**\n  ```bash\n  nexon run test.xon\n  ```\n- **بسته‌بندی فایل‌ها به صورت ZIP:**\n  ```bash\n  nexon package file1.txt file2.txt -o library.zip\n  ```\n- **نصب کتابخانه:**\n  ```bash\n  nexon install library.zip -d C:\\Path\\To\\Install\n  ```\n- **کامپایل Nexon به باینری native:**\n  ```bash\n  nexon compile source.xon -o output.exe\n  ```\n- **تولید فایل C++ از Nexon:**\n  ```bash\n  nexon generate-cpp source.xon -o output.cpp\n  ```\n- **اجرای حالت دیباگ:**\n  ```bash\n  nexon debug source.xon\n  ```\n- **اجرای کد Python (pyrun):**\n  ```bash\n  nexon pyrun script.py\n  ```\n- **نمایش راهنما:**\n  ```bash\n  nexon help\n  ```\n\n### 12.3. استفاده از کتابخانه‌های C++ و Python در Nexon\n#### 12.3.1. کتابخانه‌های C++\nدر هر فایل Nexon (.xon)، توسعه‌دهندگان می‌توانند به سادگی کتابخانه‌های استاندارد C++ را از طریق:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n```\nاضافه کنند. این دستورات به هنگام تولید فایل C++ همانطور باقی می‌مانند و امکان استفاده از تمامی امکانات استاندارد C++ را فراهم می‌کنند.\n\n#### 12.3.2. کتابخانه‌های Python\nکاربران Nexon می‌توانند از دستورات `pyrun` برای اجرای کدهای Python استفاده کنند. به عنوان مثال:\n- **نمونه فایل Python (stats.py):**\n  ```python\n  import numpy as np\n\n  def compute_statistics():\n      data = np.array([10, 20, 30, 40, 50])\n      print(\"Data:\", data)\n      print(\"Mean:\", np.mean(data))\n      print(\"Standard Deviation:\", np.std(data))\n\n  compute_statistics()\n  ```\n- **اجرای فایل Python در Nexon:**\n  ```bash\n  nexon pyrun stats.py\n  ```\nاین ویژگی اجازه می‌دهد تا توسعه‌دهندگان از کتابخانه‌های قدرتمند Python بهره ببرند.\n\n---\n\n## بخش ۱۳: سینتکس و آموزش جامع Nexon\n\n### 13.1. معرفی سینتکس کلی\nزبان Nexon ترکیبی از ویژگی‌های زبان‌های C++ و Python است و سینتکس آن طوری طراحی شده است که هم برای برنامه‌نویسان حرفه‌ای و هم مبتدی قابل فهم باشد. اصول اصلی سینتکس به شرح زیر است:\n- **تعریف تابع:**  \n  با کلمه کلیدی `def` آغاز و با `end` پایان می‌یابد.\n  ```xon\n  def functionName(arg1, arg2)\n      // Body of function\n  end\n  ```\n- **تعریف متغیر:**  \n  متغیرها به صورت پویا تعریف می‌شوند و نیازی به اعلان نوع ندارند.\n  ```xon\n  def main()\n      var x = 10\n      var y = 20\n      print(\"Sum: \" + (x + y))\n  end\n  main()\n  ```\n- **دستورات شرطی:**  \n  از ساختارهای `if ... then ... else ... end` برای کنترل جریان استفاده می‌شود.\n  ```xon\n  def checkValue(val)\n      if val \u003e 0 then\n          print(\"Positive\")\n      else if val \u003c 0 then\n          print(\"Negative\")\n      else\n          print(\"Zero\")\n      end\n  end\n  ```\n- **حلقه‌ها:**  \n  از حلقه‌های `while ... do ... end` برای تکرار دستورات استفاده می‌شود.\n  ```xon\n  def loopExample()\n      var i = 0\n      while i \u003c 10 do\n          print(\"Iteration: \" + i)\n          i = i + 1\n      end\n  end\n  ```\n- **فراخوانی توابع:**  \n  توابع به سادگی با نام تابع و پارامترهای آن فراخوانی می‌شوند.\n  ```xon\n  def main()\n      var result = sum(5, 7)\n      print(\"Result: \" + result)\n  end\n  ```\n\n### 13.2. استفاده از کتابخانه‌های C++ در Nexon\nدر Nexon، امکان استفاده از تمامی کتابخانه‌های C++ استاندارد وجود دارد. توسعه‌دهندگان می‌توانند در ابتدای فایل‌های Nexon از دستورات `#include` به‌صورت زیر استفاده کنند:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n\ndef main()\n    print(\"Using C++ libraries in Nexon!\")\n    var vec = [1, 2, 3, 4, 5]\n    print(\"Vector: \" + vectorToString(vec))\nend\n\nmain()\n```\nاین دستورات در زمان تولید فایل C++ به همان صورت باقی مانده و از کتابخانه‌های C++ استفاده می‌شود.\n\n### 13.3. استفاده از کتابخانه‌های Python در Nexon\nبرای استفاده از کتابخانه‌های Python، کاربران از دستور `pyrun` استفاده می‌کنند. در این حالت، کد Python به صورت کامل توسط مفسر Python جاسازی‌شده اجرا می‌شود.  \nمثال:\n- **فایل Python (example.py):**\n  ```python\n  import numpy as np\n\n  def compute():\n      data = np.array([1, 2, 3, 4, 5])\n      print(\"Data:\", data)\n      print(\"Mean:\", np.mean(data))\n      print(\"Standard Deviation:\", np.std(data))\n\n  compute()\n  ```\n- **اجرای کد Python:**\n  ```bash\n  nexon pyrun example.py\n  ```\n\n### 13.4. توضیح نحوه‌ی استفاده از دستورات Nexon\nدستورات اصلی Nexon شامل:\n- **run:** اجرای فایل‌های .xon.\n- **package:** بسته‌بندی چند فایل به صورت ZIP.\n- **install:** نصب کتابخانه‌ها از طریق استخراج فایل ZIP و تنظیم PATH.\n- **compile:** کامپایل کردن فایل‌های Nexon به باینری native (مثلاً .exe).\n- **generate-cpp:** تولید فایل C++ از کد Nexon.\n- **debug:** اجرای حالت دیباگ با اطلاعات تشخیصی کامل.\n- **pyrun:** اجرای فایل‌های Python از طریق مفسر جاسازی‌شده.\n- **help:** نمایش راهنما و دستورهای موجود.\n\n### 13.5. مثال‌های کاربردی در محیط توسعه\nاگر کاربر با نصب کامل پروژه Nexon، فایل‌های سورس Nexon را دانلود کند، مراحل زیر را دنبال می‌کند:\n1. **دانلود و نصب:**\n   - مخزن را از [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) دانلود یا clone کنید.\n   - از طریق دستور `python install.py` وابستگی‌های لازم نصب می‌شوند.\n2. **کامپایل پروژه:**\n   ```bash\n   cmake -S . -B build\n   cmake --build build\n   ```\n3. **اجرای دستورات:**\n   - اجرای فایل منبع:\n     ```bash\n     nexon run test.xon\n     ```\n   - بسته‌بندی:\n     ```bash\n     nexon package file1.txt file2.txt -o library.zip\n     ```\n   - نصب:\n     ```bash\n     nexon install library.zip -d C:\\Path\\To\\Install\n     ```\n   - کامپایل به باینری:\n     ```bash\n     nexon compile source.xon -o output.exe\n     ```\n   - تولید فایل C++:\n     ```bash\n     nexon generate-cpp source.xon -o output.cpp\n     ```\n   - اجرای حالت دیباگ:\n     ```bash\n     nexon debug source.xon\n     ```\n   - اجرای کد Python:\n     ```bash\n     nexon pyrun script.py\n     ```\n\n### 13.6. نحوه توسعه پروژه در Nexon\nبه عنوان یک زبان تولیدی، Nexon از یک ساختار ماژولار بهره می‌برد. توسعه‌دهندگان می‌توانند:\n- **ماژول‌های جدید اضافه کنند:** با استفاده از ساختار ماژولار Nexon، می‌توانند توابع و کلاس‌های جدید را در پوشه‌های جداگانه قرار داده و از آن‌ها استفاده نمایند.\n- **کتابخانه‌های خارجی را وارد کنند:** با استفاده از دستور `#include` در سورس‌های Nexon، تمامی کتابخانه‌های C++ قابل دسترس خواهند بود.\n- **کدهای Python را با استفاده از مفسر جاسازی‌شده اجرا کنند:** این امکان اجازه می‌دهد تا الگوریتم‌های پیشرفته در حوزه‌های علم داده و یادگیری ماشین بدون نیاز به تغییر زبان اجرا شوند.\n\n---\n\n## بخش ۱۴: توسعه و بهبودهای آتی\n\n### 14.1. بهبودهای پیشرفته در Lexer و Parser\n- اضافه کردن پشتیبانی از دستورات کنترلی پیچیده مانند شرطی‌ها (if/else)، حلقه‌ها (while، for) و تعریف‌های ماژول.\n- پیاده‌سازی تحلیل معنایی کامل (Semantic Analysis) جهت بررسی نوع‌ها و حل اشکالات اسمی.\n- افزودن سیستم‌های گزارش خطا پیشرفته با شماره خط و توضیحات دقیق.\n\n### 14.2. توسعه‌ی بخش Code Generation\n- استفاده از تکنیک‌های پیشرفته بهینه‌سازی LLVM مانند Profile-Guided Optimization (PGO) و Link-Time Optimization (LTO).\n- پشتیبانی از چندین هدف (target) مختلف مانند x86، ARM و GPU.\n- بهبود بخش تولید کد جهت پشتیبانی از ویژگی‌های زبان مانند exception handling و dynamic linking.\n\n### 14.3. بهبود Runtime Environment\n- پیاده‌سازی مدیریت حافظه دقیق (مانند Garbage Collection یا smart pointers).\n- افزودن امکانات پیشرفته دیباگ، لاگ‌گیری و پروفایلینگ.\n- ادغام کامل با کتابخانه‌های Python به‌طوری که کاربران بتوانند از APIهای پیشرفته Python استفاده کنند.\n\n### 14.4. ابزارهای خط فرمان و Packaging\n- بهبود دستورات packaging و install برای پشتیبانی از سیستم‌های چندسکویی و مدیریت وابستگی‌های پیشرفته.\n- توسعه یک Package Manager داخلی برای Nexon جهت نصب و به‌روزرسانی کتابخانه‌های Nexon.\n- افزودن امکانات CI/CD جهت تست و بهبود مستمر پروژه.\n\n### 14.5. مستندسازی و آموزش\n- ایجاد مستندات کامل برای هر ماژول با مثال‌های کاربردی واقعی.\n- توسعه‌ی یک وب‌سایت رسمی برای Nexon جهت ارائه‌ی آموزش‌های جامع، مستندات API و نمونه‌های کاربردی.\n- ایجاد یک محیط توسعه‌ی یکپارچه (IDE) برای Nexon با پشتیبانی از دیباگ، تکمیل خودکار کد و ابزارهای تحلیل.\n\n---\n\n## بخش ۱۵: نحوه استفاده نهایی از Nexon برای یک توسعه‌دهنده\n\n### 15.1. شروع به کار با Nexon\nبرای شروع کار با Nexon:\n1. مخزن را دانلود کنید.\n2. اسکریپت install.py را اجرا کنید تا تمامی وابستگی‌ها نصب شود.\n3. پروژه را با استفاده از CMake کامپایل کنید.\n4. فایل اجرایی Nexon را اجرا کنید و از دستورات موجود استفاده کنید.\n\n### 15.2. مثال‌های کاربردی برای یک توسعه‌دهنده\n- **ایجاد یک پروژه ساده:**  \n  یک فایل `hello.xon` ایجاد کنید:\n  ```xon\n  #include \u003ciostream\u003e\n  \n  def main()\n      print(\"Hello, Nexon!\")\n  end\n  \n  main()\n  ```\n  سپس با دستور زیر اجرا کنید:\n  ```bash\n  nexon run hello.xon\n  ```\n\n- **استفاده از کتابخانه‌های C++:**  \n  یک فایل `vector_example.xon` بسازید:\n  ```xon\n  #include \u003ciostream\u003e\n  #include \u003cvector\u003e\n  #include \u003calgorithm\u003e\n  \n  def main()\n      var vec = [5, 3, 9, 1, 7]\n      print(\"Original vector: \" + vectorToString(vec))\n      // Sort the vector using C++ STL algorithm.\n      sort(vec.begin(), vec.end())\n      print(\"Sorted vector: \" + vectorToString(vec))\n  end\n  \n  main()\n  ```\n  سپس:\n  ```bash\n  nexon run vector_example.xon\n  ```\n\n- **استفاده از کتابخانه‌های Python:**  \n  یک فایل Python به نام `data_analysis.py` ایجاد کنید:\n  ```python\n  import numpy as np\n  \n  def analyze():\n      data = np.array([1, 2, 3, 4, 5])\n      print(\"Data:\", data)\n      print(\"Mean:\", np.mean(data))\n      print(\"Std Dev:\", np.std(data))\n  \n  analyze()\n  ```\n  سپس:\n  ```bash\n  nexon pyrun data_analysis.py\n  ```\n\n### 15.3. نکات پیشرفته برای توسعه‌دهندگان\n- **دیباگ و تولید کد:**  \n  با استفاده از دستور `nexon debug` می‌توانید برنامه‌های خود را در حالت دیباگ اجرا و اطلاعات دقیق عملکرد را مشاهده کنید.\n- **کامپایل به باینری native:**  \n  با دستور `nexon compile`، می‌توانید کدهای Nexon را به فایل‌های اجرایی native تبدیل کنید. این امکان به شما اجازه می‌دهد تا برنامه‌های خود را به صورت مستقل اجرا و منتشر نمایید.\n- **تولید فایل C++:**  \n  دستور `nexon generate-cpp` تمامی کدهای Nexon را به یک فایل C++ تولید می‌کند که می‌توانید آن را مورد بررسی و ویرایش قرار دهید.\n- **بسته‌بندی و نصب:**  \n  با استفاده از دستورات package و install می‌توانید کتابخانه‌های خود را به راحتی در سیستم‌های دیگر نصب کنید.\n\n---\n\n## بخش ۱۶: دستورالعمل‌های نهایی برای دانلود، نصب و اجرای پروژه Nexon\n\n### 16.1. دانلود مخزن\n1. به آدرس [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) بروید.\n2. مخزن را دانلود کنید یا از طریق دستور زیر آن را کلون کنید:\n   ```bash\n   git clone https://github.com/mr-r0ot/Nexon.git\n   ```\n\n### 16.2. نصب وابستگی‌ها\n1. پوشه پروژه را باز کنید.\n2. اسکریپت نصب را اجرا کنید:\n   ```bash\n   python install.py\n   ```\n   این اسکریپت سیستم عامل را شناسایی و در صورت نیاز کامپایلر C++، LLVM، CUDA و Python3 را نصب می‌کند.\n\n### 16.3. ساخت پروژه\n1. در پوشه ریشه پروژه، دستورهای زیر را اجرا کنید:\n   ```bash\n   cmake -S . -B build\n   cmake --build build\n   ```\n2. فایل اجرایی Nexon در پوشه build یا bin تولید می‌شود.\n\n### 16.4. اجرای Nexon\nبا استفاده از فایل اجرایی Nexon، می‌توانید دستورات زیر را اجرا کنید:\n- برای اجرای یک فایل منبع:\n  ```bash\n  nexon run test.xon\n  ```\n- برای بسته‌بندی:\n  ```bash\n  nexon package file1.txt file2.txt -o library.zip\n  ```\n- برای نصب:\n  ```bash\n  nexon install library.zip -d C:\\Path\\To\\Install\n  ```\n- برای کامپایل:\n  ```bash\n  nexon compile source.xon -o output.exe\n  ```\n- برای تولید فایل C++:\n  ```bash\n  nexon generate-cpp source.xon -o output.cpp\n  ```\n- برای اجرای حالت دیباگ:\n  ```bash\n  nexon debug source.xon\n  ```\n- برای اجرای کد Python:\n  ```bash\n  nexon pyrun script.py\n  ```\n- برای نمایش راهنما:\n  ```bash\n  nexon help\n  ```\n\n### 16.5. نکات مهم نصب در ویندوز\nدر ویندوز، اگر کامپایلر C++ (مانند g++ از MinGW یا cl.exe از Visual Studio) نصب باشد و فایل‌های باینری در PATH سیستم قرار نداشته باشند، ابتدا به پوشه‌ی حاوی فایل‌های Nexon بروید و مسیر آن را به صورت موقت یا دائمی به PATH اضافه کنید:\n```cmd\ncd C:\\Users\\tahag\\Desktop\\Project\\0SuperProjects\\Other\\Nexon\\src\nset PATH=%PATH%;C:\\Users\\tahag\\Desktop\\Project\\0SuperProjects\\Other\\Nexon\\src\nnexon.exe run test.xon\n```\nهمچنین دستور `install` به صورت خودکار پوشه نصب را بررسی و در صورت لزوم به PATH اضافه می‌کند.\n\n---\n\n## بخش ۱۷: مستندات نهایی برای توسعه‌دهندگان Nexon\n\n### 17.1. مستندات فنی\n- **معماری ماژولار:**  \n  Nexon از یک معماری ماژولار بهره می‌برد که هر ماژول (Lexer، Parser، AST، CodeGen، Runtime، Concurrency، GPUAcceleration و Optimizer) به صورت جداگانه پیاده‌سازی شده است. این معماری امکان گسترش و به‌روزرسانی آسان را فراهم می‌کند.\n- **تکنیک‌های بهینه‌سازی:**  \n  در بخش CodeGen و Optimizer، از الگوریتم‌های پیشرفته بهینه‌سازی مانند Instruction Combining، Reassociation و Global Value Numbering استفاده شده است.\n- **پردازش موازی و GPU:**  \n  سیستم Nexon از چندپردازشی (multi-threading) واقعی بهره می‌برد و در صورت وجود CUDA، شتاب‌دهی GPU به صورت واقعی اعمال می‌شود.\n- **ادغام Python:**  \n  با استفاده از Python C API، محیط Python در Runtime جاسازی شده و کاربران می‌توانند به سادگی از کتابخانه‌های Python در پروژه‌های خود استفاده کنند.\n- **مدیریت وابستگی‌ها:**  \n  اسکریپت install.py تمامی وابستگی‌های لازم را نصب و پیکربندی می‌کند. این شامل نصب کامپایلر C++، LLVM، CUDA و Python3 می‌شود.\n\n### 17.2. نحوه توسعه و گسترش Nexon\nتوسعه‌دهندگان می‌توانند به راحتی ماژول‌های جدید را اضافه و قابلیت‌های موجود را بهبود بخشند. برای مثال:\n- افزودن کنترل‌های پیشرفته (if/else, loops, switch-case)\n- گسترش Semantic Analysis جهت پشتیبانی از ویژگی‌های چندریختی و Generic Programming.\n- بهبود و توسعه‌ی استاندارد کتابخانه‌های داخلی جهت پوشش تمامی نیازهای علمی، فیزیکی و کاربردهای پیشرفته.\n- توسعه ابزارهای IDE، دیباگر و سیستم‌های تست خودکار.\n\n### 17.3. مستندسازی کامل API\nتمامی کلاس‌ها و توابع Nexon با توضیحات دقیق مستند شده‌اند تا توسعه‌دهندگان حتی بدون آشنایی قبلی بتوانند به راحتی از امکانات استفاده کنند. برای مثال:\n- **Lexer:**  \n  توابع getNextChar، peekChar و getNextToken به‌طور دقیق توضیح داده شده‌اند.\n- **AST و Parser:**  \n  تمامی گره‌های AST مانند NumberExprAST، VariableExprAST، BinaryExprAST و CallExprAST همراه با متدهای codegen پیاده‌سازی شده‌اند.\n- **CodeGen:**  \n  توابع getGlobalContext، Builder و TheModule برای تولید کد و بهینه‌سازی کامل توضیح داده شده‌اند.\n- **Runtime:**  \n  توابع initialize، shutdown، initializePython، finalizePython و executePythonCode به‌صورت دقیق پیاده‌سازی شده‌اند تا اجرای کدهای تولیدی و Python به صورت یکپارچه صورت گیرد.\n\n### 17.4. نحوه استفاده از Nexon در پروژه‌های واقعی\nبرای شروع یک پروژه جدید در Nexon، توسعه‌دهنده می‌تواند یک فایل منبع با پسوند .xon ایجاد کند. مثال ساده‌ای برای یک برنامه Hello World:\n```xon\n#include \u003ciostream\u003e\n\ndef main()\n    print(\"Hello, Nexon!\")\nend\n\nmain()\n```\nاین فایل پس از پردازش توسط سیستم Nexon به یک فایل C++ تولید شده و سپس کامپایل و اجرا می‌شود.  \nهمچنین می‌توان از امکانات پیشرفته مانند پردازش موازی، GPU acceleration و استفاده از کتابخانه‌های Python در کنار کدهای Nexon بهره برد.\n\n---\n\n## بخش ۱۸: راهنمای توسعه‌دهندگان (Developer Guide)\n\n### 18.1. ساختار پروژه Nexon\nساختار پروژه به شرح زیر است:\n```\nNexon/\n├── CMakeLists.txt          # تنظیمات ساخت پروژه\n├── install.py              # اسکریپت نصب وابستگی‌ها\n├── include/\n│   └── Nexon/\n│       ├── stdlib.h        # توابع استاندارد و کتابخانه داخلی\n│       ├── Lexer.h         # تعریف Lexer\n│       ├── AST.h           # تعریف گره‌های AST\n│       ├── CodeGen.h       # رابط Code Generation با LLVM\n│       ├── Concurrency.h   # ابزارهای پردازش موازی\n│       ├── GPUAcceleration.h  # ماژول شتاب‌دهنده GPU\n│       ├── Optimizer.h     # بهینه‌سازی کد تولیدشده\n│       ├── Parser.h        # تعریف Parser\n│       └── Runtime.h       # محیط زمان اجرا و ادغام Python\n├── src/\n│   ├── AST.cpp             # پیاده‌سازی AST\n│   ├── CodeGen.cpp         # پیاده‌سازی Code Generation\n│   ├── Concurrency.cpp     # پیاده‌سازی پردازش موازی\n│   ├── GPUAcceleration.cpp # پیاده‌سازی شتاب‌دهی GPU\n│   ├── Lexer.cpp           # پیاده‌سازی Lexer\n│   ├── Optimizer.cpp       # پیاده‌سازی بهینه‌سازی\n│   ├── Parser.cpp          # پیاده‌سازی Parser\n│   ├── Runtime.cpp         # پیاده‌سازی محیط زمان اجرا\n│   └── nexon.cpp           # فایل اصلی ابزارهای خط فرمان Nexon\n└── tests/\n    └── test1.xon           # نمونه برنامه تولیدی Nexon\n```\nتوسعه‌دهندگان می‌توانند ماژول‌های جدید را در این ساختار اضافه کنند و از الگوی موجود برای گسترش زبان استفاده نمایند.\n\n### 18.2. توسعه و بهبودهای آتی\nدر آینده می‌توان موارد زیر را اضافه و بهبود بخشید:\n- **Semantic Analysis پیشرفته:**  \n  اضافه کردن تحلیل معنایی کامل با بررسی نوع‌ها، محدودیت‌ها و همگام‌سازی نام‌ها.\n- **پشتیبانی از Control Flow پیشرفته:**  \n  اضافه کردن ساختارهای پیچیده‌ی شرطی و حلقه‌های بهینه.\n- **بهبود بهینه‌سازی کد:**  \n  پیاده‌سازی تکنیک‌های پیشرفته بهینه‌سازی مانند PGO و LTO.\n- **ادغام پیشرفته با Python:**  \n  ایجاد APIهایی برای فراخوانی توابع Python و انتقال داده بین محیط‌های C++ و Python.\n- **ابزارهای توسعه:**  \n  ایجاد یک IDE اختصاصی برای Nexon، دیباگر و سیستم تست خودکار.\n\n### 18.3. نحوه توسعه برنامه‌های جدید\nبرای ایجاد یک پروژه جدید در Nexon، کافی است یک فایل متنی با پسوند .xon ایجاد کرده و از سینتکس استاندارد Nexon استفاده کنید. سپس می‌توانید از دستورات:\n- **nexon run:** برای اجرای کد.\n- **nexon compile:** برای کامپایل به باینری native.\n- **nexon generate-cpp:** برای تولید فایل C++ از کد Nexon.\nاستفاده کنید.\n\n---\n\n## بخش ۱۹: مستندات API و راهنمای مرجع\n\n### 19.1. API Lexer\n- **کلاس Lexer:**  \n  - `Lexer(const std::string \u0026input)`: سازنده با دریافت رشته‌ی ورودی.\n  - `int getNextToken()`: دریافت توکن بعدی.\n  - `std::string getIdentifierStr()`: برگرداندن آخرین شناسه خوانده‌شده.\n  - `double getNumVal()`: برگرداندن آخرین عدد خوانده‌شده.\n\n### 19.2. API AST\n- **کلاس ExprAST:**  \n  - متد مجازی `codegen()`: تولید LLVM IR.\n- **کلاس NumberExprAST:**  \n  - سازنده با عدد.\n  - `codegen()`: تولید عدد به صورت LLVM IR.\n- **کلاس VariableExprAST:**  \n  - سازنده با شناسه.\n  - `codegen()`: تولید ارجاع به متغیر.\n- **کلاس BinaryExprAST:**  \n  - سازنده با عملگر، LHS و RHS.\n  - `codegen()`: تولید عملیات باینری.\n- **کلاس CallExprAST:**  \n  - سازنده با نام تابع و آرگومان‌ها.\n  - `codegen()`: تولید فراخوانی تابع.\n- **کلاس PrototypeAST و FunctionAST:**  \n  - تعریف پروتوتایپ و تابع به همراه متد codegen.\n\n### 19.3. API CodeGen\n- **کلاس CodeGen:**  \n  - `getGlobalContext()`, `Builder()`, `TheModule()`: مدیریت و دسترسی به Context و Module.\n  - `getNamedValue()`, `setNamedValue()`, `clearNamedValues()`: مدیریت جدول نمادها.\n  - همچنین توابع کمکی برای dump کردن ماژول و چاپ متغیرهای global.\n\n### 19.4. API Concurrency\n- **کلاس Concurrency:**  \n  - `parallelFor(start, end, func)`: اجرای موازی روی بازه‌ی داده شده.\n\n### 19.5. API GPUAcceleration\n- **کلاس GPUAcceleration:**  \n  - `runSampleKernel()`: اجرای یک CUDA kernel جهت شتاب‌دهی محاسبات.\n  - توابع کمکی مانند `simulateDataTransfer()`.\n\n### 19.6. API Optimizer\n- **کلاس Optimizer:**  \n  - `runOptimizationPasses()`: اجرای مجموعه‌ای از بهینه‌سازی‌های LLVM بر روی Module.\n\n### 19.7. API Parser\n- **کلاس Parser:**  \n  - توابع `parseExpression()`, `parsePrimary()`, `parseIdentifierExpr()`, `parseNumberExpr()`, `parseParenExpr()`, `parseBinOpRHS()`, `parsePrototype()`, `parseDefinition()`, `parseTopLevelExpr()`.\n\n### 19.8. API Runtime\n- **کلاس Runtime:**  \n  - `initialize()`: راه‌اندازی محیط زمان اجرا و همچنین مفسر Python.\n  - `shutdown()`: پایان‌دهی به محیط زمان اجرا.\n  - `initializePython()`, `finalizePython()`, `executePythonCode()`: مدیریت مفسر Python جاسازی‌شده.\n\n---\n\n## بخش ۲۰: نمونه‌های پیشرفته و کاربردی\n\n### 20.1. پروژه‌های نمونه پیشرفته\n- **شبیه‌سازی جامع ماشین تورینگ:**  \n  با استفاده از توابع Nexon مانند `computeForce`, `vectorMagnitude` و سایر توابع، کاربران می‌توانند ماشین تورینگ خود را شبیه‌سازی کنند.\n- **پیاده‌سازی الگوریتم‌های رمزنگاری:**  \n  استفاده از قابلیت‌های ریاضی و پردازش موازی برای پیاده‌سازی الگوریتم‌هایی مانند RSA.\n- **شبیه‌سازی سیستم‌های فضایی:**  \n  بهره‌گیری از کتابخانه‌های پیشرفته ریاضی و فیزیک جهت مدل‌سازی حرکت اجرام آسمانی.\n- **توسعه برنامه‌های علمی:**  \n  استفاده از کتابخانه‌های Python (مانند NumPy و SciPy) برای تحلیل داده‌های علمی و تجسم داده‌ها.\n- **پروژه‌های کاربردی صنعتی:**  \n  استفاده از Nexon برای ایجاد سیستم‌های محاسباتی بزرگ با کارایی بالا در حوزه‌های مختلف.\n\n### 20.2. نحوه استفاده از پروژه‌های نمونه\nبرای شروع، توسعه‌دهندگان می‌توانند فایل‌های نمونه مانند `test1.xon` را اجرا کنند:\n```bash\nnexon run tests/test1.xon\n```\nهمچنین می‌توانند پروژه‌های پیشرفته را از طریق دستورات:\n```bash\nnexon compile advanced_project.xon -o advanced_project.exe\n```\nو یا:\n```bash\nnexon generate-cpp advanced_project.xon -o advanced_project.cpp\n```\nاجرا و بررسی نمایند.\n\n---\n\n## بخش ۲۱: نکات پایانی و توصیه‌های توسعه\n\n### 21.1. نکات اجرایی\n- **سازگاری سیستم:**  \n  اطمینان حاصل کنید که تمامی وابستگی‌های سیستم (LLVM، CUDA، Python3 و ...) نصب شده باشند.\n- **به‌روزرسانی PATH:**  \n  در سیستم‌های ویندوز، در صورت نیاز از دستورات set یا setx برای افزودن مسیرهای لازم به PATH استفاده کنید.\n- **مدیریت پروژه:**  \n  از ابزارهای CI/CD برای تست و به‌روزرسانی مداوم پروژه Nexon استفاده کنید.\n- **مستندسازی:**  \n  این فایل README.md مستندات جامع Nexon را ارائه می‌دهد؛ همچنین مستندات API به تفصیل در فایل‌های هدر موجود است.\n\n### 21.2. توصیه‌های توسعه‌دهندگان\n- **گسترش زبان:**  \n  Nexon به صورت ماژولار طراحی شده است؛ توسعه‌دهندگان می‌توانند ماژول‌های جدیدی مانند پشتیبانی از زبان‌های سطح بالا، کنترل‌های پیشرفته، و ابزارهای تحلیلی را به پروژه اضافه کنند.\n- **استفاده از کتابخانه‌های استاندارد:**  \n  توسعه‌دهندگان می‌توانند به راحتی از تمامی کتابخانه‌های C++ و Python استفاده کنند. این امکان به وسیله‌ی ابزارهای تولید کد و مفسر Python جاسازی‌شده فراهم شده است.\n- **بهبود عملکرد:**  \n  با استفاده از بهینه‌سازی‌های LLVM و پردازش موازی، پروژه Nexon توانسته است عملکرد بسیار بالایی ارائه دهد. توصیه می‌شود همواره از جدیدترین تکنیک‌های بهینه‌سازی بهره ببرید.\n- **ارتباط با جامعه:**  \n  توسعه‌دهندگان Nexon می‌توانند از GitHub برای به اشتراک‌گذاری کد، دریافت بازخورد و همکاری در توسعه زبان استفاده کنند.\n\n---\n\n## بخش ۲۲: نتیجه‌گیری\n\nزبان برنامه‌نویسی Nexon، شاهکاری است که توسط **محمد طاها گرجی** طراحی و ساخته شده و هدف آن ارائه یک سیستم جامع، تولیدی و بسیار قدرتمند است.  \nاین زبان با استفاده از فناوری‌های پیشرفته مانند LLVM برای تولید کد، CUDA برای شتاب‌دهی GPU، پردازش موازی برای استفاده بهینه از منابع CPU و ادغام کامل با کتابخانه‌های C++ و Python، تمامی نیازهای توسعه‌دهندگان برای ایجاد پروژه‌های پیچیده و پیشرفته را برآورده می‌کند.\n\nویژگی‌های کلیدی Nexon شامل موارد زیر است:\n- **پشتیبانی جامع از بهینه‌سازی‌های سطح پایین**  \n- **استفاده واقعی و بهینه از CPU و GPU**  \n- **ادغام کامل با کتابخانه‌های استاندارد C++**  \n- **امکان استفاده از کتابخانه‌های Python از طریق مفسر جاسازی‌شده**  \n- **ابزارهای خط فرمان قدرتمند برای اجرای، کامپایل، تولید کد و دیباگ**  \n- **سیستم ماژولار و توسعه‌پذیر**  \n- **توسعه و بهبود مستمر از طریق جامعه‌ی توسعه‌دهندگان**\n\nاین مستند به طور کامل تمام جنبه‌های زبان Nexon را پوشش می‌دهد تا حتی فردی که هیچ آشنایی با این زبان ندارد بتواند به راحتی از آن استفاده کند و پروژه‌های پیچیده را با آن پیاده‌سازی نماید.\n\n### الگوریتم کارکرد Nexon در یک نگاه کلی:\n1. **Lexer:** کد منبع به توکن‌های معنایی دقیق تقسیم می‌شود.\n2. **Parser:** توکن‌ها به یک درخت نحوی انتزاعی (AST) تبدیل می‌شوند.\n3. **Semantic Analysis:** AST مورد بررسی قرار گرفته و صحت معنایی آن تایید می‌شود.\n4. **Code Generation:** با استفاده از IRBuilder و LLVM، AST به LLVM IR تبدیل و بهینه می‌شود.\n5. **Optimization:** IR به وسیله‌ی pass‌های پیشرفته LLVM بهینه‌سازی می‌شود.\n6. **Runtime:** محیط زمان اجرا، حافظه، پردازش موازی و GPU را مدیریت می‌کند و همچنین مفسر Python را برای استفاده از کتابخانه‌های Python فعال می‌سازد.\n7. **Toolchain:** ابزارهایی برای بسته‌بندی، نصب، کامپایل و تولید کد C++ فراهم شده‌اند.\n8. **ادغام کتابخانه‌ها:** امکان استفاده از کتابخانه‌های استاندارد C++ و Python در کدهای Nexon به سادگی فراهم شده است.\n\n### نحوه استفاده از Nexon:\n- پس از دانلود مخزن از GitHub ([https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon))، اسکریپت install.py تمامی وابستگی‌ها را نصب و پیکربندی می‌کند.\n- پروژه با استفاده از CMake ساخته می‌شود و فایل اجرایی Nexon در پوشه‌ی مشخصی (مثلاً bin/) تولید می‌گردد.\n- دستورات اصلی Nexon شامل run، package، install، compile، generate-cpp، debug و pyrun هستند.\n- توسعه‌دهندگان می‌توانند از تمامی کتابخانه‌های C++ و Python به صورت مستقیم در کدهای خود استفاده کنند.\n- مستندات API و نحوه استفاده از هر بخش در فایل‌های هدر موجود است.\n\n### نحوه استفاده از کتابخانه‌های C++:\nبرای استفاده از کتابخانه‌های C++ در Nexon، کافی است در ابتدای فایل‌های Nexon از دستور `#include` استفاده کنید. برای مثال:\n```xon\n#include \u003ciostream\u003e\n#include \u003cvector\u003e\n#include \u003calgorithm\u003e\n\ndef main()\n    print(\"Hello from Nexon using C++ libraries!\")\nend\n\nmain()\n```\nاین دستورات در فایل تولیدشده C++ به همان صورت باقی می‌مانند و امکان استفاده از کتابخانه‌های استاندارد C++ فراهم می‌شود.\n\n### نحوه استفاده از کتابخانه‌های Python:\nبرای بهره‌گیری از کتابخانه‌های Python در Nexon، از دستور pyrun استفاده کنید. به عنوان مثال:\n```bash\nnexon pyrun myscript.py\n```\nکه در آن myscript.py شامل کدهایی مانند:\n```python\nimport numpy as np\nimport pandas as pd\n\ndef analyze():\n    data = np.array([1, 2, 3, 4, 5])\n    df = pd.DataFrame(data, columns=[\"Values\"])\n    print(\"DataFrame:\")\n    print(df)\n\nanalyze()\n```\nمی‌باشد. این کد توسط مفسر Python جاسازی‌شده در Runtime اجرا می‌شود.\n\n---\n\n## بخش ۲۳: راهنمای جامع استفاده برای مبتدیان\n\nاگر شما هیچ اطلاعاتی در مورد Nexon ندارید، این بخش به شما کمک می‌کند تا از صفر شروع کنید.\n\n### 23.1. نصب اولیه\n1. **دانلود مخزن Nexon:**  \n   به آدرس [https://github.com/mr-r0ot/Nexon](https://github.com/mr-r0ot/Nexon) مراجعه کرده و مخزن را دانلود کنید یا از طریق دستور `git clone` آن را کلون کنید.\n2. **اجرای اسکریپت نصب:**  \n   از طریق ترمینال دستور زیر را اجرا کنید:\n   ```bash\n   python install.py\n   ```\n   این اسکریپت تمامی وابستگی‌های لازم مانند کامپایلر C++، LLVM، CUDA و Python3 را نصب و پیکربندی می‌کند.\n\n### 23.2. ساخت پروژه\n1. **پیکربندی با CMake:**  \n   در پوشه‌ی اصلی پروژه دستور زیر را اجرا کنید:\n   ```bash\n   cmake -S . -B build\n   ```\n2. **ساخت پروژه:**  \n   سپس دستور زیر را اجرا کنید:\n   ```bash\n   cmake --build build\n   ```\n   فایل اجرایی Nexon در پوشه‌ی `build` یا `bin` تولید می‌شود.\n\n### 23.3. اجرای برنامه‌های Nexon\n1. **اجرای یک فایل منبع Nexon:**  \n   برای اجرای یک فایل منبع به نام `test.xon` دستور زیر را اجرا کنید:\n   ```bash\n   nexon run test.xon\n   ```\n2. **کامپایل به باینری native:**  \n   برای کامپایل یک فایل Nexon به باینری native (مثلاً .exe) دستور زیر را اجرا کنید:\n   ```bash\n   nexon compile source.xon -o output.exe\n   ```\n3. **تولید فایل C++ از Nexon:**  \n   برای تولید فایل C++ از کد Nexon:\n   ```bash\n   nexon generate-cpp source.xon -o output.cpp\n   ```\n4. **اجرای حالت دیباگ:**  \n   برای اجرای حالت دیباگ:\n   ```bash\n   nexon debug source.xon\n   ```\n5. **اجرای کد Python:**  \n   برای اجرای فایل Python:\n   ```bash\n   nexon pyrun script.py\n   ```\n\n### 23.4. نحوه استفاده از کتابخانه‌های C++ و Python\n- **کتابخانه‌های C++:**  \n  در هر فایل Nexon، می‌توانید به سادگی از دستورات `#include` استفاده کنید:\n  ```xon\n  #include \u003ciostream\u003e\n  #include \u003cvector\u003e\n  \n  def main()\n      print(\"Hello, Nexon!\")\n  end\n  \n  main()\n  ```\n  این دستورات در فایل تولیدشده C++ 그대로 باقی می‌مانند و امکان استفاده از کتابخانه‌های C++ را فراهم می‌کنند.\n  \n- **کتابخانه‌های Python:**  \n  با استفاده از دستور pyrun می‌توانید فایل‌های Python را اجرا کرده و از کتابخانه‌های Python بهره ببرید.  \n  مثال:  \n  ```python\n  import numpy as np\n  print(\"Mean of array:\", np.mean([1,2,3,4,5]))\n  ```\n  سپس اجرای:\n  ```bash\n  nexon pyrun stats.py\n  ```\n  خروجی مربوطه نمایش داده می‌شود.\n\n### 23.5. نکات و توصیه‌های پایانی برای مبتدیان\n- **آشنایی با مفاهیم اصلی:**  \n  ابتدا با خواندن مستندات و مثال‌های ساده (مانند Hello World و مثال‌های ریاضی) آشنا شوید.\n- **توسعه‌ی پروژه‌های کوچک:**  \n  با پروژه‌های نمونه مانند محاسبه‌ی میانگین آرایه، استفاده از کتابخانه‌های C++ و Python شروع کنید.\n- **استفاده از حالت دیباگ:**  \n  حالت دیباگ به شما کمک می‌کند �","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmr-r0ot%2Fnexon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmr-r0ot%2Fnexon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmr-r0ot%2Fnexon/lists"}