برنامه نویسی با زبان جدید #Q چگونه است؟
ایمان مدائنی

گام اول 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 و اجرا کردید.

نظرات کاربران در رابطه با این دوره

جهت ثبت نظر باید در سایت عضو شوید و یا وارد سایت شده باشید .
logo-samandehi