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.
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.
usekullanmeasureölçresetsıfırlaifeğerelsedeğilseforherrepeattekrarlaassertdoğrulaparamparametretraineğitobjectivehedefoptimizereniyileyiciTürkçe N/M başlangıcı
1@dil("tr");2module turkce_bell;3 4fn main() {5 let q = qreg[2];6 H(q[0]);7 CNOT(q[0], q[1]);8 doğrula entangled(q[0], q[1]);9 let sonuc = ölç(q[0]);10 eğer (sonuc == 1) { X(q[1]); }11 return sonuc;12}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
1module bell_state;2 3fn main() {4 let q = qreg[2];5 H(q[0]);6 CNOT(q[0], q[1]);7 let first = measure(q[0]);8 let second = measure(q[1]);9 return (first, second);10}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
1module bit_order;2fn main() {3 let q = qreg[2];4 X(q[0]);5 return q;6}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 --jsonBiç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ı
1// reusable_bell.nm2module reusable_bell;3circuit prepare_bell(data: QReg<2>) {4 H(data[0]);5 CNOT(data[0], data[1]);6}7 8// bell_app.nm9module bell_app;10use workspace.reusable_bell;11fn main() {12 let q = qreg[2];13 prepare_bell(q);14 return q;15}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ı
Module bildirimi eksik
fn main eksik
Geçersiz qubit referansı
QReg boyutu uyuşmuyor
Geçersiz rotasyon açısı
Tekrarlanan kübit girdisi
Ölçümden sonra kapı
Kullanılmayan kübit
Dil referansı
Tarayıcı runtime'ının bugün anladığı gate'ler, kontrollü rotasyonlar ve annotation'lar.
Gate'ler
H(q[0])Tek-qubit gate'leri: süperpozisyon, Pauli flip'leri ve phase gate'leri.
Sdg(q[0])Uncompute için ters phase gate'leri S† ve T†.
Rx(q[0], PI / 2)Parametreli tek-qubit rotasyonları; açılar PI ve aritmetik kabul eder.
U(q[0], PI / 2, 0, PI)OpenQASM uyumlu devreler için evrensel faz ve global faz kapıları.
CNOT(q[0], q[1])İki-qubit controlled-X ve controlled-Z gate'leri.
CY(q[0], q[1])Controlled-Y ve controlled-Hadamard gate'leri.
Dil özellikleri
const theta: Angle = PI / 4;Rotasyon argümanlarında tekrar kullanılabilen numeric/angle sabitleri tanımlar.
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 w: Angle = 0.1;Uygun olduğunda otomatik adjoint gradyanla, aksi durumda parameter-shift fallback ile optimize edilen eğitilebilir rotasyon açısı.
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.
use 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.
H(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
bell
Iki-qubit Bell pair hazirlayan circuit helper.
use std.bell; bell(q);ghz
Uc-qubit GHZ state hazirlayan circuit helper.
use std.ghz; ghz(q);hadamard_state
Süperpozisyon deneyleri için tek-qubit |+> durumu hazırlayan circuit helper.
use std.hadamard_state; hadamard_state(q);Algoritma circuit'leri
grover2
|11> oracle ve diffusion adımı içeren iki-qubit Grover circuit'i.
use algorithms.grover2; grover2(q);phase_kickback
Kontrollü gate üzerinden phase kickback gösteren iki-qubit circuit.
use algorithms.phase_kickback; phase_kickback(q);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);Hata düzeltme circuit'leri
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);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);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);Durum hazırlama circuit'leri
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);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);Nonlocality tanıkları
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);Simülatör benchmark'ları
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);Kimya observable'ları
H2Minimal
VQE ve expectation demolarinda kullanilan minimal iki-qubit H2 Hamiltonian.
use chemistry.h2_minimal; expect H2MinimalHeisenberg2
XX, YY ve ZZ terimli iki-spin Heisenberg Hamiltonian'ı.
use chemistry.heisenberg2; expect Heisenberg2ising_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);Optimizasyon observable'ları
MaxCut2
İki-node MaxCut problemi için QAOA maliyet Hamiltonian'ı.
use optimization.maxcut2; expect MaxCut2Makine öğrenmesi paketleri
vqc_layer
İki kübit için donanım açısından verimli varyasyonel katman.
use ml.vqc_layer; vqc_layer(q, t1, t2);vqc_layer3
Üç kübit için donanım açısından verimli varyasyonel katman.
use ml.vqc_layer3; vqc_layer3(q, t1, t2, t3);reupload_block
Tek kübit üzerinde veri yeniden yükleme bloğu.
use ml.reupload_block; reupload_block(q, x, w);Ö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ırbasicsTipli fonksiyonları çağırın ve hesaplanan sonucu döndürün. Bu örnek üç deneysel seçeneği etkinleştirir.
Süperpozisyon
HazırbasicsBir 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ırbasicsH ve CNOT ile bir Bell çifti oluşturun.
Genişletilmiş Kapı Kümesi
HazırhardwareFaz kapılarını, etkileşim dönüşlerini, iSWAP ve kontrollü SWAP işlemlerini deneyin.
MPS Tensör Ağı (20 Kübit)
HazırhardwareMatrix 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@nextBu sürümü sabitlemek için:
npm install @nm-lang/core@0.2.1bell.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.