ulia یک زبان پویا، سطح بالا و با کارایی بالا برای محاسبات فنی است.
چند روز قبل انتشار نسخه جدید زبان برنامه نویسی جولیا 1.9 اعلام شد، که ترکیبی از کیفیت هایی مانند عملکرد بالا، پشتیبانی از تایپ پویا و ابزارهای داخلی برای برنامه نویسی موازی است. نحو جولیا نزدیک به متلب است و برخی از عناصر آن از روبی و لیسپ به عاریت گرفته شده است.
جولیا به دلیل اینکه یک زبان برنامه نویسی چند پلتفرمی و چند پارادایم با تایپ پویا است متمایز است چارچوب سطح بالا و با کارایی بالا برای محاسبات عمومی، فنی و علمی، با نحوی مشابه با سایر محیطهای محاسباتی مشابه.
اخبار اصلی جولیا 1.9
در این نسخه جدید جولیا 1.9 که ارائه شده است، چندین بهبود در زمان اجرا/کامپایلر، از آن زمان وجود داشت کاهش قابل توجه در زمان اجرا برای اولین بار. پیشکامپایل بسته اکنون کد بومی را در "pkgimage" ذخیره میکند، به این معنی که کد تولید شده در طول پیشکامپایل پس از بارگیری بسته، نیازی به کامپایل مجدد نخواهد داشت. استفاده از حالت pkgimages را می توان با گزینه "–pkgimages=no" غیرفعال کرد.
یکی دیگر از تغییراتی که خودنمایی می کند تغییرات است اکنون می توان تماس هایی با آرگومان های غیر نوع خاص را بهینه کرد از طریق Join split برای تزریق یا وضوح استاتیک، حتی اگر چندین نوع مختلف کاندید ارسال وجود داشته باشد. این میتواند عملکرد را در موقعیتهای خاصی که در آن انواع شی بهطور کامل به صورت ایستا حل نمیشوند، با حل استاتیکی سایتهای تماس بهبود بخشد.@nospecialize-d" و از کامپایل مجدد خودداری کنید.
حروف تک کاراکتری اکنون از همان نحوی که لفظ رشته ای پشتیبانی می کند، پشتیبانی می کند. این نحو می تواند توالی های UTF-8 نامعتبر را نشان دهد، همانطور که نوع Char مجاز است.
علاوه بر آن، در لینوکس و ویندوز، گزینه «--threads=خودکار» اکنون سعی می کند تعداد پردازنده های موجود را تعیین کند بر اساس تمایل CPU، که ماسکی است که معمولاً در محیطهای HPC و ابری تنظیم میشود.
گزینه غیرفعال شده است--math-mode=سریع"، به جای آن توصیه می شود از ماکرو استفاده کنید"@fastmath"، که علاوه بر پارامتر، دارای معنایی کاملاً تعریف شده است.-موضوعات» اکنون فرمت را دارد «ماشین | N[,خودکار|M]»، جایی که M تعداد رشته های تعاملی برای ایجاد را مشخص می کند.
گزینه اضافه شده «--heap-size-hint=» برای تنظیم آستانه ای که پس از آن جمع آوری زباله فعال شروع می شود. اندازه را می توان بر حسب بایت، کیلوبایت (1000 کیلوبایت)، مگابایت (300 مگابایت) یا گیگابایت (1,5 گیگابایت) مشخص کرد.
ماکرو "@invoke". معرفی شده در نسخه 1.7 اکنون صادر شده و برای استفاده در دسترس است. بعلاوه، اکنون از روش "Core.Typeof(x)" استفاده کنید نسبتا "هرزمانی که نوع حاشیه نویسی برای آرگومان "x" حذف شود. این مورد لازم است تا انواع ارسال شده به عنوان آرگومان به درستی پردازش شوند.
علاوه بر این، "Threads.@spawn" اکنون یک آرگومان اول اختیاری ":default" یا ":interactive" دارد. یک کار تعاملی به پاسخ تاخیر کم نیاز دارد و به صورت کوتاه یا مکرر طراحی شده است. کارهای تعاملی در صورتی که هنگام شروع Julia مشخص شده باشند، روی رشته های تعاملی اجرا می شوند.
از سایر تغییرات برجسته:
- با نفی تابع محمول "!f" به جای یک تابع ناشناس، یک تابع مرکب "(!) ∘ f" برمی گردد.
- توابع تقسیم ابعاد اکنون در چند بعد کار می کنند: «هر تکه، هر تکه و هر تکه برگرداندن یک شی "برش» که به حمل و نقل اجازه می دهد تا روش های کارآمدتری را ارائه دهد.
- کلان «@kwdef» به API عمومی اضافه شده است.
- مشکلی با ترتیب عملیات در "fld1" برطرف شد.
- مرتب سازی در حال حاضر همیشه در طول زمان پایدار است (بازطراحی شده QuickSort).
- تعداد پیشفرض رشتههای BLAS اکنون با تعداد رشتههای CPU در معماری ARM و نصف تعداد رشتههای CPU در معماریهای دیگر برابر است.
- Printf: پیامهای خطای مجدد برای رشتههای نادرست برای خوانایی بهتر.
- نمایه: تابع جدید "Profile.take_heap_snapshot(file)" که فایلی را در قالب ".heapsnapshot" مبتنی بر JSON می نویسد که توسط Chrome پشتیبانی می شود.
- پشتیبانی از مشخصات Unicode 15 اضافه شده است.
- ترکیبات تودرتو از تاپل ها و تاپل های کاراکتر نامگذاری شده اکنون می توانند به عنوان پارامترهای نوع استفاده شوند.
در نهایت ، اگر علاقمند به دانستن اطلاعات بیشتر در مورد آن هستید ، می توانید از جزئیات مشورت کنید در لینک زیر.
اولین کسی باشید که نظر