Q# Kullanıcı KılavuzuThe Q# User Guide

Q# Kullanıcı Kılavuzu’na hoş geldiniz!Welcome to the Q# User Guide!

Burada Q# diline ait temel kavramların ve kuantum programları yazmak için ihtiyaç duyduğunuz bilgilerin ayrıntılarını paylaşıyoruz.Here we detail the core concepts of the Q# language and all the information you need to write quantum programs.

Kullanıcı Kılavuzu İçeriğiUser Guide Contents

  • Q# Hakkındaki Temel Bilgiler: Q# programlama dilinin amacı ve işlevlerine yönelik genel bir bakış.Q# Basics: an introductory overview of the purpose and functionality of the Q# programming language.

Q# DiliQ# Language

  • Q# Dilindeki Türler: Q# tür modelini yerleştirir ve türleri belirtip bunlarla çalışmaya yönelik söz dizimini açıklar.Types in Q#: lays out the Q# type model and describes the syntax for specifying and working with types.

  • Tür İfadeleri: Q# dilindeki her türe ait değeri belirtme, birleştirme ve bu değere başvurup değer üzerinde çalışma ayrıntıları.Type Expressions: details how to specify, reference, combine, and operate on values of each type in Q#.

Q# kullanmaUsing Q#

  • Q# Dosya Yapısı: *.qs Q# dosyasının yapısını ve söz dizimini açıklar.Q# File Structure: describes the structure and syntax of a *.qs Q# file.

  • İşlemler ve İşlevler: Q# dilinin çağrılabilir iki türü hakkında ayrıntılar sağlar: işlemler, kubit kayıt defterleri üzerindeki eylemleri içerir ve işlevler, yalnızca klasik bilgilerle çalışır.Operations and Functions: details the two callable types of the Q# language: operations, which include action on qubit registers and functions, which strictly work with classical information. Burada, kuantum işlemlerinin eklenik ve denetlenmiş sürümleri dahil olmak üzere bunları nasıl tanımlayıp çağıracağınızı göreceksiniz.Here you see how to define and call them, including the adjoint and controlled versions of quantum operations.

  • Değişkenler: Q# programlarındaki değişkenlerin rolünü ve bunların nasıl etkili bir şekilde kullanılacağını açıklar.Variables: describes the role of variables within Q# programs and how to leverage them effectively. Örneğin, bağlama kapsamlarının yanı sıra, sabit/değişebilen değişkenler arasındaki farklar ve bunları atayıp atamalarını kaldırma hakkında bilgiler bulabilirsiniz.For example, you can find information about binding scopes, as well as the difference between immutable/mutable variables and how to assign/re-assign them.

  • Kubitlerle çalışma: Tek başına kubitlere ve kubit sistemlerine yönelik olarak kullanılan Q# özelliklerini açıklar.Working with qubits: describes the features of Q# used to address individual qubits and systems of qubits. Özellikle, bunların ayrılmasını, bunlara yönelik işlemler gerçekleştirmeyi ve son olarak ölçülerini kapsar.Specifically, that entails their allocation, performing operations on them, and ultimately their measurement.

  • Denetim Akışı: Çok sayıda standart tekniğin (koşullu yürütme, for döngüleri, while döngüleri vb.) yanı sıra kuantuma özgü “Başarılı Olana Kadar Yinele” desenini de içeren, Q# dilindeki programlama denetim akışı desenlerinin ayrıntılarını içerir.Control Flow: details the programming control flow patterns available in Q#, which includes many standard techniques (conditional execution, for loops, while loops, etc.) as well as the quantum-specific "Repeat-Until-Success" pattern.

  • Test ve hata ayıklama: Kodunuzun doğru şekilde çalıştığından emin olmaya yönelik bazı teknikleri açıklar.Testing and debugging: details some techniques for making sure your code is doing what it is supposed to do. Kuantum bilgilerinin genel opaklığı nedeniyle, bir kuantum programında hata ayıklamak için özel teknikler gerekebilir.Due to the general opacity of quantum information, debugging a quantum program can require specialized techniques. Neyse ki, Q# kuantuma özgü tekniklerin yanı sıra klasik hata ayıklama tekniklerinin birçoğunu destekler.Fortunately, Q# supports many of the classical debugging techniques programmers are used to, as well as those that are quantum-specific. Bunlar Q# içinde birim testi oluşturmayı/çalıştırmayı, kodunuzda değerlere ve olasılıklara onay deyimi eklemeyi ve hedef makine durumunun çıkışını oluşturan Dump işlevlerini içerir.These include creating/running unit tests in Q#, embedding assertions on values and probabilities in your code, and the Dump functions which output the state of target machine. Sonuncusu, bazı kuantum sınırlamalarını (ör. kopyalamama teoremi) atlayarak işlemlerin belirli bölümlerinde hata ayıklamak için tam durum simülatörümüzle birlikte kullanılabilir.The latter can be used alongside our full-state simulator to debug certain parts of computations by skirting some quantum limitations (e.g. the no-cloning theorem).

Kuantum Simülatörleri ve Kaynak Tahmin AraçlarıQuantum Simulators and Resource Estimators

  • Kuantum simülatörleri ve konak uygulamaları: Kullanılabilen farklı simülatörlerin yanı sıra, konak program ve hedef makineler arasındaki genel yürütme modeline yönelik bir genel bakış.Quantum simulators and host applications: an overview of the different simulators available, as well as the general execution model between host program and target machines.

  • Tam durum simülatörü: Tam kuantum durumunu simüle eden hedef makine.Full state simulator: the target machine which simulates the full quantum state. Daha küçük ölçekli programları (birkaç düzine kubitten küçük) tamamen yürütme veya bunlarda hata ayıklamada kullanılırUseful for fully executing or debugging smaller scale programs (less than a couple dozen qubits)

  • Kaynak tahmin aracı: Bir kuantum bilgisayarda Q# işleminin belirli bir örneğini çalıştırmak için gereken kaynaklara yönelik tahmin yapar.Resources estimator: estimates the resources required to run a given instance of a Q# operation on a quantum computer.

  • İzleme simülatörü: kuantum bilgisayarın durumunu gerçekten taklit etmeden bir kuantum programı yürütür ve böylece binlerce kubit kullanan kuantum programlarını da yürütülebilir.Trace simulator: executes a quantum program without actually simulating the state of a quantum computer, and therefore can execute quantum programs that use thousands of qubits. Bir kuantum programındaki klasik kodda hata ayıklamak ve gerekli kaynakları tahmin etmek için yararlıdır.Useful for debugging classical code within a quantum program, as well as estimating resources required.

  • Toffoli simülatörü: Milyonlarca kubitle kullanılabilen özel amaçlı bir kuantum simülatörü. Yalnızca kısıtlanmış kuantum işlemleri kümesi içeren programlar içindir (örneğin X, CNOT ve çok denetimli X).Toffoli simulator: a special purpose quantum simulator that can be used with millions of qubits, but only for programs with a restricted set of quantum operations (namely X, CNOT, and multi-controlled X).

Hızlı Başvuru SayfalarıQuick Reference Pages

  • IQ# Magic Komutları: Q# Jupyter Notebook’lardaki IQ# magic komutlarına yönelik hızlı başvuru sayfası.IQ# Magic Commands: Quick reference page for IQ# magic commands within Q# Jupyter Notebooks.