احمد چیت ساززاده
احمد چیت ساززاده
خواندن ۴ دقیقه·۶ سال پیش

شروع کار با زبان برنامه نویسی جولیا

اگر کنجکاو هستید که چرا این تصویر را برای مطالب زبان برنامه نویسی جولیا انتخاب می‌کنم، به این نوشته نگاهی بیاندازید.

این‌بار در شروع کار با جولیا با ما همراه باشید. همانطور که در پست نصب جولیا گفتم، نصب این زبان برنامه نویسی خیلی ساده است و شما به راحتی می توانید آن را برای هر سیستمی(سخت افزاری و سیستم عاملی) از روی سورس آن در https://julialang.org/downloads نصب کنید.

ساده ترین راه برای یادگیری جولیا، اجرای خود جولیا REPL (مخفف: read-eval-print loop) است. برای اجرای آن یا بر روی آن دابل کلیک کنید و یا از خط فرمان سیستم julia را صدا بزنید. البته برای اجرا در خط فرمان باید جولیا در patch شما موجود باشد.

julia> 1 + 2 3 julia> ans 3

برای خروج از این محیط تعاملی می توانید از ترکیب CTRL-D(گرفتن کلید کنترلسپس فشردن کلید d) یا فرمان ()exit را وارد کنید.
همانطور که در محیط نرم افزار می بینید جولیا پس از اجرا شدن در محیط تعاملی یک بنر را نمایش می دهد و در پایین آن منتظر ورودی کاربر می شود. زمانی که کاربر یک دستور کامل را به جولیا بدهد(مثل 2+1) سپس کلید enter را فشار دهد، محیط تعاملی آن را بررسی کرده و ارزش آن را نمایش می دهد. اگر در محیط تعاملی پس از دستور خود سمیکالن ;بگذارید و کلید enter را بفشارید، ارزش کد شما(خروجی بیان) نمایش داده نمی شود. متغیرans ارزش آخرین بیان(دستور) شما را نشان می دهد و فرقی ندارد که قبلا نمایش داده شده یا از نمایش آن بوسیله ; جلوگیری شده است.
متغیر ans فقط در محیط تعاملی(interactive sessions) کار می کند و در صورت های دیگری که کد جولیا را اجرا می کنید کارایی ندارد.

برای ارزیابی عملکرد یک سورس کد در فایلی به مشخصات file.jl باید include("file.jl") را بنویسید(فرمان دهید). توجه داشته باشید که این فایل باید در پوشه ای که جولیا را نصب کرده این موجود باشد.

اگر می خواهید کد درون فایل را به صورت غیر تعاملی اجرا کنید باید در خط فرمان خود فایل را به عنوان اولین آرگومان(ورودی) دستور julia قرار دهید(توجه کنید که در خط فرمان ویندوز به جای ' باید از " استفاده کنید اما ما تمام دستورات زیر را در لینوکس نوشته‌ایم):

$ julia script.jl arg1 arg2...

همانطور که در مثال بالا مشاهده می کنید، خط فرمان نوشته شده آرگومان های بعد از آرگومان فایل را به صورت خط فرمان تفسیر کرده و آنها را به script.jl می فرستد که به ثابت جهانی ARGS پاس داده می شوند. نام اسکریپت نیز خودش به شاخص جهانی PROGRAM_FILE پاس داده می شود. توجه داشته باشید زمانی که اصطلاح julia در خط فرمان عبارت e- را می گیرد نیز ARGS در کار وجود دارد اما خبری از PROGRAM_FILE نیست. برای آشنایی بیشتر با فرمان های خط فرمان برای جولیا کافیست h- را به جولیا در خط فرمان بدهید. به عنوان مثال، برای فقط چاپ آرگومان داده شده به یک اسکریپت، شما می توانید این کار را انجام دهید:

$ julia -e 'println(PROGRAM_FILE); for x in ARGS; println(x); end' foo bar foo bar

یا می توانید کد را درون اسکریپتی قرار داده سپس آن را اجرا کنید:

$ echo 'println(PROGRAM_FILE); for x in ARGS; println(x); end' > script.jl $ julia script.jl foo bar script.jl foo bar

نماد -- می تواند میان آرگومان های اختصاص داده شده به اسکریپت و آرگومان های اختصاص داده شده به جولیا تفاوت ایجاد کند. نماد -- آرگومان ها را به جولیا می فرستد:

$ julia --color=yes -O -- foo.jl arg1 arg2..

جولیا با هر دو دستور انتخابی p- یا machine-file-- می تواند در حالت پردازش موازی(parallel) شروع به کار کند. p n- به اندازه n عملیاتگر پردازش را اجرا می کند در حالی که machine-file file-- به ازای هر خط از فایل file یک عملیاتگر را اجرا می کند. ماشین های تعریف شده برای file باید از طریق بی نیازی رمز(password-less) ssh لاگین(login) شده و در دسترس قرار بگیرند که جولیا نیز باید در همان مکان به عنوان میزبان فعلی نصب شده باشد. هر ماشینی که تعریف می شود فرم زیر را میگیرد:

[count*][user@]host[:port] [bind_addr[:port]]

پیش فرض user همان کاربر جاری سیستم و port همان پورت استاندارد ssh است. count میزان عملیاتگرهایی است که برروی حل گره کار می کنند که مقدار پیشفرض آن یک است. گزینه bind-to bind_addr[:port] آدرس آی پی و پورتی که دیگر عملیاتگرها برای ارتباط با این عملیاتگر بهتر است استفاده کنند را مشخص می کند.

اگر شما کدی دارید که می خواهید به هنگام اجرای جولیا آن هم اجرا شود، کافیست آن را در julia/config/startup.jl./~ بگذارید:

$ echo 'println("Greetings! 你好! 안녕하세요?")' > ~/.julia/config/startup.jl $ julia Greetings! 你好! 안녕하세요? ...

راه های مختلفی برای اجرای کد جولیا(julia) وجود دارد و شبیه گزینه هایی هستند که برای برنامه های پرل(perl) و روبی(ruby) ارائه شده‌اند:

julia [switches] -- [programfile] [args...]

حالا توجهتون رو به فرمان های جولیا توسط خط فرمان سیستم جلب می کنم. البته چون نتونستم در ویرگول جدول رو بگذارم لطفاً به اصل مطلب مراجعه کنید:))

اگر اشتباهی مرتکب شده‌ام، لطفاً حتماً بهم گوش‌زد کنید.

سؤالی هم بود در خدمتیم. ان شاءالله ;)

پردازش موازیزبان برنامه نویسیجولیاprogramming languagejulia
نوشته‌های سایتم را در اینجا هم منتشر می‌کنم تا همه بتونن ببینن:) www.achitsaz.ir
شاید از این پست‌ها خوشتان بیاید