Ana içeriğe geç
N/M ReferansıDil v0.2.0 · Ön izleme

N/M dili dokümantasyonu

Ön izleme N/M ürün referansı: kararlı 0.1 parser ve statevector çekirdeği, kullanılabilir workspace ve araç yüzeyleri, ayrıca açık opt-in kalan ayrı sürümlenmiş deneysel 0.2 yetenekleri.

Sürümlü yetenek matrisi

Aşağıdaki durumların tamamı CLI, dil sunucusu, paketler ve bu dokümantasyonun kullandığı dil sürümü manifestinden gelir. Kararlı özellikler mevcut uyumluluk sözleşmesi kapsamındadır; ön izleme özellikleri gelişebilir; deneysel özellikler üretim kullanımından önce ayrıca değerlendirilmelidir.

Kararlı2
Ön izleme35
Deneysel21
Capability ve Release Center

N/M referansı

Yetenekler

Parser, runtime'lar, formatter, dil sunucusu, compiler pipeline, paket formatları ve donanım sınırı için sürümlü uyumluluk görünümü.

Stabilizatör çalışma zamanı

Dondurulmuş Clifford/global-phase tableau sözleşmesini açık fallback, sampling, tanı ve performans sınırlarıyla 100 qubit'e kadar çalıştırın.

Target-native lowering

Desteklenen her gate'i yayımlanmış target basis'ine indirgeyin, sınırlı alanda unitary semantiği doğrulayın ve tam decomposition yoksa fail-closed kalın.

Kalibre yerleşim

Sınırlı target kalibrasyon belgelerini doğrulayın, deterministik bağlantılı fiziksel qubit'leri seçin ve yönlendirilemeyen workload'ları lowering öncesinde reddedin.

Target schedule

Sınırlı tamsayı-nanosaniye ASAP schedule'ları kurun, kaynak sırasını ve fiziksel kaynak bağımlılıklarını koruyun ve timeline drift'inde fail-closed kalın.

Hedef yetenekleri

Tam hedef profili, native kapı kümesi, bağlantı topolojisi ve sınırlı referans hata bütçesini deterministik derleyici kanıtıyla uzlaştırın.

OpenQASM 3

Dondurulmuş OpenQASM 3.0 subset'ini dışa aktarın, syntax'ı resmi reference grammar ile doğrulayın ve yalnız N/M semantiğini sürümlü fail-closed sidecar'da koruyun.

Çok dosyalı çalışma alanı

Sürümlü çalışma alanı bildirimi tanımlayın, özyinelemeli yığın riski olmadan içe aktarımları indeksleyin ve yinelenen, eksik, döngüsel, büyük veya güvensiz girdileri tanılayın.

Çalışma alanı anlık görüntüleri

Sınırlı tekrar üretim metadata'sıyla deterministik, salt okunur çok dosyalı kaynak paketleri oluşturun, doğrulayın, paylaşın ve inceleyin.

Yerel çalışma alanı deposu

Sınırlı projeleri açık migration, değişiklik kanıtlı integrity, tipli depolama hataları ve conflict güvenli revision'larla IndexedDB içinde saklayın.

Kaynak debugger

Bir tabanlı source map üzerinden doğrulanmış breakpoint'leri çözümleyin, immutable veya Worker oturumlarını iptal edin, sınırlı timeline'ları inceleyin ve aynı sözleşmeyi CLI ile kaydedin.

Dil sunucusu

Sınırlı JSON-RPC yaşam döngüsü, stale-version güvenli doküman eşitleme, yeniden kullanılan 5.000 dokümanlı workspace indeksi ve byte-identical Core, standalone, VS Code davranışı kullanın.

VS Code eklentisi

N/M eklentisini kurun, ilk programınızı test edin, debugger ile adımlayın ve sık karşılaşılan sorunları çözün.

Sürüm notları

N/M ürün sürümlerini ve yayımlanmış VS Code eklentisi sürümlerini, kurulum kanallarını ve değişiklikleri inceleyin.

Modül görünürlüğü

Private bildirimleri yerel ve kararlı 0.1 bildirimlerini legacy-public tutarken public/private workspace export'larını uzlaştırın.

