Table of Contents[Hide][Show]
Txhawm rau tshem tawm C ++ ua hom lus programming, Google tsim Carbon raws li tiam tom ntej ntawm cov lus programming.
Ib qhov tseem-sim qhib qhov project, nws yog. Cov lus carbon, uas tau tshwm sim thawj zaug los ntawm Chandler Carruth ntawm CppNorth lub rooj sib tham, zoo li yog qhov hloov pauv zoo heev rau C ++.
Kab lus no tau hais txog Carbon lus, kev teeb tsa, thiab cov syntax yooj yim. Nws kuj suav nrog qee cov lej lej.
Carbon Programming Language
Raws li kev siv thev naus laus zis, Carbon lus tuaj yeem hloov pauv C ++. C ++ yog ib hom lus programming zoo heev. Nws muaj kev ua tau zoo thiab siv dav hauv ntau lub tshuab tsim khoom.
Nws yog sib xws nrog ntau lub platforms, hardware architectures, thiab operating systems. Txawm li cas los xij, qee qhov teeb meem nrog C ++ yog raws li hauv qab no:
Cov nuj nqis kev txawj ntse (cov cai nce qib sib npaug) tau sau ntau dua ntau txoj haujlwm. Backward compatibility nrog C ua rau kho cov nuj nqis tech thiab siv cov kev hloov kho code nyuaj dua.
Vim yog ISO txheej txheem cov nqi thiab kev txwv ntawm kev sim, cov txheej txheem evolution ntxiv cov haujlwm tshiab rau C ++ yog qhov nyuaj tshwj xeeb.
Yog li ntawd, C ++ tsis ua tiav ntau yam ntawm nws lub hom phiaj, xws li txhim kho kev ua tau zoo-tseem ceeb software, hloov kho software thiab lus, sau ntawv yooj yim, nyeem tau, thiab pab txhawb kev loj hlob sai, scalable.
Mus ntsib “Carbon Programming Language los ntawm Google - Taw qhia” yog tias koj xav kawm ntxiv txog cov lus hais lus carbon. Cov ntawv tshaj tawm no yuav muab tag nrho cov ntaub ntawv koj xav tau.
Tam sim no peb nkag siab tias cov lus Carbon yog dab tsi thiab vim li cas peb yuav tsum siv nws, cia peb mus rau hauv kev teeb tsa / kev teeb tsa, syntax, thiab piv txwv.
Yuav teeb tsa thiab teeb tsa li cas carbon programming lus?
Kev teeb tsa cov lus Carbon yuav tsum muaj lub installation ntawm
- Ib lub cuab yeej rau kev txhim kho pob khoom hu ua Homebrew. Koj tuaj yeem ua raws li cov kauj ruam no yog tias homebrew tsis tau teeb tsa.
- Bazel: Bazel yog lub cuab yeej tsim dawb thiab sim ua haujlwm nrog ntau lub platform thiab hom lus.
- Cov lus carbon yog khiav ntawm LLVM, lub tshuab virtual qis qis.
- Carbon Explorer: Rau cov lus Carbon, Carbon Explorer ua haujlwm ua cov cuab yeej siv. Peb yuav siv carbon explorer los khiav txhua qhov kev pab cuam sau hauv carbon.
Rau qhov kev teeb tsa ntawm qhov kev qhia no, Windows yuav raug siv. Txawm li cas los xij, cov lus qhia rau lwm yam kev ua haujlwm tuaj yeem sib piv. Koj tuaj yeem tawm lus rau ntawm kab lus no yog tias koj muaj lus nug txog kev teeb tsa.
Siv cov lus txib hauv qab no hauv koj lub davhlau ya nyob twg los nruab carbon lang.
Nruab Bazel
Bazel tuaj yeem ntsia tau los ntawm kev khiav
Bazel tam sim no yuav tsum tau nruab thiab teeb tsa thiab npaj rau kev siv.
Install LLVM
LLVM yog lub tshuab virtual tseem ceeb uas khiav cov lus carbon. Txhawm rau teeb tsa
Teeb cov lus carbon lus code
Cov kauj ruam no suav nrog rub tawm carbon lang code.
Tom qab teeb tsa cov lus carbon, cia peb tshuaj xyuas qee yam ntawm cov ntsiab lus ntawm hom lus tshiab no.
Cov ntsiab lus ntawm Carbon Programming Language
Tus lej hloov pauv
Cov lus sib txawv ntawm carbon tuaj yeem ua tau
- bool stands rau boolean tseeb los yog cuav.
- Cov lej suav suav nrog i8, i16, i32, i64, i128, thiab i256.
- Unsigned integer hom muaj xws li u8, u16, u32, u128, thiab u256.
- float hom muaj xws li f16, f32, f64, thiab f128.
- Nws tuaj yeem siv los cais cov lej. Piv txwv li, yog tias 1 000 000 qhia tsis muaj cov lus hais, nws tseem yog tus lej.
Cov hlua
Cov hlua tuaj yeem txhais tau siv cov syntax
- Ib txoj hlua uas sawv cev ib ntus byte
- String_View raws li kev nyeem ntawv nkaus xwb rau ib ntu byte hauv utf-8.
Nws muaj ob txoj hauv kev los tshaj tawm txoj hlua literals.
- Ib kab: Siv ob lub cim hais lus (“) rau ib kab
- Siv cov kab ntau kab tshaj tawm rau ntau kab lus tshaj tawm (""")
Tuples
Tuples yog qhov tseem ceeb uas muaj ntau qhov kev sib koom tes. Lawv tuaj yeem teev tau siv cov kab lus ( )
(x, y, z) yog ib tug tuple uas muaj ob peb lub coordinates. Cov index tuaj yeem siv los nrhiav lawv.
Arrays
Hom array thiab qhov loj me yog siv los tshaj tawm arrays. [hom; size] yog syntax. Piv txwv li, var array: [i32; 4] = (1,2,3,4);
pointers
Cov pa roj carbon monoxide tsis muaj qhov taw qhia null. Siv hom Optional(T*) los qhia txog tus taw tes uas tej zaum yuav lossis tsis tuaj yeem ua rau cov khoom raug cai. * stands rau tus nqi, thiab & stands rau chaw nyob.
Rau lub voj
Rau cov voj voog tuaj yeem teev nrog rau (cov xwm txheej voj) {}.
Thaum ntxees
Thaum lub voj voog tuaj yeem txhais tau siv lub sijhawm (qhov xwm txheej) {}.
Muaj nuj nqi/txoj kev
Fn lo lus tseem ceeb tuaj yeem siv los tshaj tawm cov haujlwm. Cov syntax yog fn MethodName(var param: type…) -> rov hom. Koj tuaj yeem tsis quav ntsej cov nqe lus hauv qab no -> rau qhov tsis muaj dab tsi lossis tsis muaj rov qab hom.
Cov chav kawm
Cov lus tseem ceeb hauv chav kawm hauv cov lus carbon yog siv los tshaj tawm cov chav kawm. Cov tswv cuab thiab cov txheej txheem ua tau rau cov chav kawm. Ntawm no yog ib qho piv txwv ntawm ib chav kawm.
Kuv vam tias zaj lus qhia no ua rau nws yooj yim dua rau koj sim thiab nkag siab txog cov tswv yim tseem ceeb thiab cov piv txwv syntax hauv Google Carbon lus.
Sau ntawv cia Ncua