- عنوان کتاب: The Julia Language, V1.13.0-DEV.639
- نویسنده: Steven Mcananey
- حوزه: برنامه نویسی جولیا
- سال انتشار: 2025
- تعداد صفحه: 2058
- زبان اصلی: انگلیسی
- نوع فایل: pdf
- حجم فایل: 7.45 مگابایت
محاسبات علمی به طور سنتی به بالاترین عملکرد نیاز داشتهاند، با این حال متخصصان این حوزه تا حد زیادی برای کارهای روزانه به زبانهای پویای کندتر روی آوردهاند. ما معتقدیم دلایل خوب زیادی برای ترجیح زبانهای پویا برای این برنامهها وجود دارد و انتظار نداریم استفاده از آنها کاهش یابد. خوشبختانه، طراحی زبان مدرن و تکنیکهای کامپایلر، امکان حذف عمدهی بدهبستان عملکرد و فراهم کردن یک محیط واحد به اندازه کافی مولد برای نمونهسازی اولیه و به اندازه کافی کارآمد برای استقرار برنامههای کاربردی با عملکرد بالا را فراهم میکند. زبان برنامهنویسی جولیا این نقش را ایفا میکند: این یک زبان پویای انعطافپذیر، مناسب برای محاسبات علمی و عددی است و عملکردی قابل مقایسه با زبانهای سنتی با نوع استاتیک دارد. از آنجا که کامپایلر جولیا با مفسرهای مورد استفاده برای زبانهایی مانند پایتون یا R متفاوت است، ممکن است در ابتدا متوجه شوید که عملکرد جولیا غیرشهودی است. اگر متوجه شدید که چیزی کند است، قبل از امتحان کردن هر چیز دیگری، اکیداً توصیه میکنیم بخش نکات عملکرد را مطالعه کنید. وقتی نحوه کار جولیا را بفهمید، نوشتن کدی تقریباً به سرعت C آسان میشود. جولیا دارای تایپ اختیاری، ارسال چندگانه و عملکرد خوب است که با استفاده از استنتاج نوع و کامپایل درجا (JIT) (و کامپایل اختیاری قبل از زمان) که با استفاده از LLVM پیادهسازی شده است، به دست میآید. این زبان چندالگویی است و ویژگیهای برنامهنویسی امری، تابعی و شیءگرا را ترکیب میکند. جولیا سهولت و بیانپذیری را برای محاسبات عددی سطح بالا، مانند زبانهایی مانند R، MATLAB و پایتون، فراهم میکند، اما از برنامهنویسی عمومی نیز پشتیبانی میکند. برای دستیابی به این هدف، جولیا بر اساس تبار زبانهای برنامهنویسی ریاضی ساخته شده است، اما از زبانهای پویای محبوب، از جمله Lisp، Perl، Python، Lua و Ruby نیز چیزهای زیادی قرض گرفته است. مهمترین تفاوتهای جولیا با زبانهای پویای معمول عبارتند از: • زبان اصلی چیزهای بسیار کمی را تحمیل میکند؛ پایگاه داده جولیا و کتابخانه استاندارد آن در خود جولیا نوشته شدهاند، از جمله عملیات اولیه مانند حساب اعداد صحیح • زبانی غنی از انواع برای ساخت و توصیف اشیاء، که میتوانند به صورت اختیاری برای ایجاد اعلانهای نوع نیز استفاده شوند • توانایی تعریف رفتار تابع در ترکیبات زیادی از انواع آرگومان از طریق ارسال چندگانه • تولید خودکار کد کارآمد و تخصصی برای انواع آرگومانهای مختلف • عملکرد خوب، نزدیک به زبانهای کامپایل شده استاتیک مانند C اگرچه گاهی اوقات از زبانهای پویا به عنوان “بدون نوع” صحبت میشود، اما قطعاً اینطور نیست. هر شیء، چه اولیه و چه تعریف شده توسط کاربر، دارای یک نوع است. با این حال، فقدان اعلانهای نوع در اکثر زبانهای پویا به این معنی است که نمیتوان به کامپایلر در مورد انواع مقادیر دستور داد و اغلب نمیتوان به طور صریح در مورد انواع صحبت کرد. از سوی دیگر، در زبانهای استاتیک، در حالی که میتوان – و معمولاً باید – انواع را برای کامپایلر حاشیهنویسی کرد، انواع فقط در زمان کامپایل وجود دارند و نمیتوان آنها را در زمان اجرا دستکاری یا بیان کرد. در جولیا، انواع خودشان اشیاء زمان اجرا هستند و همچنین میتوانند برای انتقال اطلاعات به کامپایلر استفاده شوند.
Scientific computing has traditionally required the highest performance, yet domain experts have largely moved to slower dynamic languages for daily work. We believe there are many good reasons to prefer dynamic languages for these applications, and we do not expect their use to diminish. Fortunately, modern language design and compiler techniques make it possible to mostly eliminate the performance trade-off and provide a single environment productive enough for prototyping and efficient enough for deploying performance-intensive applications. The Julia programming language fills this role: it is a flexible dynamic language, appropriate for scientific and numerical computing, with performance comparable to traditional statically-typed languages. Because Julia’s compiler is different from the interpreters used for languages like Python or R, you may find that Julia’s performance is unintuitive at first. If you find that something is slow, we highly recommend reading through the Performance Tips section before trying anything else. Once you understand how Julia works, it is easy to write code that is nearly as fast as C. Julia features optional typing, multiple dispatch, and good performance, achieved using type inference and just-in-time (JIT) compilation (and optional ahead-of-time compilation), implemented using LLVM. It is multi-paradigm, combining features of imperative, functional, and object-oriented programming. Julia provides ease and expressiveness for high-level numerical computing, in the same way as languages such as R, MATLAB, and Python, but also supports general programming. To achieve this, Julia builds upon the lineage of mathematical programming languages, but also borrows much from popular dynamic languages, including Lisp, Perl, Python, Lua, and Ruby. The most significant departures of Julia from typical dynamic languages are: • The core language imposes very little; Julia Base and the standard library are written in Julia itself, including primitive operations like integer arithmetic • A rich language of types for constructing and describing objects, that can also optionally be used to make type declarations • The ability to define function behavior across many combinations of argument types via multiple dispatch • Automatic generation of efficient, specialized code for different argument types • Good performance, approaching that of statically-compiled languages like C Although one sometimes speaks of dynamic languages as being “typeless”, they are definitely not. Every object, whether primitive or user-defined, has a type. The lack of type declarations in most dynamic languages, however, means that one cannot instruct the compiler about the types of values, and often cannot explicitly talk about types at all. In static languages, on the other hand, while one can – and usually must – annotate types for the compiler, types exist only at compile time and cannot be manipulated or expressed at run time. In Julia, types are themselves run-time objects, and can also be used to convey information to the compiler.
این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:
Download: The Julia Language, V1.13.0-DEV.639
نظرات کاربران