Property assertion'ları

Sabit tohumlu sonlu örnek toleranslarını, kapsayıcı gözlenebilir aralıklarını, açık global faz eşdeğerliğini ve denetlenebilir özellik karşı örneklerini uzlaştırın.

Tipli classical değerler

Immutable Int, Float, sabit diziler, açık ölçüm dönüşümleri, deterministik runtime kanıtı ve fail-closed sayısal sınırları uzlaştırın.

Fonksiyon sonuçları

main için tipli Result değerlerini, tam ok payload'larını, sınırlı sembolik program hatalarını ve motor arızalarından açık ayrımı uzlaştırın.

Kuantum görev API’si

Sürümlü taşıyıcı, opaque sahiplik kapsamı, atomik idempotency, terminal durum değişmezleri ve açık production kapılarıyla sınırlı N/M işlerini gönderin, izleyin ve iptal edin.

MCP server

Ajanları sıkı protokol uzlaştırması, kötü niyetli istemci doğrulaması, sınırlı taşıyıcılar ve Core/stdio davranış eşliğiyle yedi sürümlü yerel N/M aracına bağlayın.

Eğitim

Kuantum modelinin yanında sınırlı bir train bloğu tanımlayın; deterministik yerel optimizasyonu çalıştırıp son parametreleri, maliyet geçmişini, yakınsamayı, çıktıyı ve iz kanıtlarını inceleyin.

QML sayısal çekirdek

Sonlu girdiler, exact evaluation muhasebesi, deterministik yüzey parity'si ve açık sayısal hata kodlarıyla sürümlü training, loss, SPSA ve adjoint sözleşmelerini kullanın.

QML dataset'leri

Bounded embedded dataset şemalarını, kalıcı reader'ları, ayrık train/validation/test split'lerini, held-out validation kanıtını ve açık provenance sınırlarını inceleyin.

QML ML kütüphanesi

Yedi dondurulmuş QML circuit ve observable'ı exact-version import, fail-closed çözümleme, doğrulanmış paket kimliği ve Core/CLI/Worker semantik eşliğiyle kullanın.

QML algoritmaları

Sonlu girdiler, deterministik Worker parity, exact evaluation muhasebesi ve açık yerel workload sınırlarıyla checked fidelity kernel ve ağırlıklı MaxCut QAOA çalıştırın.

QML ürün yüzeyleri

Sürümlü yaşam döngüsü, sayısal, zamanlama ve evaluation kanıtıyla iptal edilebilir eğitim, sınırlı trainability tanıları ve adil optimizer benchmark'ları çalıştırın.

QML artifact'ları

Strict şema, canonical bütünlük ve açık gizlilik politikasıyla sınırlı yerel QML artifact'larını export edin, doğrulayın, migrate edin, import edin, tahliye edin ve temizleyin.

CLI

Tekrar üretilebilir N/M workspace'leri oluşturma, denetleme, test etme, çalıştırma, paketleme, dışa aktarma, transpile etme ve paylaşma komutları.

Doğrulamalı copilot

Doğal dil niyetlerinden sınırlı yerel N/M şablonları üretin; kodu açmadan önce parser, semantik, runtime, repair, capability, maliyet ve gizlilik kanıtlarını inceleyin.

Kanıtlı tutor

N/M kaynağı hakkında soru sorun; kaynak veya modül satırlarına ve tanılara bağlı açıklamalar alın. Önerilen kod yalnızca derleme kontrolünden geçer; kod veya eğitim çalıştırılmaz.

Sınıf

Sürümlü ödev, public starter, gizli davranış kontrolü, ağırlıklı rubric, idempotent attempt, rol, geçmiş ve agregat analitik sınırlarını inceleyin.

Tanılar

Kararlı parser, tür, semantik, runtime, assertion, workspace, kalibrasyon ve compiler tanı kodlarını eyleme dönük çözümleriyle arayın.

Paketler

Sürümlü paketleri arayın, kaynak bütünlüğü ve doğrulamalarını inceleyin, exact sürümleri kurun ve imzalı yayın yaşam döngüsünü izleyin.

Standart kütüphane

Import, runtime expansion, dışa aktarım ve editör araçlarının kullandığı aynı registry'den üretilen yerleşik circuit ve observable modülleri.

Türkçe kaynak

Tercih edilen Türkçe anahtar sözcükler, taşınabilir ASCII karşılıkları, kaynak-koruyan formatter davranışı ve runtime test paketiyle doğrulanan başlangıç programı.

Türkçe kaynak yüzeyi

Tercih edilen Türkçe eylem ve kontrol akışı anahtar sözcüklerini kullanmak için @dil("tr") ekleyin. Parser sözcükleri token düzeyinde normalize eder; CST formatter ise kaynak dilini, yorumları, importları ve blok yapısını korur. Klavye taşınabilirliği için olc, eger, sifirla ve dogrula gibi ASCII karşılıkları da kabul edilir.

usekullan
measureölç
resetsıfırla
ifeğer
elsedeğilse
forher
repeattekrarla
assertdoğrula
paramparametre
traineğit
objectivehedef
optimizereniyileyici

Türkçe N/M başlangıcı

Playground'da aç
@dil("tr");module turkce_bell; fn main() {  let q = qreg[2];  H(q[0]);  CNOT(q[0], q[1]);  doğrula entangled(q[0], q[1]);  let sonuc = ölç(q[0]);  eğer (sonuc == 1) { X(q[1]); }  return sonuc;}

Türkçe kaynak

Module ve giriş noktası

Başlangıç örnekleri çalıştırılabilir giriş noktası olarak module bildirimi ve fn main() kullanır.

Kuantum yazmaçları

Küçük bir yazmaç ayırmak için qreg[n] kullanın ve kübitlere q[0], q[1] gibi indislerle erişin.

Gate çağrıları

Playground alt kümesi H, X, Y, Z, S, T, CNOT, CZ, SWAP, CCNOT, Ry, Rz ve kontrollü rotasyonlar CRy, CRz, CP'yi destekler.

Ölçüm

measure(q[i]) ve measure X/Y/Z(q[i]), kübit durumunu örneklenmiş klasik bir sonuca çevirir ve simüle edilen durumu çökerterek günceller.

Çalıştırılabilir başlangıç örneği

Playground'da aç
module bell_state; fn main() {  let q = qreg[2];  H(q[0]);  CNOT(q[0], q[1]);  let first = measure(q[0]);  let second = measure(q[1]);  return (first, second);}

Baz durum bit dizilerini okuma

Playground, q[0] kübitini en sağdaki bit olarak gösterir: q[n−1] … q[0]. Sıfır durumundan başlayan X(q[0]), qreg[2] için |01>, qreg[3] için |001> üretir. Bu gösterim kuralı kapıların hedeflerini değiştirmez.

Asimetrik iki kübit örneği: P(01) = 1

Playground'da aç
module bit_order;fn main() {  let q = qreg[2];  X(q[0]);  return q;}

CLI iş akışı

N/M programlarını Playground ile aynı araç zincirinden başlatın, biçimlendirin, denetleyin, sınayın, çalıştırın, açıklayın, paketleyin, kaynaklarını kestirin ve dışa aktarın.

nm run main.nm --sweep sweep.json --experimental-parameter-groups --json
nm check main.nm --json
nm run main.nm --shots 1024 --json
nm debug main.nm --breakpoint 6 --json
nm fmt main.nm --check
nm lint main.nm --strict
nm test main.nm --experimental-property-assertions --json
nm explain main.nm --json
nm transpile main.nm --target superconducting --calibration calibration.json --json
nm estimate main.nm --ftqc --budget nm-budget.json
nm export main.nm --to qasm3 --strict --json
nm benchmark main.nm --optimizers gd,adam --steps 8 --csv
nm checkpoint create main.nm --steps 8
nm checkpoint resume training.checkpoint.json --additional-steps 8
nm checkpoint model training.checkpoint.json --name resumed-model
nm init main.nm
nm package build main.nm
nm package validate package.json
nm package list --json
nm package inspect std.bell@0.1 --json
nm package install std.bell@0.1 --output std_bell.nm --json
nm package sign release.json --output release.signed.json --json
nm package verify release.signed.json --json
nm workspace snapshot main.nm
nm workspace share main.nm
nm workspace validate workspace.snapshot.json --json
nm lock main.nm
nm lock main.nm --lock nm-lock.json --json

