برنامه نویسی

آشنایی با موج V0.0.6-PRE-BETA: تایپ قوی ، بازده عملکرد و ادامه پشتیبانی

سلام! من لوناستف ، توسعه دهنده موج هستم.

من از معرفی موج هیجان زده ام v0.0.6-pre-beta، یک قدم اصلی به جلو در تکامل زبان.

این نسخه بر گسترش سیستم نوع ، تقویت پشتیبانی از عملکرد و ایجاد ویژگی های جدید قدرتمند مانند continue بیانیه و حسابی شناور. با ساختار یافته WaveType اکنون Enums جایگزین همه انواع مبتنی بر رشته ها ، Wave گامی قوی برای تبدیل شدن به یک زبان سیستم های تایپ شده است.

انواع بازده عملکرد اکنون کاملاً پشتیبانی می شوند و منطق بیان و قابل استفاده مجدد را قادر می سازند. شما می توانید توابع را با -> i32، و مقادیر را با استفاده از return کلمه کلیدی منطق نسل LLVM IR نیز به طور کامل آگاهانه به روز شده است ، و از تولید سطح پایین ایمن تر و دقیق تر اطمینان حاصل می شود.

موج به سرعت در حال رشد است – و من بسیار هیجان زده ام که موارد بعدی را به اشتراک بگذارم.
با تشکر از شما برای حمایت از این سفر


✅ ویژگی های اضافه شده

💬 پشتیبانی نظر

  • از نظرات تک خطی با استفاده از //
  • از بلوک های اظهار نظر چند خطی با استفاده از /* */

✅ پشتیبانی از بیانیه را ادامه دهید

  • بسته به شرایط درون حلقه “در حالی که” می توان به تکرار بعدی پرش کرد
  • نحو پشتیبانی شده برای 'if (شرط) {ادامه ؛ }
  • در LLVM IR ، “ادامه” به عنوان یک بلوک بررسی شرایط برای حلقه مربوطه درمان می شود

🧠 تایپ قوی برای متغیرها و پارامترها

  • انواع مبتنی بر رشته با ساختار یافته جایگزین شده است WaveType نماد در AST
  • کاملاً از انواع مانند پشتیبانی می کند i32با u64با f32 برای هر دو متغیر و پارامتر
  • بررسی نوع استاتیک و تولید ایمن تر LLVM IR را فعال می کند

support پشتیبانی نوع شناور (f32)

  • حمایت f32 تحت اللفظی (به عنوان مثال ، 12.34)
  • اجازه می دهد تا اعلامیه ، اولیه سازی و انتصاب مجدد f32 متغیرها
  • استفاده از f32 مقادیر در عملیات حسابی و مقایسه (به عنوان مثال ، ifبا while)
  • ترویج float به double با استفاده از fpext هنگام عبور به printf برای مطابقت با C abi

چاپ فرمت شده (println("...", value))

  • به طور خودکار انواع موج را به مشخصات مناسب فرمت C نقشه می کند (%dبا %fبا %s)
  • به درستی چاپ چاپ f32با i32، و انواع رشته با استنتاج نوع

🌀 نوع آگاه LLVM IR

  • LLVM allocaبا storeوت load دستورالعمل ها بر اساس تولید می شوند WaveType
  • از هر دو هدف اولیه و شناور پشتیبانی می کند
  • کاربردهای BasicTypeEnum وت BasicValueEnum برای متحد کردن ارزش گذاری ارزش
  • صحت در عبارات باینری از نوع مختلط و شرط ها را تضمین می کند

🧩 تعریف و تماس با عملکرد

  • از توابع تعریف شده توسط کاربر با پارامترهای متعدد پشتیبانی می کند
  • پارامترها از تایپ صریح پشتیبانی می کنند (به عنوان مثال ، i32با str)
  • توابع را می توان با لفظ یا متغیرها به عنوان آرگومان فراخوانی کرد
  • LLVM IR به درستی پارامتر عبور با استفاده از %0با %1، … سبک
  • مقادیر پارامتر به درستی هستند storeد و loaded از پشته
  • منطق ساخت و قابل استفاده مجدد را با ادغام کامل سطح IR امکان پذیر می کند

support پشتیبانی از نوع بازگشت عملکرد

  • توابع اکنون می توانند انواع برگشتی را با استفاده از آن مشخص کنند -> نحو (به عنوان مثال ، -> i32)
  • انواع برگشتی پشتیبانی شده: i32با f32با str (برنامه ریزی شده تر)
  • بیانیه های بازگشت (return expr;) LLVM مناسب را منتشر کنید ret دستورالعمل
  • اگر هیچ برگشتی در یک عملکرد باطل مشخص نشده باشد ، ret void به طور خودکار درج شده است
  • تطبیق انواع بازده بین نسل Wave AST و LLVM IR را تضمین می کند

ویترین

test1

test2


test3

test4


با تشکر از شما برای استفاده از Wave! برای به روزرسانی ها و پیشرفت های آینده با ما در ارتباط باشید.


راهنمای نصب

برای لینوکس:

  1. بارگیری و استخراج:

    • بارگیری wave-v0.0.6-pre-beta-linux.tar.gz پرونده از منبع رسمی.
    • از دستور wget استفاده کنید:
     wget https://github.com/LunaStev/Wave/releases/download/v0.0.6-pre-beta/wave-v0.0.6-pre-beta-linux.tar.gz
    
  1. تنظیم LLVMS

    • یک ترمینال و نوع را باز کنید:
     sudo apt-get update
     sudo apt-get install llvm-14 llvm-14-dev clang-14 libclang-14-dev lld-14 clang
     sudo ln -s /usr/lib/llvm-14/lib/libLLVM-14.so /usr/lib/libllvm-14.so
     export LLVM_SYS_140_PREFIX=/usr/lib/llvm-14
     source ~/.bashrc
    
  2. نصب را تأیید کنید:

    • یک ترمینال و نوع را باز کنید:
     wave --version
    
  • اگر شماره نسخه نمایش داده شود ، نصب موفقیت آمیز بود.

همکار

lunastev | 🇰🇷


وب سایت

وب سایت
لوب

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا