هذه الصفحة مسودة مولَّدة آلياً ولم تُراجع بعد. تبقى أمثلة الشفرة والأوامر والمعرّفات بالإنجليزية.

الأدوات والخلفيات#

لدي عدة مسارات تنفيذ. تشترك في النحو لكن ليس في تكافؤ الميزات الكامل.

الأدوات#

ToolPurpose
bin/nanocترجمة المصدر وإظهار خيارات التحليل أو الخلفية
bin/nanoتفسير ملف مصدر
bin/nanolang-replتقييم تفاعلي
nano-fmtتنسيق المصدر
nano-docsالبحث في التوثيق المحلي
bin/nanolang-lspدعم Language Server Protocol
bin/nanolang-dapدعم Debug Adapter Protocol
bin/nano_virtخفض المصدر إلى بايت كود NanoISA
bin/nano_vmتنفيذ بايت كود NanoISA
bin/nano_vmdتشغيل عفريت NanoVM
bin/nano_copعزل الاستدعاءات الأجنبية المدعومة في عملية مشاركة

شغّل كل أداة بـ --help حيث يُوفَّر. تسجّل صفحة Compiler CLI المولَّدة نص مساعدة المترجم الحالي.

الخلفيات#

OutputCommandBoundary
Native executablenanoc source.nano -o programمسار الإنتاج عبر C مولَّد
C sourcenanoc source.nano --target c -o program.cC مولَّد مستقل
NanoISAnano_virt source.nano --emit-nvm -o program.nvmتمثيل آلة افتراضية مشتركة ذات أنواع
PTXnanoc source.nano --target ptx -o program.ptxمجموعة فرعية لنواة GPU
OpenCL Cnanoc source.nano --target opencl -o program.clمجموعة فرعية لنواة GPU
RISC-V assemblynanoc source.nano --target riscv -o program.sمجموعة فرعية تجريبية
NanoISAnano_virt source.nano -o program.nvmمسار آلة افتراضية مع FFI معزول

أهداف LLVM وWebAssembly المستقبلية تترجم من NanoISA بدلاً من التفرع من AST مصدري. C11 من NanoISA تجربة مجموعة فرعية مغلقة (nvm2c, make test-nvm2c)، وليست الغلاف الأصلي الافتراضي لـ nano_virt الذي ما زال يضمّن الآلة الافتراضية.

التشخيصات#

تتضمن التشخيصات الموجهة للآلات شكلي JSON وTOON. تشمل خيارات المترجم المفيدة --llm-diags-json و--llm-diags-toon و--json-errors و--emit-typed-ast-json و--reflect. أختار محلية العملية بـ --locale <tag> (ثم NANO_LOCALE وLC_ALL وLANG وإلا en) وأطبع المحاور بـ --print-locale. ذلك لا يغيّر خرج التشخيص المقروء آلياً. الفهارس موجودة: stderr البشري يبحث في فهارس UTF-8؛ JSON/TOON يبقيان بالإنجليزية؛ --locale / NANO_CATALOG_DIR. تستخدم تشخيصات مترجم الأنبوب معرّفات مستقرة (CIO01 وCSRC01 وL0003 وبقية src/diag_id.c). عناوين مدقق الأنواع التي تمر عبر emit_context_error تستخدم E001–E035 فريدة. المعرّفات ASCII؛ غير ASCII يفشل مغلقاً (CLEX01). أرفض UTF-8 غير صالح في مصدر .nano (CSRC01) وعند حدود JSON/TOON/module.json/docgen. لا أسمّي النظام مُدَوَّلاً. راجع صفحة CLI المولَّدة لأن الأعلام تتغير أكثر مما ينبغي للنثر أن يدّعي.

-pg و--profile-output يغلّفان ثنائياً أصلياً بمحلل المضيف ويصدران JSON على stdout. ذلك المسار ليس --profile-runtime وليس --pgo. أوثّقه في تحليل الأداء.