Biçimlendirme varsayılan olarak dosyaya yazar; değişiklik yapmayan CI kapısı için --check kullanın. init, --force verilmedikçe mevcut dosyanın üzerine yazmaz.

Çok dosyalı çalışma alanı içe aktarımları

Yeniden kullanılabilir circuit, observable ve constant tanımlarını başka bir .nm modülünde bildirin; ardından örneğin use workspace.reusable_bell; ile açıkça içe aktarın. Import grafiği completion, definition, references, signature help, diagnostics ve rename kapsamını belirler.

Çok dosyalı N/M çalışma alanı

Çok dosyalı örneği aç
// reusable_bell.nmmodule reusable_bell;circuit prepare_bell(data: QReg<2>) {  H(data[0]);  CNOT(data[0], data[1]);} // bell_app.nmmodule bell_app;use workspace.reusable_bell;fn main() {  let q = qreg[2];  prepare_bell(q);  return q;}

CLI, komşu .nm dosyalarını özyinelemeli biçimde indeksler veya nm-workspace.json içindeki sourceRoots alanlarını kullanır. VS Code eklentisi açık olmayan dosyalar dahil en çok 5.000 çalışma alanı dosyasını indekste tutar. Eksik, yinelenen ve döngüsel modüller NM-WORKSPACE tanıları üretir. workspace snapshot/share komutları, kaynak ve çalıştırma parmak izleri taşıyan deterministik, salt okunur bir çıktı oluşturur.

Hata kodları

NM-PARSE-002

Module bildirimi eksik

Dosya module bell_state; gibi bir module bildirimiyle başlamalıdır.
fn main() öncesine bir module adı ekleyin.
NM-PARSE-003

fn main eksik

Playground tek bir fn main() giriş noktası çalıştırır.
Çalıştırılabilir ifadeleri fn main() { ... } içine alın.
NM-TYPE-002

Geçersiz qubit referansı

Bir gate veya measurement, ayrılmamış bir qreg indeksini gösteriyor.
İndeksleri tanımlanan qreg boyutu içinde tutun; QReg<2> için q[0] ve q[1] gibi.
NM-TYPE-005

QReg boyutu uyuşmuyor

Tip boyutu ile ayrılan register boyutu aynı değil.
let q: QReg<2> = qreg[2]; gibi eşleşen bir söz dizimi kullanın.
NM-TYPE-006

Geçersiz rotasyon açısı

Ry/Rz/CRy/CRz/CP, değerlendirilemeyen bir açı ifadesi aldı.
Ry(q[0], PI / 2); gibi sayı, PI, tanımlı sabit veya aritmetik ifade kullanın.
NM-SEM-001

Tekrarlanan kübit girdisi

Çok kübitli bir kapı aynı fiziksel kübiti birden fazla kez kullanıyor.
CNOT(q[0], q[0]) yerine CNOT(q[0], q[1]) gibi her girdi için farklı kübit kullanın.
NM-SEM-002

Ölçümden sonra kapı

Bir kapı, doğrudan ölçümle çökmüş kübite uygulanıyor.
Sonraki kuantum kapılarından önce reset kullanın, ölçümü sona taşıyın veya bunu engellemek için @semantics("strict"); ekleyin.
NM-SEM-003

Kullanılmayan kübit

Ayrılan yazmaçtaki bir kübiti hiçbir kapı, ölçüm, beklenti değeri, reset veya encode adımı kullanmıyor.
Fazla kübiti kaldırın veya hedef devreye dahil edin.
Tanılar

Dil referansı

Tarayıcı runtime'ının bugün anladığı gate'ler, kontrollü rotasyonlar ve annotation'lar.

Gate'ler

H, X, Y, Z, S, TH(q[0])

