برنامه نویسی با زبان جدید #Q چگونه است؟
شنبه 28 بهمن 1396ماه گذشته مایکروسافت یک زبان کوانتومی محاسباتی جدید به نام #Q معرفی کرد که Q sharp خوانده می شود همراه با این زبان یک بسته ی توسعه برای توسعه دهنگان به نام QDK معرفی کرد که شامل همه ی ابزار های لازم، کامپایلر، شبیه ساز و منابعی که برای ساخت برنامه ی #Q با استفاده از visual studio و #C نیاز است را دارد. در این آموزش ساخت پروژه ی Q#ساده Hello world را خواهید آموخت فقط کافی است مراحل زیر را دنبال کنید.
![برنامه نویسی با زبان جدید #Q چگونه است؟ برنامه نویسی با زبان جدید #Q چگونه است؟](/ArticleFiles/ArticleImage/Image/61d3ab22f3634205abace22563ec7768.jpg)
گام اول visual stdio 2017 را نصب کنید
برای ساخت یک اپلیکیشن کوانتومی محاسباتی نیاز به آخرین نسخه ی visual stdio 2017 دارید (نسخه ی 15.6 به بعد)
ویژال استودیو 2017 را از https://www.visualstudio.com/downloads/ دانلود کنید.
گام دوم QDK را نصب کنید.
صفحه ی اصلی محاسبات کوانتومی را از آدرس زیر ببینید:
https://www.microsoft.com/en-us/quantum/development-kit
روی دکمه ی Download Now کلیک کنید
در صفحه ی بعد فرم را پر کنید و روی Download Now کلیک کنید.
این کار شما را به فروشگاه ویژوال استودیو می فرستد تا QDK را از صفحه ی زیر دانلود کنید:
https://marketplace.visualstudio.com/items?itemName=quantum.DevKit
QDK را دانلود و نصب کنید زمانی که عملیات نصب کامل شد پیام زیر را می بینید.
نصب QDK قالب پروژه ی Q# را به لیست قالب ها اضافه می کند.
گام سوم یک پروژه ی Q# بسازید.
حال می خواهیم اولین اپلیکیشن Q# را بسازیم
ویژوال استودیو 2017 را باز کنید و مسیر #File > New Project > Visual C اجرا کنید سپس سه گزینه ی
Q# project templates – Q# Application, Q# Library, and Q# Test Project مشاهده می شود گزینه ی Q# Application project template را انتخاب کنید و نام پروژه ی خود را بنویسید و روی OK کلیک کنید . شکل2 را مشاهده کنید.
صفحه ای که ایجاد می شود به صورت پیش فرض به صورت شکل 3 است.
هر اپلیکیشن Q# دو فایل پیش فرض C# driver (Driver.cs) و quantum code (Operation.qs) را دارد. C# driver که در فایل Driver.cs قرار دارد نقطه ی شروع اپلیکیشن است که این کد برای توسعه دهندگان C# آشناست.لیست 1 را مشاهده کنید.
using Microsoft.Quantum.Simulation.Core;
using Microsoft.Quantum.Simulation.Simulators;
namespace Quantum.HelloQ
{
class Driver
{
static void Main(string[] args)
{
}
}
}
quantum code در Operation.qs قرار دارد.لیست 2 را مشاهده کنید.
namespace Quantum.HelloQ
{
open Microsoft.Quantum.Primitive;
open Microsoft.Quantum.Canon;
operation Operation () : ()
{
body
{
}
}
}
گام چهارم نوشتن یک Q# Operation
اجازه دهید مقداری کد بنویسیم که کار خاصی انجام می دهد به عنوان یک مثال ساده در نظر بگیرید می خواهیم یک Operation بنویسیم که دو عدد صحیح می گیرید و حاصل جمع دو عدد را برمی گرداند.
Operation.qs را باز کنید و کد لیست 3 را در آن کپی کنید.
namespace Quantum.HelloQ
{
// Import Quantum.Primitive
open Microsoft.Quantum.Primitive;
// Create an operation that adds two int and returns a total int
operation Add (a : Int, b : Int): (Int)
{
body
{
return (a + b);
}
}
}
در لیست 3 اول از همه فضای نام Microsoft.Quantum.Primitive را ایجاد می کنیم.
open Microsoft.Quantum.Primitive;
بعد یک operation می نویسیم. واحد پایه ای اجرای کوانتوم operation است. Operation معادل توابع در Cو C++ و یا متدهای استاتیک در C# و جاوا است.قطعه کد لیست 4 یک operation است.
// Create an operation that adds two int and returns a total int
operation Add (a : Int, b : Int): (Int)
{
body
{
return (a + b);
}
}
یک operation با کلمه ی کلیدی operationشروع می شود و می تواند آرگومان داشته باشد و یا نداشته باشد همچنین می تواند مقدار برگرداند ویا هیچ مقداری برنگرداند. آرگومان ها یک فرم از tuple ها هستند اگر با tuple ها آشنا نیستید tuple ها در C# را مطالعه کنید.نوع یک آرگومان با استفاده از کولون تعریف می شود مقدار بازگشتی نیز با استفاده از کولون از آرگومان ها جدا میشود.
گام پنجم اجرای Q# Operation
متد Main از کلاس Driver دروازه ی برنامه است که کد های Q# را اجرا می کند از آنجایی که یک محاسبه گر کوانتوم واقعی روی لپ تاپ وجود ندارد یک راه برای اجرای یک برنامه ی Q# استفاده از شبیه ساز کوانتوم است که این شبیه ساز به عنوان بخشی از QDK نصب می شود.
کلاس QuantumSimulator در Microsoft.Quantum.Simulation.Simulators تعریف شده است
فضای نام نشان دهنده ی یک شبیه ساز است.قطعه کد زیر یک شبیه ساز کوانتوم می سازد.
using (var sim = new QuantumSimulator())
یک operation با فراخوانی operation.Run(simulator, arguments) اجرا می شود قطعه کد زیر یک operation به نام add را اجرا می کند.
var res = Add.Run(sim, 20, 10).Result;
کد کامل کلاس Driver در لیست4 نوشته شده است.کد add operation را با شبیه ساز که دو آرگومان از جنس integer دارد و مقدار بازگشتی آن در var است فراخوانی می کند.
using System;
using Microsoft.Quantum.Simulation.Core;
using Microsoft.Quantum.Simulation.Simulators;
namespace Quantum.HelloQ
{
class Driver
{
static void Main(string[] args)
{
using (var sim = new QuantumSimulator())
{
var res = Add.Run(sim, 20, 10).Result;
Console.WriteLine(res);
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
}
}
}
گام ششم buid و Run
اگر الان پروژه را build کنید تعداد زیادی ارور دریافت خواهید کرد برای حل این مشکل باید یک framework و platform خاص را هدف قرار دهید.
روی نام پروژه در Solution Explorer راست کلیک کنید و روی Properties کلیک کنید در تنظیمات اپلیکیشن framework هدف را به 4.6.1 تغییر دهید و در تنظیمات build، platform هدف را از Any CPU به x64 تغییر دهید.شکل 5 را مشاهده کنید.
حال اگر اپلیکیشن را build و Run کنید باید مقدار 30 را در کنسول مشاهده کنید.
خلاصه
Q# جدیدترین زبان برنامه نویسی است که توسط مایکروسافت برای نوشتن اپلیکیشن هایی که مبتنی بر محاسبات کوانتومی است معرفی شده است.در این مقاله یاد گرفتید که چگونه QDK را نصب کنید،تنظیمات ویژوال استودیو2017 برای پروژه ی Q# را انجام دهید و اولین کد Q# را نوشتید و آن را build و اجرا کردید.
- C#.net
- 3k بازدید
- 1 تشکر