آشنایی با موج 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 را تضمین می کند
ویترین




با تشکر از شما برای استفاده از Wave! برای به روزرسانی ها و پیشرفت های آینده با ما در ارتباط باشید.
راهنمای نصب
برای لینوکس:
-
بارگیری و استخراج:
- بارگیری
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 - بارگیری
-
تنظیم 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 -
نصب را تأیید کنید:
- یک ترمینال و نوع را باز کنید:
wave --version
- اگر شماره نسخه نمایش داده شود ، نصب موفقیت آمیز بود.
همکار
lunastev | 🇰🇷
وب سایت
وب سایت
لوب