Tek-qubit gate'leri: süperpozisyon, Pauli flip'leri ve phase gate'leri.

Sdg, TdgSdg(q[0])

Uncompute için ters phase gate'leri S† ve T†.

Rx, Ry, RzRx(q[0], PI / 2)

Parametreli tek-qubit rotasyonları; açılar PI ve aritmetik kabul eder.

P, U, GPhaseU(q[0], PI / 2, 0, PI)

OpenQASM uyumlu devreler için evrensel faz ve global faz kapıları.

CNOT, CZCNOT(q[0], q[1])

İki-qubit controlled-X ve controlled-Z gate'leri.

CY, CHCY(q[0], q[1])

Controlled-Y ve controlled-Hadamard gate'leri.

Dil özellikleri

constconst theta: Angle = PI / 4;

Rotasyon argümanlarında tekrar kullanılabilen numeric/angle sabitleri tanımlar.

const : Int (size-generic)const n: Int = 4;

Derleme-zamanı tam sayı; QReg<n>, qreg[n], for aralıkları, q[n-1] ve repeat n içine yerleştirilir.

param (trainable)param w: Angle = 0.1;

Uygun olduğunda otomatik adjoint gradyanla, aksi durumda parameter-shift fallback ile optimize edilen eğitilebilir rotasyon açısı.

param Angle[N]param theta: Angle[4] = [0.1, 0.2, 0.3, 0.4]; Ry(q[0], theta[0]);

Vektör biçimindeki eğitilebilir parametreler, kısa varyasyonel ansatz katmanları için indisli skaler parametrelere açılır.

std library importsuse ml.vqc_layer; use chemistry.h2_minimal;

std.bell, std.qft2 ve chemistry.h2_minimal gibi yerlesik circuit template ve observable Hamiltonian'lari import eder; runtime ve export oncesi genisler.

register slicesH(q[0..3]); bell(q[1..2]);

Tek-qubit gate'leri register araligina broadcast eder veya circuit template'lerini secili bitisik dilime map eder.

Standard library registry

Yerlesik circuit template ve observable paketleri, parser'in use statement'lari icin kullandigi ayni registry'den uretilir.

Circuit helper'lari

std.bellcircuitv0.12 qubit

bell

Iki-qubit Bell pair hazirlayan circuit helper.

use std.bell; bell(q);
exports bell#entanglement#starter#two-qubit
std.ghzcircuitv0.13 qubit

ghz

Uc-qubit GHZ state hazirlayan circuit helper.

use std.ghz; ghz(q);
exports ghz#entanglement#multi-qubit#state-preparation
std.hadamard_statecircuitv0.11 qubit

hadamard_state

Süperpozisyon deneyleri için tek-qubit |+> durumu hazırlayan circuit helper.

use std.hadamard_state; hadamard_state(q);
exports hadamard_state#superposition#starter#single-qubit

Algoritma circuit'leri

algorithms.grover2circuitv0.12 qubit

grover2

|11> oracle ve diffusion adımı içeren iki-qubit Grover circuit'i.

use algorithms.grover2; grover2(q);
exports grover2#search#grover#amplitude-amplification
algorithms.phase_kickbackcircuitv0.12 qubit

phase_kickback

Kontrollü gate üzerinden phase kickback gösteren iki-qubit circuit.

use algorithms.phase_kickback; phase_kickback(q);
exports phase_kickback#phase#oracle#controlled-gate
algorithms.deutsch_jozsa2circuitv0.22 qubit

deutsch_jozsa2

Sabit dengeli f(x)=x oracle'ını sınıflandıran iki-qubit Deutsch–Jozsa circuit'i.

use algorithms.deutsch_jozsa2@0.2; deutsch_jozsa2(q);
exports deutsch_jozsa2#oracle#interference#deutsch-jozsa#algorithm-pack-0.2

Hata düzeltme circuit'leri

qec.perfect5_codecircuitv0.49 qubit

perfect5_code

Beş veri kübitinde [[5,1,3]] kodunun mantıksal |0> durumunu hazırlar; çağıran için dört sendrom kübiti ayırır.

