Svmmarivm
Expressio C++ dvas res diversas facere potest: valorem dare et statvm programmatis mvtare. x + 1 valorem tantvm dat; x = 7 valorem dat et praeterea x mvtat; x++ valorem dat qvem x habebat et alivm in x relinqvit. Haec lectio hoc discrimen inter valorem et effectvm expressionis considerat: assignationem vt expressionem, assignationem compositam, incrementvm et decrementvm in formis praefixa et svffixa, et ordinem qvo membra expressionis aestimantvr, qvem norma non omnino figit. Ex qvo seqvitvr qvaestio qvae reliqvam lectionem ordinat: qvid norma de programmate promittat. Responsvm est catalogvs qvattvor gradvvm, a modo agendi definito ad indefinitvm, qvi omnes casvs hvcvsqve visos colligit et de singvlis dicit qvid eos detegat (compilator, detector, bibliotheca) et qvid nihil detegat.
Proposita discendi
- Valorem expressionis ab eivs effectv secvndario distingvere in assignationibvs, incrementis et vocationibvs.
- Eventvm
x++et++xvt valorem adhibitorvm praedicere, et programma cvm assignationibvs compositis manv perseqvi. - Expressiones agnoscere qvae variabilem bis mvtant, vel eam legvnt et mvtant, sine ordine a norma fixo, easqve in sententias separatas rescribere.
- Constrvctionem vt definitam, ab implementatione definitam, non specificatam vel indefinitam distribvere, cvm exemplo singvlorvm.
- Pro qvoqve modo agendi indefinito catalogi dicere vtrvm compilator de eo moneat, vtrvm detector vel bibliotheca evm sistant, an nihil evm detegat.
Valor et effectvs
Lectio Arithmetica expressionem vt arborem consideravit qvae ad valorem redvcitvr: 2 + 3 * 4 valet 14, et eam compvtare nihil extra ipsam expressionem mvtat. Lectio Relationes et logica idem cvm condicionibvs fecit, qvarvm valor est true vel false. Atqvi svnt expressiones qvae, praeter valorem dandvm, impressionem in statv programmatis relinqvvnt: valorem variabilis mvtant, in scrinio scribvnt vel ex introitv legvnt. Haec impressio effectvs secvndarivs appellatvr, vel simpliciter effectvs, et vox «secvndarivs» non significat evm minoris momenti esse: in x = 7 effectvs, vt x valeat 7, id ipsvm est qvod qvaeritvr.
Si haec ita svnt, omnis expressio dvabvs qvaestionibvs legenda est: qvid det et qvid faciat. Tria exempla discrimen figvnt. count + 1 svccessorem count dat et nihil facit: count valorem svvm servat. count = 9 9 dat et efficit vt count 9 valeat. std::println("salve") qvoqve expressio est, vocatio fvnctionis, et qvod in ea refert est eivs effectvs: versvm scribere. Fvnctiones propriae in lectione Fvnctiones considerabvntvr, ibiqve discrimen redibit: fvnctio qvae tantvm eventvm svvm compvtat facilivs intellegitvr et temptatvr qvam ea qvae praeterea aliqvid extra se mvtat.
Sententia vt count + 1; C++ validvm est: valor compvtatvr et abicitvr, ita vt nihil prosit, et GCC de ea monet per -Wunused-value. Sententia expressionis sensvm habet per effectvm svvm. Ex qvo seqvitvr expressiones cvm effectv eas esse qvae programma promovent, atqve eas qvae cvram postvlant, qvia effectvs aliqvo momento evenit, neqve id momentvm semper est qvod lector pvtat.
Argvmentvm oneratvr…