use qec.perfect5_code@0.4; perfect5_code(q);
exports perfect5_code#qec#perfect-code#stabilizer#feed-forward#algorithm-pack-0.4
qec.steane7_codecircuitv0.413 qubit

steane7_code

Yedi veri kübitinde [[7,1,3]] Steane kodunun mantıksal |0> durumunu hazırlar; çağıran için altı sendrom kübiti ayırır.

use qec.steane7_code@0.4; steane7_code(q);
exports steane7_code#qec#steane-code#stabilizer#feed-forward#algorithm-pack-0.4
qec.surface_d3_patchcircuitv0.417 qubit

surface_d3_patch

Sabit [[9,1,3]] döndürülmüş yüzey kodunun mantıksal |0> durumunu hazırlar; sekiz sendrom kübiti ayırır.

use qec.surface_d3_patch@0.4; surface_d3_patch(q);
exports surface_d3_patch#qec#surface-code#distance-three#stabilizer#feed-forward#algorithm-pack-0.4

Durum hazırlama circuit'leri

states.ghz100circuitv0.4100 qubit

ghz100

Bir Hadamard ve 99 CNOT kapısından oluşan zincirle sabit 100 kübitlik GHZ stabilizer durumunu hazırlar.

use states.ghz100@0.4; ghz100(q);
exports ghz100#state-preparation#ghz#stabilizer#100-qubit#algorithm-pack-0.4
states.graph_state100circuitv0.4100 qubit

graph_state100

Stabilizer ölçek görünümünde kesin komşuluk metni sunulan sabit 100 düğümlü çizgi grafı durumunu hazırlar.

use states.graph_state100@0.4; graph_state100(q);
exports graph_state100#state-preparation#graph-state#stabilizer#100-qubit#algorithm-pack-0.4

Nonlocality tanıkları

nonlocality.mermin_ghz3circuitv0.43 qubit

mermin_ghz3

Kesin yerel XXX/XYY/YXY/YYX Mermin tanığı için üç kübitlik GHZ durumunu hazırlar.

use nonlocality.mermin_ghz3@0.4; mermin_ghz3(q);
exports mermin_ghz3#nonlocality#mermin#ghz#stabilizer#algorithm-pack-0.4

Simülatör benchmark'ları

benchmark.stabilizer_rb100circuitv0.4100 qubit

stabilizer_rb100

Simülatör regresyon iş yükü olarak 100 kübitte deterministik 398 kapılık Clifford gidiş dönüşü uygular; donanım RB doğruluk tahmini değildir.

use benchmark.stabilizer_rb100@0.4; stabilizer_rb100(q);
exports stabilizer_rb100#benchmark#clifford#round-trip#stabilizer#100-qubit#algorithm-pack-0.4

Kimya observable'ları

chemistry.h2_minimalobservablev0.12 qubit

H2Minimal

VQE ve expectation demolarinda kullanilan minimal iki-qubit H2 Hamiltonian.

use chemistry.h2_minimal; expect H2Minimal
exports H2Minimal#chemistry#hamiltonian#vqe#expectation
chemistry.heisenberg2observablev0.12 qubit

Heisenberg2

XX, YY ve ZZ terimli iki-spin Heisenberg Hamiltonian'ı.

use chemistry.heisenberg2; expect Heisenberg2
exports Heisenberg2#chemistry#spin#hamiltonian#vqe
chemistry.ising_trotter2circuitv0.22 qubit

ising_trotter2

ZZ etkileşimi ve transverse-X mixing içeren birinci derece iki-qubit Ising Trotter katmanı.

use chemistry.ising_trotter2@0.2; ising_trotter2(q, gamma, beta);
exports ising_trotter2#ising#trotter#hamiltonian-simulation#algorithm-pack-0.2

Optimizasyon observable'ları

optimization.maxcut2observablev0.12 qubit

MaxCut2

İki-node MaxCut problemi için QAOA maliyet Hamiltonian'ı.

use optimization.maxcut2; expect MaxCut2
exports MaxCut2#optimization#maxcut#qaoa#hamiltonian

Makine öğrenmesi paketleri

ml.vqc_layercircuitv0.12 qubit

vqc_layer

İki kübit için donanım açısından verimli varyasyonel katman.

use ml.vqc_layer; vqc_layer(q, t1, t2);
exports vqc_layer#qml#variational#ansatz
ml.vqc_layer3circuitv0.13 qubit

vqc_layer3

Üç kübit için donanım açısından verimli varyasyonel katman.

use ml.vqc_layer3; vqc_layer3(q, t1, t2, t3);
exports vqc_layer3#qml#variational#ansatz
ml.reupload_blockcircuitv0.11 qubit

reupload_block

Tek kübit üzerinde veri yeniden yükleme bloğu.

use ml.reupload_block; reupload_block(q, x, w);
exports reupload_block#qml#encoding#reupload
Standart kütüphane

Örnek registry

Bu örnekler playground'un kullandığı aynı registry'den gelir; böylece çalıştırılabilir ve spec-preview örnekler net ayrılır.

Merhaba Kuantum

Hazırbasics

İlk N/M kübit yazmacınızı oluşturun, H ve CNOT ile iki kübiti dolanık hale getirin ve sonucu ölçün.

Klasik fonksiyonlar (deneysel)

Hazırbasics

Tipli fonksiyonları çağırın ve hesaplanan sonucu döndürün. Bu örnek üç deneysel seçeneği etkinleştirir.

Süperpozisyon

Hazırbasics

Bir Hadamard kapısıyla 0 ve 1 ölçüm sonuçlarının her birine %50 olasılık verin. Tek çalıştırmada bu sonuçlardan biri ölçülür.

Bell Durumu

Hazırbasics

H ve CNOT ile bir Bell çifti oluşturun.

Genişletilmiş Kapı Kümesi

Hazırhardware

Faz kapılarını, etkileşim dönüşlerini, iSWAP ve kontrollü SWAP işlemlerini deneyin.

MPS Tensör Ağı (20 Kübit)

Hazırhardware

Matrix Product States ile 20 kübitlik dolaşık GHZ durumunu simüle edin ve dolaşıklık entropisini inceleyin.

Koşullu else Dalı

Hazırbasics

Ölçülen Bit değerine göre iki düzeltme dalından birini seçin.

Sınırlı Yeniden Deneme

Hazıralgorithm

Ölçüme bağlı bir adımı sınırlı sayıda tekrar denemek için until ... max kullanın.

Herkese açık npm kurulumu

JavaScript ile N/M kullanın

Core ES modül API'sini ve TypeScript tür tanımlarını Node.js projenize kurun.

Node.js 20 veya üzeri gerekir. Yayın kontrollerinde Node.js 22.23.1 kullanılır.

npm paket sürümü 0.2.1, N/M dil sürümü 0.2.0'ı hedefler. next önizleme kanalını seçer ve ileride değişebilir; aynı sürümü yeniden kurmak için @0.2.1 kullanın. Etiketsiz kurulum latest kanalını seçer. VS Code eklentisinin dağıtım sürümü ayrıdır.

npm install @nm-lang/core@next

Bu sürümü sabitlemek için:

npm install @nm-lang/core@0.2.1

bell.mjs olarak kaydedip node bell.mjs ile çalıştırın

import { createNMDefaultParseOptions, executeNMCode } from "@nm-lang/core";

const source = `module npm_bell;
fn main() {
  let q = qreg[2];
  H(q[0]);
  CNOT(q[0], q[1]);
  return q;
}`;

const result = executeNMCode(source, createNMDefaultParseOptions());
if (!result.success) throw new Error(result.error);
console.log(result);

Örnekler yerel simülatörde çalışır. Kurulum fiziksel QPU erişimi sağlamaz veya bütün yetenekleri kararlı hâle getirmez.

Kişisel, eğitim ve ticari kullanım ücretsizdir. QuantumSoftware paket kodunun haklarını saklı tutar; değiştirme ve yeniden dağıtma için ayrıca izin gerekir. Kendi N/M programlarınız ve sonuçlarınız size aittir. Kurulan paketteki LICENSE.txt dosyasını okuyun.