ืื ื’ืœื™ืชืฆืจืคืชื™ืชืกืคืจื“ื™

ืกืžืœ OnWorks

nickle - ืžืงื•ื•ืŸ ื‘ืขื ืŸ

ื”ืคืขืœ ืืช nickle ื‘ืกืคืง ืื™ืจื•ื— ื‘ื—ื™ื ื ืฉืœ OnWorks ืขืœ ืื•ื‘ื•ื ื˜ื• ืื•ื ืœื™ื™ืŸ, ืคื“ื•ืจื” ืื•ื ืœื™ื™ืŸ, ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ Windows ืื• ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ MAC OS

ื–ื”ื• ื›ื™ืช ื”ืคืงื•ื“ื” ืฉื ื™ืชืŸ ืœื”ืจื™ืฅ ื‘ืกืคืง ื”ืื™ืจื•ื— ื”ื—ื™ื ืžื™ ืฉืœ OnWorks ื‘ืืžืฆืขื•ืช ืื—ืช ืžืชื—ื ื•ืช ื”ืขื‘ื•ื“ื” ื”ืžืงื•ื•ื ื•ืช ื”ืžืจื•ื‘ื•ืช ืฉืœื ื•, ื›ื’ื•ืŸ Ubuntu Online, Fedora Online, ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ Windows ืื• ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ MAC OS

ืชึธื›ึฐื ึดื™ืช:

ืฉืึตื


ื ื™ืงืœ - ืฉืคืช ืžื—ืฉื‘ื•ืŸ ืฉื•ืœื—ื ื™

ืชึทืงืฆึดื™ืจ


nickle [--help|--usage] [-f file] [-l library] [-e expr] [ script ] [--] [arg ...]

ืชื™ืื•ืจ


ื ื™ืงืœ ื”ื™ื ืฉืคืช ืžื—ืฉื‘ื•ืŸ ืฉื•ืœื—ื ื™ ืขื ื™ื›ื•ืœื•ืช ืชื›ื ื•ืช ื•ืกืงืจื™ืคื˜ ื—ื–ืงื•ืช.
ื ื™ืงืœ ืชื•ืžืš ื‘ืžื’ื•ื•ืŸ ืกื•ื’ื™ ื ืชื•ื ื™ื, ื‘ืžื™ื•ื—ื“ ืžืกืคืจื™ื ืฉืœืžื™ื ืžื“ื•ื™ืงื™ื ืฉืจื™ืจื•ืชื™ื™ื,
ืจืฆื™ื•ื ืœื™ื, ื•ืžืฆื™ืื•ืช ืœื ืžื“ื•ื™ืงืช. ืฉืคืช ื”ืงืœื˜ ื“ื•ืžื” ื‘ืžืขื•ืจืคืœ ืœ-C. ื™ืฉ ื“ื‘ืจื™ื ื‘-C
ืฉืื™ื ืŸ ืžืชื•ืจื’ืžื•ืช ื‘ืงืœื•ืช ืฉื•ื ื•ืช, ื ืขืฉื• ื›ืžื” ื‘ื—ื™ืจื•ืช ืขื™ืฆื•ื‘ื™ื•ืช
ืื—ืจืช, ื•ืžืขื˜ ืžืื•ื“ ืชื›ื•ื ื•ืช ืคืฉื•ื˜ ื—ืกืจื•ืช.

ื ื•ื”ื’


ืืจื’ื•ืžื ื˜ ืœื ืžืกื•ืžืŸ ืžื˜ื•ืคืœ ื›ืืœ ืกืงืจื™ืคื˜ ืฉืœ Nickle, ื•ืžื—ืœื™ืฃ ืงืœื˜ ืกื˜ื ื“ืจื˜ื™. ื›ืœ
ื”ืืจื’ื•ืžื ื˜ื™ื ื”ื ื•ืชืจื™ื ื‘ืขืงื‘ื•ืช ื”ืกืงืจื™ืคื˜ ืžืžื•ืงืžื™ื ื‘ืžืขืจืš ื”ืžื—ืจื•ื–ื•ืช ืฉืœ Nickle argv for
ื‘ื“ื™ืงื” ืคืจื•ื’ืจืžื˜ื™ืช. ื›ืืฉืจ ืžื•ืคืขืœ ืœืœื ื‘ื™ื˜ื•ื™ ืื• ืืจื’ื•ืžื ื˜ ืชืกืจื™ื˜, ื ื™ืงืœ
ืงื•ืจื ืžืงืœื˜ ืกื˜ื ื“ืจื˜ื™, ื•ื›ื•ืชื‘ ืœืคืœื˜ ืกื˜ื ื“ืจื˜ื™.

ื”ืืคืฉืจื•ื™ื•ืช ื”ืŸ ื›ื“ืœืงืžืŸ:

--ืขื–ืจื”,--ืฉื™ืžื•ืฉ
ื”ื“ืคืก ื”ื•ื“ืขืช ืขื–ืจื”/ืฉื™ืžื•ืฉ ื•ืฆื. ื–ื•ื”ื™ ืชื›ื•ื ื” ืžื•ื‘ื ื™ืช ืฉืœ ื ื™ืงืœ
ืžื•ื“ื•ืœ ParseArgs, ื•ืœื›ืŸ ื™ื”ื™ื” ื ื›ื•ืŸ ื’ื ืœื’ื‘ื™ ืกืงืจื™ืคื˜ื™ื ืฉืœ Nickle ืฉืžืฉืชืžืฉื™ื ื‘ื–ื”
ืกึดืคึฐืจึดื™ึธื”.

-f,--ืงื•ื‘ืฅ ืคื™ืœื”
ืœึดื˜ืขื•ึนืŸ ืคื™ืœื” ืœืชื•ืš ื ื™ืงืœ ืœืคื ื™ ืชื—ื™ืœืช ื”ื‘ื™ืฆื•ืข.

-ืœ,--ืกืคืจื™ื™ื” ืกืคืจื™ื”
ืœึดื˜ืขื•ึนืŸ ืกืคืจื™ื” ืœืชื•ืš ื ื™ืงืœ ืœืคื ื™ ืชื—ื™ืœืช ื”ื‘ื™ืฆื•ืข. ืจืื” ืœืžื˜ื” ืœืชื™ืื•ืจ
ืฉืœ ืžืชืงืŸ ื”ืกืคืจื™ื™ื”.

-ื”,--expr ื‘ื™ื˜ื•ื™
ืœื”ืขืจื™ืš ื‘ื™ื˜ื•ื™ ืœืคื ื™ ืชื—ื™ืœืช ื”ื‘ื™ืฆื•ืข.

-- ืฆื ืžื ื™ืชื•ื— ืืจื’ื•ืžื ื˜ื™ื ื•ื”ืขื‘ื™ืจ ืืช ื”ืฉืืจ, ืœืœื ื”ืขืจื›ื”, ืืœ argv.

ืชื—ื‘ื™ืจ


ื›ื“ื™ ืœื”ืคื•ืš ืืช ืฉืคืช ื”ืงืœื˜ ืœืฉื™ืžื•ืฉื™ืช ื™ื•ืชืจ ื‘ื”ื’ื“ืจื” ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ืช, ืฉื•ืจื” ื—ื“ืฉื” ืจืง ืžืกืชื™ื™ื
ื”ืฆื”ืจื•ืช ื‘ื–ืžื ื™ื ''ืกื‘ื™ืจื™ื''. ืฉื•ืจื” ื—ื“ืฉื” ืžืกื™ื™ื ืื• ื‘ื™ื˜ื•ื™ื™ื ืื• ื™ื—ื™ื“
ื”ืฆื”ืจื•ืช ืฉื”ื•ืงืœื“ื• ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ (ืœืžืขื˜ ื›ืžื” ื”ืฆื”ืจื•ืช ื”ื“ื•ืจืฉื•ืช
lookahead: ื‘ืžื™ื•ื—ื“ if() ื•-twixt(), ืฉื™ืฉ ืœื”ื ื—ืœืง ืื—ืจ ืื•ืคืฆื™ื•ื ืœื™). ืžืชื—ื ื‘ืคื ื™ื
ื”ืฆื”ืจื•ืช ืื• ื”ื’ื“ืจื•ืช ืคื•ื ืงืฆื™ื•ืช, ืจืง ื ; ืžืคืกื™ืง ื”ืฆื”ืจื•ืช. ื’ื™ืฉื” ื–ื• ื”ื™ื
ื ื•ื— ื•ืœื ื ืจืื” ื’ื•ืจื ืœื‘ืขื™ื•ืช ื‘ืฉื™ืžื•ืฉ ืจื’ื™ืœ.

ื”ืชื—ื‘ื™ืจ ืฉืœ ืชื•ื›ื ื™ื•ืช ื ื™ืงืœ ื”ื•ื ื›ื“ืœืงืžืŸ. ื‘ืชื™ืื•ืจ ื–ื”, ืฉื ืžืฆื™ื™ืŸ ื›ืœ
ืจืฆืฃ ืฉืœ ืื•ืชื™ื•ืช, ืกืคืจื•ืช ื•ืชื•ื•ื™ื _ ืฉืื™ื ื ืžืชื—ื™ืœื™ื ื‘ืกืคืจื”; E ืžืฆื™ื™ืŸ ื›ืœ
ื‘ื™ื˜ื•ื™; S ืžืฆื™ื™ืŸ ื”ืฆื”ืจื” ื›ืœืฉื”ื™; ื• T ืžืฆื™ื™ืŸ ื›ืœ ืกื•ื’. ื”ืชื—ื‘ื™ืจ X,X,...,X ืžืฆื™ื™ืŸ
X ืื—ื“ ืื• ื™ื•ืชืจ ืžื•ืคืจื“ื™ื ื‘ืคืกื™ืงื™ื, ืืœื ืื ืฆื•ื™ืŸ ืื—ืจืช.

ืชื’ื•ื‘ื•ืช:

ื”ืขืจื•ืช ื‘ืกื’ื ื•ืŸ C ืžื•ืงืคื•ืช ื‘-/* ื•-*/, ื•ื”ืขืจื•ืช ื‘ืกื’ื ื•ืŸ ืžืขื˜ืคืช ืžืกื•ืžื ื•ืช ื‘-
ืžื•ื‘ื™ืœ # ื‘ืชื—ื™ืœืช ืฉื•ืจื”.

ืื•ืคืจื ื“ื™ื:

ืžืกืคืจ ืžืžืฉื™
ื™ื›ื•ืœ ืœื›ืœื•ืœ ืžืขืจื™ืš, ืื™ืŸ ืฆื•ืจืš ืœื›ืœื•ืœ ื ืงื•ื“ื” ืขืฉืจื•ื ื™ืช ืื• ืกื™ืžืŸ. ื™ื˜ื•ืคืœ ื›ืžื•
ืจืฆื™ื•ื ืœื™ื ืžื“ื•ื™ืงื™ื. ืื ื—ืœืง ืขืฉืจื•ื ื™ ื ื’ืจืจ ืžื›ื™ืœ ืกื“ ืžืชื•ืœืชืœ ื ืคืชื—, ื”-
ืžืชืขืœืžื™ื ื‘ืฉืงื˜ ืžื”ืกื“; ืื ื”ื•ื ืžื›ื™ืœ ื—ืœืง ื ื’ืจืจ ื‘ืกื•ื’ืจื™ื™ื ืžืชื•ืœืชืœื™ื, ื”ื•ื ื›ืŸ
ืžื˜ื•ืคืœ ื›ืืœ ืขืฉืจื•ื ื™ ื—ื•ื–ืจ. ืงื‘ื•ืขื™ื ืฉืœ 'ื ืงื•ื“ื” ืฆืคื”'' ื ืžืฆืื™ื ื›ืจื’ืข
ืžื™ื•ืฆื’ ืคื ื™ืžื™ ื›ืจืฆื™ื•ื ืœื™ื: ืขื‘ื•ืจ ืงื‘ื•ืขื™ื ืฆืคื™ื ื‘ื“ื™ื•ืง ื ืชื•ืŸ
(ื•ืžืขืจื™ืš ื‘ืขืœ ื“ื™ื•ืง ืื™ื ืกื•ืคื™), ื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื” ื”ืžื•ื‘ื ื™ืช() imprecise
ื”ืžืชื•ืืจ ืœื”ืœืŸ.

ืžืกืคืจ ืื•ืงื˜ืœื™
ื”ืชื—ืœ ืขื 0 (ืœืžืฉืœ, 014 ื–ื”ื” ืœ-12).

ืžืกืคืจ ื”ืงืกื“ืฆื™ืžืœื™
ื”ืชื—ืœ ืขื "0x" (ืœืžืฉืœ, 0x1a ื–ื”ื” ืœ-26).

ืžื—ืจื•ื–ืช ื›ืžื• ื‘-C. ืงื‘ื•ืขื™ ืžื—ืจื•ื–ืช ืžื•ืงืคื™ื ื‘ืžื™ืจื›ืื•ืช ื›ืคื•ืœื•ืช. ื“ืžื•ื™ื•ืช ืžืฉื•ื›ื•ืช ืœืื—ื•ืจ
(ื›ื•ืœืœ ืžืจื›ืื•ืช ื›ืคื•ืœื•ืช) ืžื™ื™ืฆื’ื•ืช ืืช ืขืฆืžืŸ, ืœืžืขื˜ "\n" ืžื™ื™ืฆื’ ืฉื•ืจื” ื—ื“ืฉื”,
"\r" ืขื‘ื•ืจ ื”ื—ื–ืจืช ื›ืจื›ืจื”, "\b" ืขื‘ื•ืจ backspace, "\t" ืขื‘ื•ืจ tab ื•-"\f" ืขื‘ื•ืจ formfeed.

name ื”ืคื ื™ื” ืœืžืฉืชื ื”.

name() name(E,E,...,E)
ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื” ืขื ืืคืก ืืจื’ื•ืžื ื˜ื™ื ืื• ื™ื•ืชืจ. ื”ืคื•ื ืงืฆื™ื•ืช ื”ืŸ ืžืœืื•ืช ืœืคื™ ืขืจืš:
ืžืขืจื›ื™ื ื•ืžื‘ื ื™ื ืžื•ืขืชืงื™ื ื‘ืžืงื•ื ืœื”ืชื™ื™ื—ืก ืืœื™ื”ื ื›ืžื• ื‘-C.

ืฉื ืชื™ืื•ืจ T ืฉื = ืขืจืš
ื‘ื™ื˜ื•ื™ื™ ื”ื’ื“ืจื”: ืฉื ื—ื“ืฉ ื–ืžื™ืŸ, ืขื ื”ืขืจืš ืฉืœ
ื”ื”ื’ื“ืจื” ื”ื™ื ื”ืขืจืš ืฉืœ ื”ืžืืชื—ืœ ื‘ืฆื•ืจื” ื”ืฉื ื™ื™ื”, ื•ื‘ืœืชื™ ืžืื•ืชื—ืœ
ื‘ืฆื•ืจื” ื”ืจืืฉื•ื ื”. ืชื™ืื•ืจ ื”ืชื™ืื•ืจ ืื™ื ื• ืื•ืคืฆื™ื•ื ืœื™: ื”ื•ื ืžื•ืจื›ื‘ ืžื›ืœ
ืฉื™ืœื•ื‘ ืฉืœ ื ืจืื•ืช, ืžื—ืœืงืช ืื—ืกื•ืŸ ืื• ืกื•ื’ (ื‘ืกื“ืจ ื–ื”). ืจืื” ืžื•ืงื“ืžื•ืช
ืžื™ื“ ืœืžื˜ื” ืœืชื™ืื•ืจ ืฉืœ ื”ืžื•ืงื“ืžื•ืช ื”ืœืœื•. ืขืจืš ืžื•ื‘ื ื”
ื‘ื™ื˜ื•ื™ ืืคืฉืจื™ ื’ื: ืจืื” VALUES ืœืžื˜ื”.

ื‘ื ื•ืกืฃ ืœื™ื›ื•ืœืช ืœืืชื—ืœ ื”ื’ื“ืจื” ืขื ืขืจืš ื ื™ืงืœ, ื‘ืกื’ื ื•ืŸ C
ืžื•ืชืจื•ืช ื’ื ื”ื’ื“ืจื•ืช ืžืขืจืš, ืžื‘ื ื” ื•ืื™ื’ื•ื“: ืœื“ื•ื’ืžื”, ื”
ื”ื‘ื
int[*,*] name = {{0,1},{2,3}}
int[2,2] ืฉื = {{0...}...}
ืžื•ืชืจื™ื ืขื ื”ืกืžื ื˜ื™ืงื” ื”ื‘ืจื•ืจื”. ื–ื” ื”ื”ืงืฉืจ ืฉื‘ื• ื”
ืžื™ืžื“ื™ื ื‘ื˜ื™ืคื•ืก ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ื‘ื™ื˜ื•ื™ื™ื: ืจืื” ืืช ื”ื“ื™ื•ืŸ ืขืœ ืกื•ื’ื™ ืžืขืจื›ื™ื ืœืขื™ืœ.
ืจืื” ืืช ื”ื“ื™ื•ืŸ ื‘ืขืจื›ื™ ืžืขืจืš ื•ืžื‘ื ื” ืขื‘ื•ืจ ืžืขืจืš ื•ืžื‘ื ื”
ืชื—ื‘ื™ืจ ืืชื—ื•ืœ.

ืžื•ืงื“ืžื•ืช


ื”ืฆื”ืจื” ืื• ื”ื’ื“ืจื” ืขืฉื•ื™ื•ืช ืœื”ื™ื•ืช ืžืกื•ื™ื’ื•ืช, ื›ืžื• ื‘-C, ืœืฆื™ื•ืŸ ืคืจื˜ื™ื ืฉืœ ืชื•ื›ื ื”
ื”ืชื ื”ื’ื•ืช. ืฉืœื ื›ืžื• ื‘-C, ื”ืžื•ืงื“ืžื•ืช ื”ืœืœื•, ืœืžืจื•ืช ืฉื”ืŸ ืื•ืคืฆื™ื•ื ืœื™ื•ืช, ื—ื™ื™ื‘ื•ืช ืœื”ื•ืคื™ืข ื‘ืกื“ืจ ื”ื ืชื•ืŸ.

ืจืื•ืช:

public ื›ืœ ื‘ื™ื˜ื•ื™ ื”ื’ื“ืจื” (ื”ื’ื“ืจืช ืคื•ื ืงืฆื™ื”, ื”ื’ื“ืจืช ืžืฉืชื ื”, ืกื•ื’
ื”ื’ื“ืจื”) ื ื™ืชืŸ ืœืกื™ื™ื’ ืขื ื”ืฆื™ื‘ื•ืจ ื›ื“ื™ ืœืฆื™ื™ืŸ ืฉื”ืฉื ื”ืžื•ื’ื“ืจ
ืฆืจื™ืš ืœื”ื™ื•ืช ื’ืœื•ื™ ืžื—ื•ืฅ ืœืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื ื•ื›ื—ื™, ื•ืืžื•ืจ ืœื”ื™ื•ืช ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™
ืžึฐื™ื•ึนื‘ึผึธื. ืจืื” ืžืจื—ื‘ื™ ืฉืžื•ืช ืœืžื˜ื” ืœืžื™ื“ืข ื ื•ืกืฃ.

ืžื•ึผื’ึธืŸ
ื›ืœ ื‘ื™ื˜ื•ื™ ื”ื’ื“ืจื” (ื”ื’ื“ืจืช ืคื•ื ืงืฆื™ื”, ื”ื’ื“ืจืช ืžืฉืชื ื”, ืกื•ื’
ื”ื’ื“ืจื”) ื ื™ืชืŸ ืœืกื™ื™ื’ ืขื protected ื›ื“ื™ ืœืฆื™ื™ืŸ ืฉื”ืฉื ื”ืžื•ื’ื“ืจ
ืืžื•ืจ ืœื”ื™ื•ืช ื’ืœื•ื™ ืžื—ื•ืฅ ืœืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื ื•ื›ื—ื™, ืืš ืืกื•ืจ ืฉื™ื”ื™ื” ื–ืžื™ืŸ
ืขืœ ื™ื“ื™ ื”ืฆื”ืจื•ืช ื™ื‘ื•ื. ืจืื” ืžืจื—ื‘ื™ ืฉืžื•ืช ืœืžื˜ื” ืœืžื™ื“ืข ื ื•ืกืฃ.

ืœื›ืœ ื”ื—ื™ื™ื:

auto ืื•ื‘ื™ื™ืงื˜ ืื•ื˜ื•ืžื˜ื™ ื”ื•ื ืžืงื•ืžื™ ืœื‘ืœื•ืง ืžืกื•ื™ื: ืžืฉืš ื”ื—ื™ื™ื ืฉืœื• ื”ื•ื ืœืคื—ื•ืช
ืžืฉืš ื”ื—ื™ื™ื ืฉืœ ื”ื‘ืœื•ืง ื”ื–ื”. ืื•ื‘ื™ื™ืงื˜ ืื•ื˜ื•ืžื˜ื™ ืขื ืืชื—ื•ืœ ื™ืื•ืชื—ืœ ืžื—ื“ืฉ
ื‘ื›ืœ ืคืขื ืฉื”ื•ื ืžื•ืขืจืš. ื–ื”ื• ืื•ืจืš ื”ื—ื™ื™ื ื”ืžื•ื’ื“ืจ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืขื‘ื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ื ืžืงื•ืžื™ื™ื.

static ืื•ื‘ื™ื™ืงื˜ ืกื˜ื˜ื™ ื”ื•ื ืžืงื•ืžื™ ืœื”ื’ื“ืจืช ืคื•ื ืงืฆื™ื” ืžืกื•ื™ืžืช: ืžืฉืš ื”ื—ื™ื™ื ืฉืœื• ื”ื•ื ื‘
ืœืคื—ื•ืช ืžืฉืš ื”ื—ื™ื™ื ืฉืœ ื”ื”ื’ื“ืจื” ื”ื–ื•. ืื•ื‘ื™ื™ืงื˜ ืกื˜ื˜ื™ ื—ื“ืฉ ื™ื™ื•ื•ืฆืจ ื›ืœ ืื—ื“
ื–ืžืŸ ืžื•ืขืจืš ื”ื’ื“ืจืช ื”ืคื•ื ืงืฆื™ื” ื”ืžืงื™ืคื” ืฉืœื”.

ื‘-Nickle, ืžื™ืœืช ื”ืžืคืชื— ืกื˜ื˜ื™ืช ืงืฉื•ืจื” ืจืง ืœื›ืœ ื”ื—ื™ื™ื (ื›ืžื• ื”ืฉื™ืžื•ืฉ ื‘ืกื˜ื˜ื™
ื‘ืชื•ืš ืคื•ื ืงืฆื™ื•ืช C), ืœื ืขื ื ืจืื•ืช (ืืฉืจ ืžื˜ื•ืคืœืช ืขืœ ื™ื“ื™ ืžื•ืงื“ืžื•ืช ื ืคืจื“ื•ืช
ื›ืคื™ ืฉืชื•ืืจ ืœืขื™ืœ, ืœื ื›ืžื• ื”ืฉื™ืžื•ืฉ ื‘ืกื˜ื˜ื™ ื‘ื”ื™ืงืฃ ื’ืœื•ื‘ืœื™ ื‘-C).

ื’ืœื•ื‘ืœื™ ืื•ื‘ื™ื™ืงื˜ ื’ืœื•ื‘ืœื™ ื”ื•ื ื’ืœื•ื‘ืœื™ ืœื›ืœ ื”ืชื•ื›ื ื™ืช: ืžืฉืš ื—ื™ื™ื• ื”ื•ื ื—ื™ื™ื• ืฉืœ
ื”ืชื›ื ื™ืช. ืื•ื‘ื™ื™ืงื˜ ื’ืœื•ื‘ืœื™ ื™ื•ื•ืฆืจ ื•ื™ืืชื—ืœ ื‘ืขืช ื”ื’ื“ืจืชื•
ื ืจืื” ืœืจืืฉื•ื ื”. ื–ื”ื• ืื•ืจืš ื”ื—ื™ื™ื ื”ืžื•ื’ื“ืจ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืขื‘ื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ื ื’ืœื•ื‘ืœื™ื™ื.

ื”ื”ื‘ื—ื ื” ื‘ื™ืŸ ื—ื™ื™ื ืกื˜ื˜ื™ื™ื ื•ื’ืœื•ื‘ืœื™ื™ื ื‘ื ื™ืงืœ ืื™ื ื” ืืคืฉืจื™ืช ื‘-C,
ืžื›ื™ื•ื•ืŸ ืฉืคื•ื ืงืฆื™ื•ืช C ืื™ื ืŸ ืื•ื‘ื™ื™ืงื˜ื™ื ืžื—ืœืงื” ืจืืฉื•ื ื” ืขื ื”ื™ืงืฃ ืžืงื•ื ืŸ. ื›ืฉืžื—ืœื™ื˜ื™ื
ืฉื‘ื• ืœื”ืฉืชืžืฉ ื‘ืชื•ื›ื ื™ืช Nickle, ืœื—ืฉื•ื‘ ืžื” ืฆืจื™ืš ืœืงืจื•ืช ืื ื”ื’ื“ืจื” ื”ื™ื
ืžื•ืขืจืš ืžื—ื“ืฉ.

ืžืคืขื™ืœื™ื


ืœื”ืœืŸ ื”ืื•ืคืจื˜ื•ืจื™ื ื”ื‘ืกื™ืกื™ื™ื ืฉืœ ื ื™ืงืœ, ืžืงื•ื‘ืฆื™ื ืœืคื™ ืกื“ืจ ืขื“ื™ืคื•ืช ืคื•ื—ืช:

ื[E,E,...,E]
ืžืชื™ื™ื—ืก ืœืืœืžื ื˜ E'th ืฉืœ ื‘ื™ื˜ื•ื™ ื”ืžืขืจืš A, ืื• E1'th/E2'th/ื•ื›ื•'
ืืœืžื ื˜ ืฉืœ ืžืขืจืš ืจื‘ ืžื™ืžื“ื™. ืฉื ื™ ืžืขืจื›ื™ ื”ืžืขืจื›ื™ื ala C ื•
ืžืขืจื›ื™ื ืจื‘ ืžื™ืžื“ื™ื™ื ala NAWK ืืคืฉืจื™ื™ื.

struct.tag
ื”ืชื™ื™ื—ืกื•ืช ืžื‘ื ื”.

struct->tag
ื”ืคื ื™ื™ืช ืžืฆื‘ื™ืข ืžื‘ื ื” ala C.

=============

++ -- ืชื•ืกืคืช/ื™ืจื™ื“ื” ื—ื“ื”. ื™ื›ื•ืœ ืœื”ื™ื•ืช postfix ืื• ืงื™ื“ื•ืžืช.

- ืฉืœื™ืœื” ื‘ืœืชื™ ืจื’ื™ืœื”

! E ืฉืœื™ืœื” ืœื•ื’ื™ืช.

ื”! ืคืงื˜ื•ืจื™ืืœื™. ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืฉืœ ืžืกืคืจ ืฉืœื ืœื ืฉืœื™ืœื™.

* ื”ืคื ื™ื™ืช E Pointer.

& E ื‘ื ื™ื™ืช ื”ืชื™ื™ื—ืกื•ืช.

=============

(U) E ื‘ื ื” ืขืจืš ืžืกื•ื’ ืื™ื—ื•ื“ ืขื ืชื’ U ื•ืขืจืš E.

=============

** ืืงืกืคื•ื ื ืฆื™ืฆื™ื”. ืฉื ื™ ื”ืื•ืคืจื ื“ื™ื ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ื—ืœืงื™ื. ื”ืื•ืคืจื ื“ ื”ืฉืžืืœื™ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืœื-
ืฉืœื™ืœื™ ืืœื ืื ื”ืื•ืคืจื ื“ ื”ื™ืžื ื™ ื”ื•ื ืžืกืคืจ ืฉืœื. ืกื•ื’ ื”ืชื•ืฆืื” ื”ื•ื ืกื•ื’ ื”-
ืื•ืคืจื ื“ ืฉืžืืœื™ ืื ื”ืื•ืคืจื ื“ ื”ื™ืžื ื™ ื”ื•ื ืžืกืคืจ ืฉืœื, ื•ืžืžืฉื™ ืื—ืจืช.

ื–ื•ื”ื™ ื”ืชื›ื•ื ื” ื”ื™ื“ื•ืขื” ื”ื™ื—ื™ื“ื” ืฉืœ ื ื™ืงืœ ืœืœื ืฆืœื™ืœ ืžืกื•ื’ ื˜ื™ืคื•ืก: ื‘ื™ื˜ื•ื™ ื›ืžื• 2 ** -3
ื™ื”ื™ื” ืกื˜ื˜ื™ ืžืกื•ื’ ืžืกืคืจ ืฉืœื, ืืš ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ื™ืคื™ืง ืจืฆื™ื•ื ืœ
ืชื•ึนืฆึธืึธื”. ื–ื” ืขืœื•ืœ ืœื’ืจื•ื ืœืฉื’ื™ืืช ืกื•ื’ ื–ืžืŸ ืจื™ืฆื” ื‘ื”ืžืฉืš: ืฉืงื•ืœ
int x = 2 ** -3;

=============

* / // %
ื–ืžื ื™ื, ืžื—ืœืงื™ื, ืžื—ืœืงื™ื ืฉืœืžื™ื, ื•ื”ืฉืืจ. ื”ืื•ืคืจื ื“ ื”ื™ืžื ื™ ืžืฉืœื•ืฉืช ื”ืื—ืจื•ื ื™ื
ืื•ืคืจื˜ื•ืจื™ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืœื ืžืืคืก. ืกื•ื’ ื”ืชื•ืฆืื” ืฉืœ ืื•ืคืจื˜ื•ืจ ื”ื—ืœื•ืงื” ืชืžื™ื“ ื™ื”ื™ื”
ืœืคื—ื•ืช ืจืฆื™ื•ื ืœื™: ืกื•ื’ ื”ืชื•ืฆืื” ืฉืœ ืื•ืคืจื˜ื•ืจ ื—ืœื•ืงืช ื”ืžืกืคืจื™ื ื”ืฉืœืžื™ื ืชืžื™ื“ ื™ื”ื™ื”
int. ื–ื•ื”ื™ ืกื˜ื™ื™ื” ื‘ื•ืœื˜ืช ืž-C, ืฉื‘ื” ื—ืœื•ืงื” ืฉืœืžื™ื ืžืฉืชืžืขืช ืขืœ ื™ื“ื™
ืื•ืคืจื ื“ื™ื ืฉืœืžื™ื. ื—ืœื•ืงืช ืžืกืคืจื™ื ืฉืœืžื™ื ืžื•ื’ื“ืจืช ืขืœ ื™ื“ื™
x // y == y > 0 ? ืงื•ืžื” (x/y) : ceil(x/y)
ื”ืฉืืจ ืชืžื™ื“ ืœื ืฉืœื™ืœื™ ื•ืžื•ื’ื“ืจ ืขืœ ื™ื“ื™: ืขืœ ื™ื“ื™
x % y = x - (x // y) * y

=============

+ - ื—ื™ื‘ื•ืจ ื•ื—ื™ืกื•ืจ.

=============

<< >> ื”ืขื‘ืจื” ื—ืœืงื™ืช ืฉืžืืœื” ื•ื™ืžื™ื ื” ืขื ืื•ืคืจื ื“ื™ื ืฉืœืžื™ื. ืื•ืคืจื ื“ื™ื ื™ืžื ื™ื™ื ืฉืœื™ืœื™ื™ื ืขื•ื‘ื“ื™ื
ื›ืฆืคื•ื™. ืื•ืคืจื˜ื•ืจื™ื ืืœื” ืžื•ื’ื“ืจื™ื ืขืœ ื™ื“ื™
x << y = x * 2 ** y
x >> y = x // 2 ** y
ื“ืจืš ื ื•ืกืคืช ืœื”ืกืชื›ืœ ืขืœ ื–ื” ื”ื™ื ืฉืื•ืคืจื ื“ื™ื ืฉืžืืœื™ื™ื ืฉืœื™ืœื™ื™ื ื ื—ืฉื‘ื™ื ื‘ืคื ื™ื
ื™ื™ืฆื•ื’ ืื™ื ืกื•ืฃ ืฉื ื™ื™ื-ืžืฉืœื™ื (ื›ืœื•ืžืจ, ืกื™ืžืŸ-ืžื•ืจื—ื‘ ืขื“ ืื™ื ืกื•ืฃ), ืขื
ืกื™ืžืŸ ื”ืขื‘ืจื” ื™ืžื ื™ ื”ืžืจื—ื™ื‘ ืืช ื”ืื•ืคืจื ื“ ื”ืฉืžืืœื™ ืฉืœื•.

=============

<= >= < >
ืžืคืขื™ืœื™ื ื™ื—ืกื™ื™ื.

=============

== != ืžืคืขื™ืœื™ ืฉื•ื•ื™ื•ืŸ.

=============
ืœื‘ืกื•ืฃ, ืœืคื™ ืกื“ืจ ืขื“ื™ืคื•ืช ื™ื•ืจื“:

& Bitwise AND. ืื•ืคืจื ื“ื™ื ืฉืœื™ืœื™ื™ื ื ื—ืฉื‘ื™ื ื‘ื”ืฉืœืžื” ืื™ื ืกื•ืคื™ืช ืฉืœ ืฉื ื™ื™ื
ื™ื™ืฆื•ื’ (ื›ืœื•ืžืจ, ืกื™ืžืŸ ืžื•ืจื—ื‘ ืขื“ ืื™ื ืกื•ืฃ).

^ Bitwise XOR. ืื•ืคืจื ื“ื™ื ืฉืœื™ืœื™ื™ื ื›ืžื• ื‘-AND.

| Bitwise OR. ืื•ืคืจื ื“ื™ื ืฉืœื™ืœื™ื™ื ื›ืžื• ื‘-AND.

&& ืงืฆืจ ื—ืฉืžืœื™ AND.

|| ืงืฆืจ ื—ืฉืžืœื™ OR ืœื•ื’ื™.

ื”? ื”: ื”
ื‘ื™ื˜ื•ื™ ืžื•ืชื ื”: ืื ื”ื‘ื™ื˜ื•ื™ ื”ืจืืฉื•ืŸ ื ื›ื•ืŸ ืœื•ื’ื™, ื”ืขืจืš ื”ื•ื ืฉื ื™
ื‘ื™ื˜ื•ื™, ืื—ืจ ืฉืœื™ืฉื™.

fork E ืฆื•ืจ (ื•ื”ื—ื–ืจ) ื—ื•ื˜. ืจืื” ืฉืจืฉื•ืจ ืœืžื˜ื” ืœืคืจื˜ื™ื.

= += -= *= /= //= %= **= <<= >>= ^= &= |=
ืžืคืขื™ืœื™ ืžื˜ืœื•ืช. ืฆื“ ืฉืžืืœ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื ื™ืชืŸ ืœื”ืงืฆืื”. x = y ืฉื•ื•ื” ืขืจืš
ืœ x = x y

E , E ืžื—ื–ื™ืจื” ื‘ื™ื˜ื•ื™ ื™ืžื ื™.

ืกื•ื’ื™


ืชื—ื‘ื™ืจ ื”ืฆื”ืจืช ื”ืกื•ื’ ืฉืœ ื ื™ืงืœ ื“ื•ืžื” ื™ื•ืชืจ ืœื’ืจืกื” ื”``ืฉืžืืœื™ืช'' ืฉืœ
ืชื—ื‘ื™ืจ Java ืžืืฉืจ ืชื—ื‘ื™ืจ C. ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ืกื•ื’ ืžื•ืจื›ื‘ ืž:

ืžืกืคืจ ืฉืœื ืจืฆื™ื•ื ืœื™ ื”ืžืฉืš ืžื—ืจื•ื–ืช ืืžื™ืชื™ืช ืจื™ืง
ืกื•ื’ ื‘ืกื™ืก ืฉืœ ื”ืฉืคื”. ืกื•ื’ ืจื™ืง ื”ื•ื ืœืžืขืฉื” ืฉืžื™ืฉ ืจืง ื‘ื—ืœืงื™ื ืžืกื•ื™ืžื™ื
ื”ืงืฉืจื™ื, ื‘ืขื™ืงืจ ื”ื—ื–ืจื•ืช ืคื•ื ืงืฆื™ื•ืช. ื–ื” ืžื™ื•ืฉื ื›ืขืช ื›ืกื•ื’ "ื™ื—ื™ื“ื”".
ala ML, ื•ืœื›ืŸ ื™ืฉ ืœื• ื”ืชื ื”ื’ื•ืช ืฉื•ื ื” ื‘ืžืงืฆืช ืžืืฉืจ ื‘-C. ืกื•ื’ ืคื•ืœื™ ื”ื•ื ื”
ื˜ื™ืคื•ืก ืขืœ ืžื›ืœ ื”ืกื•ื’ื™ื ื”ืื—ืจื™ื (ื›ืœื•ืžืจ, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœืขื›ื‘ ืกื•ื’ ืกื˜ื˜ื™
ื‘ื•ื“ืง), ื•ื”ื•ื ืกื•ื’ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ืจื•ื‘ ื”ืžืฆื‘ื™ื ืฉื‘ื”ื ืกื•ื’ ืื™ื ื• ืฆืจื™ืš ืœื”ื•ืคื™ืข.

ื—ื•ื˜ ืกืžืคื•ืจ ืงื•ื‘ืฅ
ื’ื ืกื•ื’ื™ ื‘ืกื™ืก ืžื•ื‘ื ื™ื, ืืš ื—ืœืง ื‘ืœืชื™ ื ืคืจื“ ืžื”-File ื•ื”-Thread ADTs: ืจืื” ืœื”ืœืŸ.

ืขื•ื“ ืื•ื“ื•ืช ืกื•ื’ื™ื:

ื ื™ืงืœ ืชื•ืžืš ื‘ื ืชื•ื ื™ื ืคื•ืœื™ืžื•ืจืคื™ื™ื: ื›ืืฉืจ ื‘ื™ื˜ื•ื™ ืžื•ืขืจืš, ื ื‘ื—ืจ ืกื•ื’ ื ืชื•ื ื™ื
ืœื”ืชืื™ื ืœืชื•ืฆืื”. ื›ืœ ืื•ื‘ื™ื™ืงื˜ Nickle ืขืฉื•ื™ ืœื”ื™ื•ืช ืžื•ืงืœื“ ืกื˜ื˜ื™, ื•ื‘ืžืงืจื” ื–ื” ื’ื‘ื•ืœื•ืช
ื”ืคืจื•ืช ื™ืกื•ืžื ื• ื›ืฉื’ื™ืื•ืช ื‘ื–ืžืŸ ื”ื”ื™ื“ื•ืจ. ืžืฉืชื ื™ื ื•ืคื•ื ืงืฆื™ื•ืช ืคื•ืœื™ืžื•ืจืคื™ื™ื
ืืœ ืชืฆื™ื‘ ื”ื’ื‘ืœื•ืช ืขืœ ืกื•ื’ ื”ื ืชื•ื ื™ื ืฉื”ื•ืงืฆื”; ื–ื”ื• ืกื•ื’ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืขื‘ื•ืจ ื›ื•ืœื
ื—ืคืฆื™ื.

poly ื–ื” ืžืชืืจ ืืช ื”ืื™ื—ื•ื“ ืฉืœ ื›ืœ ืกื•ื’ื™ ื”ื ืชื•ื ื™ื. ืžืฉืชื ื” ืขื ืกื•ื’ ื–ื” ื™ื›ื•ืœ ืœื”ื›ื™ืœ
ื›ืœ ืขืจืš ื ืชื•ื ื™ื.

int ืžืกืคืจื™ื ืฉืœืžื™ื ื“ื™ื•ืง ืฉืจื™ืจื•ืชื™.

ืจึทืฆึดื™ื•ึนื ึธืœึดื™
ืžืกืคืจื™ื ืจืฆื™ื•ื ืœื™ื™ื ื“ื™ื•ืง ืฉืจื™ืจื•ืชื™.

ืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื” ืžืžืฉื™ืช ืฉืจื™ืจื•ืชื™ืช ืฉืœ ื“ื™ื•ืง ืžืขืจื™ืš. ื›ืžื• ืฉื”ืจื‘ื” ื—ื™ืฉื•ื‘ื™ื ืœื ื™ื›ื•ืœื™ื
ืœื”ืชื‘ืฆืข ื‘ื“ื™ื•ืง ื›ืžืกืคืจื™ื ืจืฆื™ื•ื ืœื™ื™ื, ื ื™ืงืœ ืžื™ื™ืฉื ืœื ืžื“ื•ื™ืง
ืืจื™ืชืžื˜ื™ืงื” ื‘ืืžืฆืขื•ืช ื™ื™ืฆื•ื’ ื‘ืœืชื™ ืชืœื•ื™ ื‘ืžื›ื•ื ื” ืขื‘ื•ืจ ื ืงื•ื“ื” ืฆืคื”
ืžืกืคืจื™ื. ื”ืคื•ื ืงืฆื™ื” ื”ืžื•ื‘ื ื™ืช imprecise(n) ื™ื•ืฆืจืช ืžืกืคืจ ืืžื™ืชื™ ืขื 256 ืกื™ื‘ื™ื•ืช
ืฉืœ ื“ื™ื•ืง ืžื”ืžืกืคืจ n, ื‘ืขื•ื“ ืฉื‘ืœืชื™ ืžื“ื•ื™ืง(n,p) ื™ื•ืฆืจ ืžืกืคืจ ืžืžืฉื™ ืขื p
ืคื™ืกื•ืช ื“ื™ื•ืง.

T[] ืžืขืจืš ืžืกื•ื’ T, ื‘ืขืœ ืžื™ืžื“ ืื—ื“ ืื• ื™ื•ืชืจ. ืื™ืŸ ืืคืก ืžื™ืžื“
ืžืขืจื›ื™ื ื‘ื ื™ืงืœ.

T[*] ืžืขืจืš ื—ื“ ืžื™ืžื“ื™ ืžืกื•ื’ T. ืฉืœื ื›ืžื• ื‘-C, ื”ืžื™ืžื“ ืฉืœ ืžืขืจืš ื”ื•ื ืืฃ ืคืขื
ื—ืœืง ืžืกื•ื’ื• ื‘ื ื™ืงืœ. ื™ืชืจ ืขืœ ื›ืŸ, ืžืขืจื›ื™ื ื•ืžืฆื‘ื™ืขื™ื ื”ื ืกื•ื’ื™ื ืœื ืงืฉื•ืจื™ื ื‘
ื ื™ืงืœ.

T[*,*,...,*]
ืžืขืจืš ื“ื• ืžื™ืžื“ื™ ืื• ื™ื•ืชืจ ืžืกื•ื’ T. ื”ื›ื•ื›ื‘ื™ื ``*'' ืื™ื ื ืื•ืคืฆื™ื•ื ืœื™ื™ื. ื›ืคื™ ืฉ
ื”ืคืกืงืื•ืช ื”ืงื•ื“ืžื•ืช ืžื‘ื”ื™ืจื•ืช, ``T[]'' ืื™ื ื• ืžืขืจืš ืืคืก ืžืžื“ื™.

T[E,E,...,E]
ื‘ื”ืงืฉืจื™ ื”ื’ื“ืจื”, ื ื™ืชืŸ ืœืชืช ืขืจื›ื™ ืžืกืคืจื™ื ืฉืœืžื™ื ืขื‘ื•ืจ ื›ืœ ืžื™ืžื“ ืฉืœ ืžืขืจืš
ื”ึถืงืฉืึตืจ. ืืœื” ืžื™ื•ืขื“ื™ื ืืš ื•ืจืง ืœืžื˜ืจื•ืช ื™ืฆื™ืจืช ืขืจืš, ื•ืื™ื ื ื—ืœืง ืžื”-
ืกื•ึผื’. ืกื•ื’ ืžืขืจืš ื ืงื‘ืข ืจืง ืœืคื™ ืกื•ื’ ื”ื‘ืกื™ืก ื•ืžืกืคืจ ื”ืžืžื“ื™ื
ืฉืœ ื”ืžืขืจืš.

T0() T0(T,T,...,T)
ืคื•ื ืงืฆื™ื” ื”ืžื—ื–ื™ืจื” ืกื•ื’ T0. ืคื•ื ืงืฆื™ื” ืžืงื‘ืœืช 0 ืื• ื™ื•ืชืจ ืืจื’ื•ืžื ื˜ื™ื.

T0() T0(T,T,...,T ...)
ืคื•ื ืงืฆื™ื” ืฉืžืงื‘ืœืช ืืคืก ืื• ื™ื•ืชืจ ืืจื’ื•ืžื ื˜ื™ื ื ื“ืจืฉื™ื, ื‘ืชื•ืกืคืช ืžืกืคืจ ืฉืจื™ืจื•ืชื™ ืฉืœ
ื˜ื™ืขื•ื ื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื. ื”ืจืฆืฃ ื”ืฉื ื™ ืฉืœ ืฉืœื•ืฉ ื ืงื•ื“ื•ืช (ืืœื™ืคืกื™ืก) ื”ื•ื ืชื—ื‘ื™ืจ, ืœื
metasyntax: ืจืื” ืืช ื”ืชื™ืื•ืจ ืฉืœ ืคื•ื ืงืฆื™ื•ืช varargs ืœืคืจื˜ื™ื.

*ืžืฆื‘ื™ืข TA ืœืžื™ืงื•ื ืžืกื•ื’ T. ืืจื™ืชืžื˜ื™ืงื” ืžืฆื‘ื™ืข ื‘ื ื™ืงืœ ืคื•ืขืœืช ืจืง ืขืœื™ื•
ืžืฆื‘ื™ืขื™ื ืœืžืขืจื›ื™ื: ื”ืžืฆื‘ื™ืข ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื”ืกื•ื’ ื”ื ื›ื•ืŸ, ื•ืขืœื•ืœ ืœืขื•ืœื ืœื ืœืกื˜ื•ืช
ืžื—ื•ืฅ ืœืชื—ื•ื. ืžืฆื‘ื™ืข ื™ื›ื•ืœ ืœื”ืฆื‘ื™ืข ืขืœ ืžื™ืงื•ื ื›ืœืฉื”ื• ืื• ืœื”ื™ื•ืช ืจื™ืง (0). ื›ืžื• ื‘
C, ื”ืงื“ื™ืžื•ืช ืฉืœ ``*'' ื ืžื•ื›ื” ืžื”ืงื“ื™ืžื•ืช ืฉืœ ``[]'' ืื• ``()'': ื”ืฉืชืžืฉ
ืกื•ื’ืจื™ื™ื ืœืคื™ ื”ืฆื•ืจืš.

struct {ืฉื ืช'; ืฉื T; ...}
ืžื‘ื ื” ืขื ืฉื“ื•ืช ื‘ืฉื ื•ื‘ืกื•ื’ ื”ื ืชื•ื ื™ื. ื”ืกื•ื’ื™ื T ื”ื ืื•ืคืฆื™ื•ื ืœื™ื™ื: in
ื”ื™ืขื“ืจื, ืกื•ื’ ื”ืฉื“ื” ื”ื•ื ืคื•ืœื™.

ืื™ื—ื•ื“ {ืฉื ื˜; ืฉื T; ...}
"ืื™ื—ื•ื“ ืžื ื•ืชืง" ืžื”ืกื•ื’ื™ื ื”ื ืชื•ื ื™ื. ื–ื” ื“ื•ืžื” ื™ื•ืชืจ ืœืกื•ื’ ืจืฉื•ืžืช ื”ื’ืจืกื”
ืฉืœ Pascal ืื• ืกื•ื’ ื”ื ืชื•ื ื™ื ืฉืœ ML ืžืืฉืจ ืกื•ื’ ื”ืื™ื—ื•ื“ C: ื”ืฉืžื•ืช ื”ื ืชื’ื™ื•ืช ืฉืœ
ืกื•ื’ ื ืชื•ืŸ, ื‘ื“ื™ื•ืง ืื—ื“ ืžื”ื ื—ืœ ืขืœ ืขืจืš ื ืชื•ืŸ ื‘ื–ืžืŸ ื ืชื•ืŸ.

(ื˜) ืกื•ื’ืจื™ื™ื ืœืงื™ื‘ื•ืฅ.

Typedef:

ื›ืžื• ื‘-C, ื ื™ืชืŸ ืœื™ืฆื•ืจ ืฉืžื•ืช ืกื•ื’ื™ื ื—ื“ืฉื™ื ืขื ื”ืฆื”ืจืช typedef. ื”ืชื—ื‘ื™ืจ ื”ื•ื
typedef T typename;
ื›ืืฉืจ T ื”ื•ื ืกื•ื’ ื ื™ืงืœ. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉื ื”ื˜ื™ืคื•ืก ื”ืžืชืงื‘ืœ ื‘ื›ืœ ืžืงื•ื ืฉื‘ื• ืฆืคื•ื™ ืกื•ื’.

ืขืจื›ื™ื


ื”ืขืจื›ื™ื ืฉืœ ืกื•ื’ื™ ื”ื‘ืกื™ืก ืฉืœ ื ื™ืงืœ ื”ื ื›ืฆืคื•ื™. ืจืื” ืืช ื”ืชื—ื‘ื™ืจ ืœืงื‘ื•ืขื™ื ืœืžืขืœื”.
ืขืจื›ื™ื ืฉืœ ืกื•ื’ ืงื•ื‘ืฅ, ืกืžืคื•ืจ ื•ื”ืžืฉืš ืขืฉื•ื™ื™ื ืœื”ื™ื•ื•ืฆืจ ื›ืขืช ืจืง ืขืœ ื™ื“ื™ ืงืจื™ืื•ืช ืืœ
ืคื•ื ืงืฆื™ื•ืช ืžื•ื‘ื ื•ืช: ืœื ืงื™ื™ืžื™ื ืงื‘ื•ืขื™ ื ื™ืงืœ ืžืกื•ื’ื™ื ืืœื”.

ื›ืคื™ ืฉืฆื•ื™ืŸ ื‘-TYPES ืœืขื™ืœ, ืœื ื™ืงืœ ื™ืฉ ื›ืžื” ืกื•ื’ื™ื ืฉืœ ``ืขืจืš ืžื•ื‘ื ื”'': ืžืขืจื›ื™ื,
ืคื•ื ืงืฆื™ื•ืช, ืžืฆื‘ื™ืขื™ื, ืžื‘ื ื™ื ื•ืื™ื’ื•ื“ื™ื ืžืคื•ืจืงื™ื. ืœื›ืœ ืืœื” ื™ืฉ ื›ืžื” ืžืฉื•ืชืฃ
ื ื›ืกื™ื. ื›ืืฉืจ ื ื•ืฆืจื™ื, ื›ืœ ืขืจื›ื™ ื”ืจื›ื™ื‘ ืื™ื ื ืžืืชื—ืœื™ื (ืืœื ืื ื›ืŸ ืื—ืจืช
ื ึธืงื•ึผื‘). ื ื™ืกื™ื•ื ื•ืช ืœื”ืฉืชืžืฉ ื‘ืขืจืš ืœื ืžืื•ืชื—ืœ ื™ื’ืจืžื• ืœื–ืžืŸ ืงื•ืžืคื™ืœืฆื™ื”
ืฉื’ื™ืื” ืื• ื—ืจื™ื’ ื‘ื–ืžืŸ ืจื™ืฆื”.

ืžืขืจื›ื™ื:

[E] ื™ื•ืฆืจ ืžืขืจืš (ืžื‘ื•ืกืก ืืคืก) ืขื ืืœืžื ื˜ื™ื E. E ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืœื ืฉืœื™ืœื™.

[E]{V,V,...,V}
ื™ื•ืฆืจ ืžืขืจืš ืขื ืืœืžื ื˜ื™ื E, ืžืื•ืชื—ืœ ืœ-Vs. ืื ื™ืฉ ืžืขื˜ ืžื“ื™
ืžืืชื—ืœื™ื, ื”ืจื›ื™ื‘ื™ื ื”ื ื•ืชืจื™ื ื™ื™ืฉืืจื• ืœื ืžืื•ืชื—ืœื™ื.

[E]{V,V,...,V...}
ื”ืืœื™ืคืกื™ืก ื”ืฉื ื™ (ืฉืœื•ืฉ ื ืงื•ื“ื•ืช) ื”ื•ื ืชื—ื‘ื™ืจ, ืœื ืžื˜ื-ืชื—ื‘ื™ืจ. ืฆื•ืจ ืžืขืจืš ืขื E
ืืœืžื ื˜ื™ื. ื”ืืœืžื ื˜ื™ื ื”ืจืืฉื•ื ื™ื ื‘ืžืขืจืš ื™ืื•ืชื—ืœื• ืœืคื™ ื”-Vs,
ื›ืืฉืจ ื›ืœ ื”ืืœืžื ื˜ื™ื ื”ื ื•ืชืจื™ื ืžืงื‘ืœื™ื ืืช ืื•ืชื• ืขืจืš ื›ืžื• ื”-V ื”ืื—ืจื•ืŸ. ืชื—ื‘ื™ืจ ื–ื”
ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฆื•ืจื” ื‘ืจื•ืจื” ืขื ื›ืœ ืื—ื“ ืžืžืคืชื—ื™ ื”ืžืขืจืš ืœืžื˜ื”.

[*]{V,V,...,V}
ื™ื•ืฆืจ ืžืขืจืš ืืชื—ื•ืœ ืขื ืืœืžื ื˜ื™ื ืจื‘ื™ื ื‘ื“ื™ื•ืง ื›ืžื• ืžืืชื—ืœื™ื. ืฉื
ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืืชื—ื•ืœ ืื—ื“ ืœืคื—ื•ืช.

[E,E,...,E] [*,*,...,*]
ื™ื•ืฆืจ ืžืขืจื›ื™ื ืจื‘ ืžื™ืžื“ื™ื™ื. ืœื ื ื™ืชืŸ ืœืขืจื‘ื‘ ื‘ื™ื˜ื•ื™ื™ื ืฉืœืžื™ื ื•-"*": an
ื”ืžืžื“ื™ื ืฉืœ ื”ืžืขืจืš ืžื•ื’ื“ืจื™ื ืœื—ืœื•ื˜ื™ืŸ ืื• ืœื ืžืฆื•ื™ื ื™ื ื‘ื”ื’ื“ืจื”.
ืžืขืจื›ื™ื ืืœื” ืขืฉื•ื™ื™ื ืœื”ื™ื•ื•ืฆืจ ื’ื ื‘ืืชื—ื•ืœ: ืจืื” ืืช ื”ืคืกืงื” ื”ื‘ืื” ืขื‘ื•ืจ ืืชื—ื•ืœ
ืชื—ื‘ื™ืจ.

(T[E]) (T[E,E,...,E]) (T[E]){E,E,...,E}

(T[E,E,...,E]){{E,...},...,{E,...}}
ืชื—ื‘ื™ืจ ื—ืœื•ืคื™ ืœื™ืฆื™ืจืช ืžืขืจื›ื™ื ืžืกื•ื’ T. ื”ืžืืชื—ืœื™ื, ื‘ืกื•ื’ืจื™ื™ื ืžืกื•ืœืกืœื™ื,
ื”ื ืื•ืคืฆื™ื•ื ืœื™ื™ื. ืžืกืคืจ ื”ืžืืชื—ืœื™ื ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืงื˜ืŸ ืื• ืฉื•ื•ื” ืœื ืชื•ืŸ
ืžืกืคืจ ื”ืืœืžื ื˜ื™ื ื‘ื›ืœ ืžื™ืžื“. ืขื‘ื•ืจ ืžืขืจื›ื™ื ืจื‘ ืžื™ืžื“ื™ื™ื, ื”ืžืชื•ืœืชืœ ื‘ืžื™ื•ื—ื“
ื™ืฉ ืฆื•ืจืš ื‘ืคืœื˜ื” ืœื›ืœ ืžื™ืžื“ ื‘ืืชื—ื•ืœ; ื–ื” ื‘ื ื™ื’ื•ื“ ืœ-C, ืฉื ื”ื
ื”ื ืื•ืคืฆื™ื•ื ืœื™ื™ื.

(T[*]){E,E,...,E} (T[*,*,...,*]){{E,...},...,{E,... }}
ื™ื•ืฆืจ ืžืขืจื›ื™ื ืžืกื•ื’ T, ื›ืืฉืจ ื’ื•ื“ืœ ื›ืœ ืžื™ืžื“ ื ืชื•ืŸ ื‘ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ
ืืชื—ื•ืœื™ื ื‘ื›ืœ ืชืช-ืžืขืจืš ื‘ืžืžื“ ื–ื”.

ืžืฆื‘ื™ืขื™ื:

0 ืžืฆื‘ื™ืข ื”ืืคืก, ื‘ื”ืงืฉืจื™ื ืฉื‘ื”ื ื ื“ืจืฉ ืžืฆื‘ื™ืข.

&V &A[E,E,...,E] &S.N
ื™ื•ืฆืจ ืžืฆื‘ื™ืข ืœืžืฉืชื ื” ื”ื ืชื•ืŸ, ืืœืžื ื˜ ื”ืžืขืจืš ืื• ืื™ื‘ืจ ื”ืžื‘ื ื”. ื”
ืกื•ื’ ื”ืžืฆื‘ื™ืข ื™ื”ื™ื” *T, ื›ืืฉืจ T ื”ื•ื ืกื•ื’ ื”ืื•ื‘ื™ื™ืงื˜ ืืœื™ื• ืžืฆื‘ื™ืขื™ื.

*P ื”ืขืจืš ืฉืืœื™ื• ืžืฆื‘ื™ืข ื”ืžืฆื‘ื™ืข P. ื ื™ืชืŸ ืœืจืื•ืช ืื•ืชื• ืื• ืœืฉื ื•ืช ืื•ืชื• ื›ืžื• ื‘-C.

ืคื•ื ืงืฆื™ื•ืช:

(T func(){S;S;...S;}) (T func(T name,T name,...T name){S;S;...S;})
ื‘ื™ื˜ื•ื™ ืคื•ื ืงืฆื™ื”: ืžืฆื™ื™ืŸ ืคื•ื ืงืฆื™ื” ืฉืœ ืืคืก ืื• ื™ื•ืชืจ ืคืจืžื˜ืจื™ื ืคื•ืจืžืœื™ื™ื ืขื ื”-
ืกื•ื’ื™ื ื•ืฉืžื•ืช ื ืชื•ื ื™ื, ืžื—ื–ื™ืจื” ืืช ืกื•ื’ ื”ืชื•ืฆืื” ื”ื ืชื•ืŸ. ื’ื•ืฃ ื”ืคื•ื ืงืฆื™ื” ื ืชื•ืŸ
ืœืคื™ ืจืฉื™ืžืช ื”ื”ืฆื”ืจื•ืช ื”ืžืชื•ืœืชืœื•ืช ื”ืžืฆื•ืจืคืช. ื›ืœ ื”ืกื•ื’ื™ื ื”ื ืื•ืคืฆื™ื•ื ืœื™ื™ื, ื•ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื
ืคื•ืœื™. ื›ืคื™ ืฉืฆื•ื™ืŸ ืœืขื™ืœ, ืคื•ื ืงืฆื™ื•ืช ื”ืŸ ืืš ื•ืจืง ืงืจื™ืื” ืœืคื™ ืขืจืš: ื‘ืคืจื˜, ืžืขืจื›ื™ื
ื•ืžื‘ื ื™ื ืžื•ืขืชืงื™ื ื•ืœื ืžื•ื–ื›ืจื™ื.

ืฉื ืคื•ื ืงืฆื™ื” T (ืฉื T, ืฉื T,..., ืฉื T){S;S;...S;}
ืžื’ื“ื™ืจ ืคื•ื ืงืฆื™ื” ืฉืœ ืืคืก ืื• ื™ื•ืชืจ ืืจื’ื•ืžื ื˜ื™ื. ืกื•ื›ืจ ืชื—ื‘ื™ืจื™ ืขื‘ื•ืจ
T(T,T,...T) name = (T func(T name,T name,...T name){S;S;...S;});

ืฉื ืคื•ื ืงืฆื™ื” T (ืฉื T, ืฉื T ...)
ื”ืืœื™ืคืกื™ืก ื›ืืŸ ื”ื•ื ืชื—ื‘ื™ืจ, ืœื ืžื˜ื-ืชื—ื‘ื™ืจ: ืื ื”ื˜ื™ืขื•ืŸ ื”ืคื•ืจืžืœื™ ื”ืื—ืจื•ืŸ ืœ-a
ืื—ืจื™ ื”ืคื•ื ืงืฆื™ื” ืžื•ืคื™ืขื•ืช ืฉืœื•ืฉ ื ืงื•ื“ื•ืช, ื”ืคื•ื ืงืฆื™ื” ืขืฉื•ื™ื” ืœื”ื™ืงืจื ืขื ื™ื•ืชืจ ื ืชื•ื ื™ื ื‘ืคื•ืขืœ
ืžืืฉืจ ืคื•ืจืžืœื™ื•ืช. ื›ืœ "ื”ื ื•ืกืคื™ื" ื‘ืคื•ืขืœ ืืจื•ื–ื™ื ื‘ืคื•ืจืžืœื™ ื”ืžืขืจืš ืฉืœ ื”-
ืฉื ื ืชื•ืŸ, ื•-typechecked ืžื•ืœ ื”ืกื•ื’ ื”ืื•ืคืฆื™ื•ื ืœื™ T ืฉืœ ื”ืืจื’ื•ืžื ื˜ ื”ืื—ืจื•ืŸ
(ืคื•ืœื™ ื‘ืจื™ืจืช ืžื—ื“ืœ).

ืžื‘ื ื™ื:

(struct { T name; T name; ...T name; }){name = E; ืฉื = E; ...name=E;}
ืฆื•ืจ ืขืจืš ืžืกื•ื’ ืžื•ื‘ื ื”. ื”ืฉื“ื•ืช ื‘ืขืœื™ ื”ืฉื ืžืื•ืชื—ืœื™ื ืœื ืชื•ืŸ
ืขืจื›ื™ื, ื›ืฉื”ืฉืืจ ืœื ืžืื•ืชื—ืœ. ื›ืคื™ ืฉืฆื•ื™ืŸ, ื”ืืชื—ื•ืœ ืžืชื‘ืฆืข ืœืคื™ ืชื•ื•ื™ืช
ื‘ืžืงื•ื ืžื™ืงื•ื ื›ืžื• ื‘-C.

ืื™ื’ื•ื“ื™ื:

(ืื™ื—ื•ื“ { T name; T name; ...T name; }.name) E
ืฆื•ืจ ืขืจืš ืฉืœ ืกื•ื’ ื”ืื™ื—ื•ื“ ื”ื ืชื•ืŸ, ื”ื•ื•ืจื™ืืฆื™ื” ื”ื ื™ืชื ืช ืขืœ ื™ื“ื™ .name ื•ื”ืขืจืš
ื ืชื•ืŸ ืขืœ ื™ื“ื™ E. E ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืชื•ืื ืกื•ื’ ืขื ื”ืฉื.

ื”ืฆื”ืจื•ืช


ืชื—ื‘ื™ืจ ื”ื”ืฆื”ืจื” ื“ื•ืžื” ืžืื•ื“ ืœื–ื” ืฉืœ C. ื™ืฉ ืชื—ื‘ื™ืจ ื ื•ืกืฃ
ื ื•ืกืฃ ื›ื“ื™ ืœืชืžื•ืš ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ื ื•ืกืคืช ืฉืœ ื ื™ืงืœ.

ื”; ืžืขืจื™ืš ืืช ื”ื‘ื™ื˜ื•ื™.

{S ... S}
ืžื‘ืฆืข ืืช ื”ื”ืฆื”ืจื•ืช ื”ืžืฆื•ืจืคื•ืช ืœืคื™ ื”ืกื“ืจ.

ืื (ื”) ืก
ืžื•ืชื ื” ื‘ืกื™ืกื™ืช.

ืื (ื”) ืก
ื‘ื™ืฆื•ืข ืžื•ืชื ื”.

else S Else ืžื•ืชืจ, ืขื ื”ืชื—ื‘ื™ืจ ื•ื”ืกืžื ื˜ื™ืงื” ื”ืจื’ื™ืœื™ื. ื‘ืคืจื˜, ืื—ืจ ืžื—ื™ื™ื‘
ืœ-if() ืื• twixt() ื”ืขื“ื›ื ื™ื™ื ื‘ื™ื•ืชืจ.

ื‘ืขื•ื“ (ื”) ืก
ื‘ืขื•ื“ ืœื•ืœืื” ื‘ืกื’ื ื•ืŸ C.

ืœืขืฉื•ืช S ืชื•ืš (E);
ืœืขืฉื•ืช ืœื•ืœืื” ื‘ืกื’ื ื•ืŸ C.

ืขื‘ื•ืจ (opt-E; opt-E; opt-E) S
ืกื’ื ื•ืŸ C ืขื‘ื•ืจ ืœื•ืœืื”.

switch (E) { case E: S-list case E: S-list ... ื‘ืจื™ืจืช ืžื—ื“ืœ: S-list }
ื”ืฆื”ืจืช ืžืงืจื” ื‘ืกื’ื ื•ืŸ C. ื‘ื™ื˜ื•ื™ื™ ื”ืžืงืจื” ืื™ื ื ื ื“ืจืฉื™ื ืœื”ื™ื•ืช ืงื‘ื•ืขื™ื
ื‘ื™ื˜ื•ื™ื™ื, ืืš ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืฉืจื™ืจื•ืชื™ื™ื. ื”ืžืงืจื” ื”ืจืืฉื•ืŸ ื‘ื”ืขืจื›ื” ืœืžืชื’
ืืจื’ื•ืžื ื˜ ื ืœืงื—, ืื—ืจืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืื ืงื™ื™ืžืช, ืื—ืจืช ื™ื“ืœื’ ืขืœ ื’ื•ืฃ ื”ืžืชื’.

twixt(opt-E; opt-E) S

twixt(opt-E; opt-E) S else S
ืื ื‘ื™ื˜ื•ื™ ื”ืืจื’ื•ืžื ื˜ ื”ืจืืฉื•ืŸ ืžื•ืขืจืš ื›-true, ื”ื’ื•ืฃ ืฉืœ ื”-twixt() ื•ืœืื—ืจ ืžื›ืŸ
ื‘ื™ื˜ื•ื™ ื”ืืจื’ื•ืžื ื˜ ื”ืฉื ื™ ื™ื•ืขืจืš. ืื ื‘ื™ื˜ื•ื™ ื”ื˜ื™ืขื•ืŸ ื”ืจืืฉื•ืŸ
ืžื•ืขืจืš ืœ-false, ื”ืฆื”ืจืช else ืชื‘ื•ืฆืข ืื ืงื™ื™ืžืช. ืื—ืจืช ื”
ื›ืœ ื”ืฆื”ืจืช twixt() ืชื™ื“ืœื’.

ื”ื”ืฆื”ืจื” twixt() ืžื‘ื˜ื™ื—ื” ืฉื›ืœ ื”ืื™ืจื•ืขื™ื ื”ืœืœื• ื™ืชืจื—ืฉื• ื‘ืžืคืจื˜ ืฉืฆื•ื™ืŸ
ืกื“ืจ ืœืœื ืงืฉืจ ืœืื•ืคืŸ ืฉื‘ื• ื”-twixt() ื ื›ื ืก (ืžื‘ื—ื•ืฅ) ืื• ื™ืฆื™ืื”,
ื›ื•ืœืœ ื—ืจื™ื’ื™ื, ื”ืžืฉื›ื™ื ื•ื”ืคืกืงื•ืช. (ื”ืฉื•ื•ื” ืœืกืขื™ืฃ ``ืกื•ืฃ ืกื•ืฃ'' ืฉืœ Java.)

ื ืกื” S;

try S catch name (ืฉื T, ...) { S; ... };

try S catch name (ืฉื T, ...) { S; ... } ... ;
ื‘ืฆืข ืืช ื”ื”ืฆื”ืจื” ื”ืจืืฉื•ื ื” S. ืื ื”ื•ืขืœื” ื—ืจื™ื’ ื‘ืžื”ืœืš ื”ื‘ื™ืฆื•ืข, ื•ื”
ืฉื ืชื•ืื ืืช ื”ืฉื ื‘ื‘ืœื•ืง Catch, ืื’ื“ ืืช ื”ืคืจืžื˜ืจื™ื ื”ืคื•ืจืžืœื™ื™ื ื‘-catch
ืœื—ืกื•ื ืืช ื”ืคืจืžื˜ืจื™ื ื‘ืคื•ืขืœ ืฉืœ ื”ื—ืจื™ื’, ื•ืœื‘ืฆืข ืืช ื’ื•ืฃ ื”ืชืคื™ืกื”
ืœึทื—ืกื•ึนื. ื™ื™ืชื›ืŸ ืฉื™ื”ื™ื• ืžืกืคืจ ื‘ืœื•ืงื™ื ืฉืœ ืชืคื™ืกื” ื‘ื›ืœ ื ื™ืกื™ื•ืŸ. ืืคืก ืชื•ืคืกื™ื, ืœืžืจื•ืช ืฉื”ื ื—ื•ืงื™ื™ื, ื›ืŸ
ื—ืกืจ ืชื•ืขืœืช ื™ื—ืกื™ืช. ืœืื—ืจ ื”ืฉืœืžืช ื—ืกื™ืžืช ืชืคื™ืกื”, ื”ื‘ื™ืฆื•ืข ืžืžืฉื™ืš ืœืื—ืจ ืžื›ืŸ
ืกืขื™ืฃ ื”ื ื™ืกื™ื•ืŸ. ื›ืžื• ื‘ื›ืœ ื“ื‘ืจ ืื—ืจ, ืžืœื›ื•ื“ ื ืงืฉืจ ืœื ื™ืกื™ื•ืŸ ื”ืจืœื•ื•ื ื˜ื™ ื”ืื—ืจื•ืŸ-
ื‘ืœื•ืง ืœืชืคื•ืก.

ืœื”ืขืœื•ืช ืฉื (ืฉื, ืฉื,..., ืฉื)
ื”ืขืœื” ืืช ื”ื—ืจื™ื’ ื‘ืขืœ ื”ืฉื ืขื ืืคืก ืื• ื™ื•ืชืจ ืืจื’ื•ืžื ื˜ื™ื.

; ื”ืฆื”ืจืช ื”ืืคืก

ืœืฉื‘ื•ืจ; ื”ืคืกืง ืืช ื”ื‘ื™ืฆื•ืข ืฉืœ ื”ืฆื”ืจืช ื”ืžืฆื•ืจืคืช ื”ืงืจื•ื‘ื” ื‘ื™ื•ืชืจ ืขื‘ื•ืจ/do/while/switch/twixt.
ื‘ื™ื˜ื•ื™ ื”ืขื–ื™ื‘ื” ื™ื‘ื•ืฆืข ื›ืืฉืจ ื”ืฆื”ืจืช twixt ืชืฆื.

ืžืžืฉื™
ืกื ื™ืฃ ื™ืฉื™ืจื•ืช ืœืžื‘ื—ืŸ ื”ืžื•ืชื ื” ืฉืœ ื”ืžืชื—ื ื”ืงืจื•ื‘ ืœ/ืœืขืฉื•ืช/ ืชื•ืš ื›ื“ื™
ื”ืฆื”ืจื”.

ื—ื–ืจื” E;
ื”ื—ื–ืจ ืขืจืš E ืžื”ืคื•ื ืงืฆื™ื” ื”ืžืงื™ืคื” ื”ืงืจื•ื‘ื”.

ืžืจื—ื‘ื™ ืฉืžื•ืช:

ื›ืžื• Java ื•-C++ ืœื ื™ืงืœ ื™ืฉ ืžื•ืฉื’ ืฉืœ ืžืจื—ื‘ ืฉืžื•ืช, ืื•ืกืฃ ืฉืžื•ืช ืขื ื—ืœืงื™ืช
ืจืื•ืช ืžื•ื’ื‘ืœืช. ื‘-Nickle, ืžืจื—ื‘ื™ ืฉืžื•ืช ื ื•ืฆืจื™ื ืขื ื”- ืžืจื—ื‘ ืฉืžื•ืช ืคืงื•ื“ื”.

opt-P ืžืจื—ื‘ ืฉืžื•ืช N { S ... }
ืžืฆื™ื‘ ืืช ื›ืœ ื”ืฉืžื•ืช ืฉื”ื•ื’ื“ืจื• ื‘ื”ืฆื”ืจื•ืช S ืœืชื•ืš ืžืจื—ื‘ ืฉืžื•ืช ื‘ืฉื N. The
ื”ืกืžื›ื” ื”ืื•ืคืฆื™ื•ื ืœื™ืช P ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืžื™ืœืช ื”ืžืคืชื— ืฆื™ื‘ื•ืจื™ืช, ืืš ื”ื™ื–ื”ืจ: ื–ื” ืจืง ืžืฆื™ื™ืŸ
ืฉื”ืฉื N ืขืฆืžื• ื ืจืื” ื‘ืžืงื•ื ืื—ืจ ื‘ื”ื™ืงืฃ ื”ื ื•ื›ื—ื™, ื•ืื™ืŸ ืœื• ื›ืœื•ื
ืงืฉื•ืจ ืœื ืจืื•ืช ืฉืœ ืคืจื™ื˜ื™ื ื‘ืชื•ืš ืžืจื—ื‘ ื”ืฉืžื•ืช.

ืœื”ืจื—ื™ื‘ ืืช ืžืจื—ื‘ ื”ืฉืžื•ืช N { S ... }
ืคืชื— ืžื—ื“ืฉ ืืช ืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื ืชื•ืŸ N, ื•ื”ืจื—ื™ื‘ ืื•ืชื• ืขื ื”ืฉืžื•ืช ื”ืžื•ื’ื“ืจื™ื ื›ืฆื™ื‘ื•ืจื™ื™ื ื‘-
ื ืชื ื• ื”ืฆื”ืจื•ืช ืฉ.

ืฉืžื•ืช ื”ืžื•ื’ื“ืจื™ื ื‘ืชื•ืš ืžืจื—ื‘ ื”ืฉืžื•ืช ืื™ื ื ื ืจืื™ื ืžื—ื•ืฅ ืœืžืจื—ื‘ ื”ืฉืžื•ืช ืืœื ืื ื›ืŸ
ืžื•ืกืžื›ื™ื ืขื ืžื™ืœืช ื”ืžืคืชื— ืฆื™ื‘ื•ืจื™ืช. ื ื™ืชืŸ ืœื”ืคื ื•ืช ืœืฉืžื•ืช ืฆื™ื‘ื•ืจื™ื™ื ื‘ืืžืฆืขื•ืช ื
ืกื™ืžื•ืŸ ื ืชื™ื‘:
ืžืจื—ื‘ ืฉืžื•ืช::ืžืจื—ื‘ ืฉืžื•ืช::...::ืžืจื—ื‘ ืฉืžื•ืช::ืฉื
ืžืชื™ื™ื—ืก ืœืฉื ื”ื ืชื•ืŸ ื›ืคื™ ืฉื”ื•ื’ื“ืจ ื‘ืชื•ืš ืงื‘ื•ืฆืช ืžืจื—ื‘ื™ ื”ืฉืžื•ืช ื”ื ืชื•ื ื”. ื”
ืชื—ื‘ื™ืจ ื ืงื•ื“ืชื™ื™ื ื›ืคื•ืœ ื”ื•ื ืžืฆืขืจ, ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืฉื•ื ื” ื‘ืžืงืฆืช ื‘ืžืฉืžืขื•ืชื• ืžืืฉืจ ื‘
C++, ืื‘ืœ ื›ืœ ื”ืกืžืœื™ื ื”ื˜ื•ื‘ื™ื ื ืœืงื—ื•, ื•ืžืืžื™ื ื™ื ืฉื–ื• ืชื›ื•ื ื” ื–ื•
ืžืคืจื™ื“ ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉื•ื ื” ืžื‘ื—ื™ื ื” ืชื—ื‘ื™ืจื™ืช ืžืื•ืคืจื˜ื•ืจ ื”ืžื‘ื ื”. ื‘
Java, ืœืžืฉืœ, ื”ื‘ื™ื˜ื•ื™
ืฉื.ืฉื.ืฉื
ื”ื•ื ืžืขื•ืจืคืœ ืžื‘ื—ื™ื ื” ืชื—ื‘ื™ืจื™ืช: ื”ืฉื ื”ืืžืฆืขื™ ืขืฉื•ื™ ืœื”ื™ื•ืช ืžื‘ื ื” ืื• ื
ืžืจื—ื‘ ืฉืžื•ืช.

ื™ื™ื‘ื•ื โ€‹โ€‹N;
ื”ืฉื N ื—ื™ื™ื‘ ืœื”ืชื™ื™ื—ืก ืœืžืจื—ื‘ ืฉืžื•ืช: ื›ืœ ื”ืฉืžื•ืช ื”ืฆื™ื‘ื•ืจื™ื™ื ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ื”ื–ื” ื”ื
ื”ื•ื‘ื ืœื˜ื•ื•ื— ื”ื ื•ื›ื—ื™ (ื”ืงืคื“ื” ืขืœ ืฉืžื•ืช ืกื•ืชืจื™ื).

BUILTINS


ื ื™ืงืœ ื™ืฉ ืื•ืกืฃ ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ืžื•ื‘ื ื•ืช. ื—ืœืง ืžื”ืŸ ื›ืชื•ื‘ื•ืช ื‘-C,
ืื‘ืœ ืจื‘ื™ื ื›ืชื•ื‘ื™ื ื‘ื ื™ืงืœ. ืžืกืคืจ ืื•ืกืคื™ื ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืฉื™ืœื‘ื• ืžื•ื‘ื ื”
ืกื•ื’ื™ ื ืชื•ื ื™ื: ื™ืฉ ืœืจืื•ืช ืืช ืžืจื—ื‘ื™ ื”ืฉืžื•ืช ืฉืœื”ื, ื™ื—ื“ ืขื ื”ืกื•ื’ื™ื ืฉืœื”ื, ื›-ADTs.

ื”ืจืžื” ื”ืขืœื™ื•ื ื” ืžื‘ื ื™ื:

int printf(string fmt, poly args...)
ืงื•ืจื ืœืงื•ื‘ืฅ::fprintf(stdout, fmt, args ...) ื•ืžื—ื–ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœื•.

ืคื•ื ืงืฆื™ื™ืช ืžื—ืจื•ื–ืช ืžืงื‘ืœืช ()
ืงื•ืจื ืœืงื•ื‘ืฅ::fgets(stdin) ื•ืžื—ื–ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœื•.

ืคื•ื ืงืฆื™ื™ืช ืžื—ืจื•ื–ืช scanf (ืžื—ืจื•ื–ืช fmt, *poly args...)
ืงื•ืจื ืœืงื•ื‘ืฅ::vfscanf(stdin, fmt, args) ื•ืžื—ื–ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœื•.

ืคื•ื ืงืฆื™ื™ืช ืžื—ืจื•ื–ืช vscanf (ืžื—ืจื•ื–ืช fmt, (*poly)[*] args)
ืงื•ืจื ืœืงื•ื‘ืฅ::vfscanf(stdin, fmt, args) ื•ืžื—ื–ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœื•.

ืžืžืฉ ืœื ืžื“ื•ื™ืง (ืขืจืš ืจืฆื™ื•ื ืœื™)
ืจืื” ืืช ื”ื“ื™ื•ืŸ ื‘ืกื•ื’ ืืžื™ืชื™ ืœืžืขืœื”.

ืžืžืฉ ืœื ืžื“ื•ื™ืง (ืขืจืš ืจืฆื™ื•ื ืœื™, int prec)
ืจืื” ืืช ื”ื“ื™ื•ืŸ ื‘ืกื•ื’ ืืžื™ืชื™ ืœืžืขืœื”.

int string_to_integer(string s)

int atoi(ืžื—ืจื•ื–ืช s)
ื”ืืจื’ื•ืžื ื˜ s ื”ื•ื ืžื—ืจื•ื–ืช ืกืคืจื•ืช ื‘ืกื™ืžืŸ, ื•ื”ืชื•ืฆืื” ื”ื™ื ื”ืžืกืคืจ ื”ืฉืœื ืฉืœื”
ืžื™ื™ืฆื’. ืื ื”ืžื—ืจื•ื–ืช s ื”ื™ื ืชื—ื‘ื™ืจื™ืช ื”ืงืกื“ืฆื™ืžืœื™ืช, ืื•ืงื˜ืœื™ืช, ื‘ื™ื ืืจื™ืช ืื•
ืงื‘ื•ืข ื‘ืกื™ืก-10 ืžืคื•ืจืฉ, ื”ืชื™ื™ื—ืก ืืœื™ื• ื›ื›ื–ื”.

int string_to_integer(string s, int base)

int atoi(ืžื—ืจื•ื–ืช s, int base)
ื”ืชื™ื™ื—ืก ืœ-s ื›ืžื—ืจื•ื–ืช ืฉืœ ืกืคืจื•ืช ื‘ื‘ืกื™ืก ื”ื ืชื•ืŸ. ื‘ืกื™ืก ืฉืœ 0 ืคื•ืขืœ ื›ืžื• ืœืœื ื‘ืกื™ืก
ื˜ึทืขึฒื ึธื”. ืื—ืจืช, ืžืชืขืœืžื™ื ืžืชื—ื‘ื™ืจ ืžืคืจื˜ ื”ื‘ืกื™ืก ื‘ืžื—ืจื•ื–ืช.

int putchar(int c)
ื”ืฆื‘ ืืช ื”ืชื• ื”ื ืชื•ืŸ ืขืœ ื”ืคืœื˜ ื”ืกื˜ื ื“ืจื˜ื™ ื‘ืืžืฆืขื•ืช File::putc(c, stdout), ื•
ืœื”ื—ื–ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœื•.

int sleep (int msecs)
ื ืกื” ืœื”ืฉืขื•ืช ืืช ื”ืฉืจืฉื•ืจ ื”ื ื•ื›ื—ื™ ืœืžืฉืš ืืœืคื™ื•ืช ืฉื ื™ื•ืช ืœืคื—ื•ืช. ื”ื—ื–ืจ 1 ืขืœ
ื”ื—ื–ืจื” ืžื•ืงื“ืžืช, ื•-0 ืื—ืจืช.

int exit(int status)
ืฆื ืžื ื™ืงืœ ืขื ืงื•ื“ ื”ืžืฆื‘ ื”ื ืชื•ืŸ. ืืœ ืชื—ื–ื™ืจ ื›ืœื•ื.

int dim(poly[*] a)
ื‘ื”ื™ื ืชืŸ ืžืขืจืš ื—ื“-ืžืžื“ื™ a, dim() ืžื—ื–ื™ืจ ืืช ืžืกืคืจ ื”ืืœืžื ื˜ื™ื ืฉืœ a.

int[] dims(poly[] a)
ื‘ื”ื™ื ืชืŸ ืžืขืจืš ืฉืจื™ืจื•ืชื™ a, dims() ืžื—ื–ื™ืจ ืžืขืจืš ืฉืœ ืžืกืคืจื™ื ืฉืœืžื™ื ื ื•ืชืŸ ืืช ื”ื’ื•ื“ืœ ืฉืœ
ื›ืœ ืžื™ืžื“ ืฉืœ ื. ืœืคื™ื›ืš, dim(dims(a)) ื”ื•ื ืžืกืคืจ ื”ืžืžื“ื™ื ืฉืœ a.

*poly reference(poly v)
ื‘ื”ื™ื ืชืŸ ืขืจืš ืฉืจื™ืจื•ืชื™ v, ``box'' ืืช ื”ืขืจืš ื”ื–ื” ืœืื—ืกื•ืŸ ื•ื”ื—ื–ื™ืจ ืžืฆื‘ื™ืข ืืœื™ื•
ื”ืชื™ื‘ื”.

string_to_real(string s) ืจืฆื™ื•ื ืœื™

ืจืฆื™ื•ื ืœื™ atof(ืžื—ืจื•ื–ืช s)
ื”ืžืจ ืืช ื”ืžื—ืจื•ื–ืช ื”ืงื‘ื•ืขื” ื”ืืžื™ืชื™ืช s ืœืžืกืคืจ ื”ืืžื™ืชื™ ื”ืžืฉื•ื™ืš ืœื”.

ืžืกืคืจ abs (ืžืžืฉื™ v)
ื”ื—ื–ืจ ืืช ื”ืขืจืš ื”ืžื•ื—ืœื˜ ืฉืœ v. ืกื•ื’ ื”ืชื•ืฆืื” ืฉื ื‘ื—ืจ ื™ืชืื™ื ืœื ืชื•ืŸ
ื”ื”ืงืฉืจ.

int floor(real v)
ื”ื—ื–ืจ ืืช ื”ืžืกืคืจ ื”ืฉืœื ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ ืงื˜ืŸ ืื• ืฉื•ื•ื” ืœ-v. ื–ื” ื™ื™ื›ืฉืœ ืื v ื”ื•ื ืืžื™ืชื™
ื•ื”ื“ื™ื•ืง ื ืžื•ืš ืžื“ื™.

int ceil(real v)
ื”ื—ื–ืจ ืืช ื”ืžืกืคืจ ื”ืฉืœื ื”ืงื˜ืŸ ื‘ื™ื•ืชืจ ื”ื’ื“ื•ืœ ืื• ืฉื•ื•ื” ืœ-v. ื–ื” ื™ื™ื›ืฉืœ ืื v ื”ื•ื a
ืืžื™ืชื™ ื•ื”ื“ื™ื•ืง ื ืžื•ืš ืžื“ื™.

int exponent(ืจื™ืืœ v)
ื”ื—ื–ืจ ืืช ื”ืžืขืจื™ืš ืฉืœ ื”ืžืžืฉื™ ื”ืœื ืžื“ื•ื™ืง v.

ืžื ื˜ื™ืก ืจืฆื™ื•ื ืœื™ (ืžืžืฉื™ v)
ื”ื—ื–ืจ ืืช ื”ืžื ื˜ื™ืกื” ืฉืœ v ื”ืžืžืฉื™ ื”ืœื ืžื“ื•ื™ืง, ื›-m ืจืฆื™ื•ื ืœื™ ืขื 0 <= m <= 0.5 .

int ืžื•ื ื” (ืจืฆื™ื•ื ืœื™ v)
ื”ื—ื–ืจ ืืช ื”ืžื•ื ื” ืฉืœ ื”ืžืกืคืจ ื”ืจืฆื™ื•ื ืœื™ v: ื›ืœื•ืžืจ, ืื v = n/d ื‘ืฆื•ืจื” ืžื•ืคื—ืชืช,
ืœื—ื–ื•ืจ ื .

ืžื›ื ื” int (ืจืฆื™ื•ื ืœื™ v)
ื”ื—ื–ืจ ืืช ื”ืžื›ื ื” ืฉืœ ื”ืžืกืคืจ ื”ืจืฆื™ื•ื ืœื™ v: ื›ืœื•ืžืจ, ืื v = n/d ื‘ืฆื•ืจื” ืžื•ืคื—ืชืช,
ืœื—ื–ื•ืจ ื“.

int precision (real v)
ื”ื—ื–ืจ ืืช ืžืกืคืจ ืกื™ื‘ื™ื•ืช ื”ื“ื™ื•ืง ืฉืœ ื”ืžื ื˜ื™ืกื” ืฉืœ ื”ืžืกืคืจ ื”ืžืžืฉื™ ื”ืœื ืžื“ื•ื™ืง
v.

int sign (real v)
ื”ื—ื–ืจ -1 ืื• 1 ืฉื›ืŸ v ื”ื•ื ืฉืœื™ืœื™ ืื• ืœื ืฉืœื™ืœื™.

int bit_width(int v)
ื”ื—ื–ืจ ืืช ืžืกืคืจ ื”ืกื™ื‘ื™ื•ืช ื”ื ื“ืจืฉื•ืช ืœื™ื™ืฆื•ื’ abs(v) ืคื ื™ืžื™.

int is_int(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_rational(poly v)
ืคืจื“ื™ืงื˜ื™ื ืžืกื•ื’ ืžืกืคืจื™ ื›ื•ืœืœื™ื: ืœืžืฉืœ, ื”ื•ื_ืจืฆื™ื•ื ืœื™(1) ืžื—ื–ื™ืจ 1.

int is_number(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_string(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_file(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_thread(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_semaphore(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_continuation(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_array(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_ref(poly v)
ืคืจื“ื™ืงื˜ ืกื•ื’: ื‘ื•ื“ืง ืกื•ื’ ืžืฆื‘ื™ืข. ื ื™ืชืŸ ืœื˜ืขื•ืŸ ืฉื–ื• ืชื›ื•ื ื” ืฉื’ื•ื™ื”, ื•ืขืฉื•ื™ื”
ืœืฉื ื•ืช.

int is_struct(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_func(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int is_void(poly v)
ื”ืงืœื“ ืคืจื™ื“ื™ืงื˜.

int gcd(int p, int q)
ื”ื—ื–ืจ ืืช ื”-GCD ืฉืœ p ื•-q. ื”ืชื•ืฆืื” ืชืžื™ื“ ื—ื™ื•ื‘ื™ืช.

int xor(int a, int b)
ื”ื—ื–ืจ a ^ b . ื–ื” ื‘ืขื™ืงืจ ื”ื—ื–ืงื” ืžืœืคื ื™ ืฉืœื ื™ืงืœ ื”ื™ื” ืื•ืคืจื˜ื•ืจ xor.

poly setjmp(ื”ืžืฉืš *c, poly retval)
ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื setjmp() ื•-longjmp() ื™ื—ื“ ืขื ืกื•ื’ ื”ื”ืžืฉืš ื™ื•ืฆืจื™ื an
ADT ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจ ื”ืขื‘ืจื•ืช ื›ืžืขื˜ ืฉืจื™ืจื•ืชื™ื•ืช ืฉืœ ื–ืจื™ืžืช ืฉืœื™ื˜ื”. ื”-setjmp() ื•
ื”-longjmp() ื”ืžื•ื‘ื ื™ื ื“ื•ืžื™ื ืœืืœื• ืฉืœ C, ืืœื ืฉื”ื”ื’ื‘ืœื” ืฉ-longjmp()
ืชืžื™ื“ ืœืงืคื•ืฅ ื›ืœืคื™ ืžืขืœื” ืžื•ืกืจ(!): ื”ืžืฉืš ืฉื ืฉืžืจ ื‘ืืžืฆืขื•ืช setjmp() ืœืขื•ืœื ืœื ื”ื•ืคืš
ืœื ื—ื•ืงื™ ื‘ืžื”ืœืš ื—ื™ื™ ื”ืชื•ื›ื ื™ืช.

ื”-setjmp() ื”ืžื•ื‘ื ื” ืฉื•ืžืจ ืืช ื”ืžื™ืงื•ื ื”ื ื•ื›ื—ื™ ื•ืืช ื”ื”ืงืฉืจ ืœื”ืžืฉืš ืฉืœื•
ืืจื’ื•ืžื ื˜ ืžืฆื‘ื™ืข, ื•ืœืื—ืจ ืžื›ืŸ ืžื—ื–ื™ืจ ืืช ื”ืืจื’ื•ืžื ื˜ ื”ืฉื ื™ ืฉืœื•.

void longjmp (ื”ืžืฉืš c, poly retval)
ื”-longjmp() ื”ืžื•ื‘ื ื” ืœืขื•ืœื ืœื ื—ื•ื–ืจ ืœืืชืจ ื”ืฉื™ื—ื”, ืืœื ื—ื•ื–ืจ ืžื”-
setjmp() ืฉื™ืฆืจ ืืช ื”ื”ืžืฉืš, ืขื ืขืจืš ื”ื—ื–ืจื” ืฉื•ื•ื” ืœืฉื ื™
ืืจื’ื•ืžื ื˜ ืฉืœ longjmp().

ื”ื•ื“ืขืช ืžื—ืจื•ื–ืช
ื”ื”ื ื—ื™ื” ื”ื•ื“ืคืกื” ื‘ืžื”ืœืš ืฉื™ืžื•ืฉ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื‘ืจืžื” ื”ืขืœื™ื•ื ื”. ื‘ืจื™ืจืช ืžื—ื“ืœ "> ". ืžืชื™
ืžื—ื›ื” ืœืฉืืจ ื”ื”ืฆื”ืจื” ืื• ื”ื”ื‘ืขื”, ื•ื›ืืฉืจ ื ื™ืคื•ื™ ื‘ืื’ื™ื,
ื‘ื”ืชืืžื”. ืขืจื›ื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื "> ", "+ " ื•- "- ".

ืฉื•ืจืช ืžื—ืจื•ื–ืช 2
ื”ื”ื ื—ื™ื” ื”ืžื•ื“ืคืกืช ื‘ืžื”ืœืš ืฉื™ืžื•ืฉ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื‘ืขืช ื”ืžืชื ื” ืœืฉืืจ ื”ื”ืฆื”ืจื”
ืื• ื‘ื™ื˜ื•ื™. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ "+".

ืฉื•ืจืช ืžื—ืจื•ื–ืช 3
ื”ื”ื ื—ื™ื” ื”ื•ื“ืคืกื” ื‘ืžื”ืœืš ืฉื™ืžื•ืฉ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื‘ืขืช ืื™ืชื•ืจ ื‘ืื’ื™ื. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ "-".

ืคื•ืจืžื˜ ืžื—ืจื•ื–ืช
ื”ืคื•ืจืžื˜ printf() ืœื”ื“ืคืกืช ืขืจื›ื™ื ื‘ืจืžื” ื”ืขืœื™ื•ื ื”. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ "%g".

ื’ืจืกืช ืžื—ืจื•ื–ืช
ืžืกืคืจ ื”ื’ืจืกื” ืฉืœ ื™ื™ืฉื•ื Nickle ื”ืžื‘ื•ืฆืข ื›ืขืช.

ื‘ื ื™ื™ืช ืžื—ืจื•ื–ืช
ืชืืจื™ืš ื”ื‘ื ื™ื™ื” ืฉืœ ื™ื™ืฉื•ื Nickle ื”ืžื‘ื•ืฆืข ื›ืขืช, ื‘ื˜ื•ืคืก
"yyyy/mm/dd", ืื• "?" ืื ืชืืจื™ืš ื”ื‘ื ื™ื™ื” ืื™ื ื• ื™ื“ื•ืข ืžืกื™ื‘ื” ื›ืœืฉื”ื™.

ืงื•ื‘ืฅ ืกื˜ื“ื™ืŸ
ืงืฉื•ืจ ืœื–ืจื ื”ืงืœื˜ ื”ืกื˜ื ื“ืจื˜ื™.

ืกื˜ื“out ืงื•ื‘ืฅ
ืงืฉื•ืจ ืœื–ืจื ื”ืคืœื˜ ื”ืกื˜ื ื“ืจื˜ื™.

ืงื•ื‘ืฅ stderr
ืงืฉื•ืจ ืœื–ืจื ื”ืฉื’ื™ืื•ืช ื”ืกื˜ื ื“ืจื˜ื™.

ื—ืจื™ื’ื™ื:

ื›ืžื” ื—ืจื™ื’ื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ืžื•ืฆื”ืจื™ื ืžืจืืฉ ื•ื ืขืฉื” ื‘ื”ื ืฉื™ืžื•ืฉ ืคื ื™ืžื™ ืขืœ ื™ื“ื™ ื ื™ืงืœ.

ื—ืจื™ื’ื” uninitialized_value(string msg)
ื ืกื” ืœื”ืฉืชืžืฉ ื‘ืขืจืš ืœื ืžืื•ืชื—ืœ.

ื—ืจื™ื’ invalid_argument(string msg, int arg, poly val)
ืœืืจื’ื•ืžื ื˜ arg-th ืœืคื•ื ืงืฆื™ื” ืžื•ื‘ื ื™ืช ื”ื™ื” ืขืจืš ืœื ื—ื•ืงื™ val.

ื—ืจื™ื’ื” readonly_box(string msg, poly val)
ื ืกื” ืœืฉื ื•ืช ืืช ื”ืขืจืš ืฉืœ ื›ืžื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“ ืœ-val.

ื—ืจื™ื’ invalid_array_bounds(string msg, poly a, poly i)
ื ื™ืกื™ื•ืŸ ืœื’ืฉืช ืœืžืขืจืš a ื‘ืžื“ื“ i ื”ื•ื ืžื—ื•ืฅ ืœืชื—ื•ื.

ื—ืจื™ื’ื” divide_by_zero(ื”ื•ื“ืขื” ืžื—ืจื•ื–ืช, ืžืกืคืจ ืืžื™ืชื™, ืžืื•ืจื” ืืžื™ืชื™ืช)
ื ืกื” ืœื—ืœืง ืืช ื”ืžืกืคืจ ื‘ืžืื•ืจื” ืขื den == 0.

ื—ืจื™ื’ invalid_struct_member(ื”ื•ื“ืขื” ืžื—ืจื•ื–ืช, ืžื‘ื ื” ืคื•ืœื™, ืฉื ืžื—ืจื•ื–ืช)
ื ืกื” ืœื”ืชื™ื™ื—ืก ืœืฉื ืื™ื‘ืจ ืฉืœ ืžื‘ื ื” ื”ืื•ื‘ื™ื™ืงื˜, ืฉืื™ื ื• ืงื™ื™ื.

ื—ืจื™ื’ invalid_binop_values(string msg, poly arg1, poly arg2)
ื ืกื” ืœื”ืขืจื™ืš ืื•ืคืจื˜ื•ืจ ื‘ื™ื ืืจื™ ืขื args arg1 ื•- arg2, ื›ืืฉืจ ืœืคื—ื•ืช ืื—ื“
ืžื”ืขืจื›ื™ื ื”ืืœื” ืœื ื—ื•ืงื™.

ื—ืจื™ื’ invalid_unop_values(string msg, poly arg)
ื ืกื” ืœื”ืขืจื™ืš ืื•ืคืจื˜ื•ืจ unary ืขื ืืจื’ื•ืžื ื˜ ืœื ื—ื•ืงื™ arg.

ืžื•ื‘ื ื” ืžืจื—ื‘ื™ ืฉืžื•ืช:

Math ืคื•ื ืงืฆื™ื•ืช ื”ืžืชืžื˜ื™ืงื” ื”ื–ืžื™ื ื•ืช ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช Math ืžื™ื•ืฉืžื•ืช ื‘ืื•ืคืŸ
ืžื™ื•ืขื“ ืœื”ื™ื•ืช ืชื•ืื ืœืกืคืจื™ื™ืช C. ื ื ืœื”ืชื™ื™ืขืฅ ืขื ื”ืžืชืื™ื
ืžื“ืจื™ื›ื™ื ืœืคืจื˜ื™ื ื ื•ืกืคื™ื.

ืคืื™ ืืžื™ืชื™
ืงื‘ื•ืข ืœื ืžื“ื•ื™ืง ื ื•ืชืŸ ืืช ื”ืขืจืš ืฉืœ ื™ื—ืก ื”ื™ืงืฃ/ืงื•ื˜ืจ ืฉืœ
ืขื™ื’ื•ืœ ืœืคื™ ื“ื™ื•ืง ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ 256 ืกื™ื‘ื™ื•ืช.

ืžื•ื’ืŸ ืืžื™ืชื™ ื”
ืงื‘ื•ืข ืœื ืžื“ื•ื™ืง ื ื•ืชืŸ ืืช ื”ืขืจืš ืฉืœ ื‘ืกื™ืก ื”ืœื•ื’ืจื™ืชืžื™ื ื”ื˜ื‘ืขื™ื™ื ืœ-
ื“ื™ื•ืง ื‘ืจื™ืจืช ืžื—ื“ืœ ืฉืœ 256 ืกื™ื‘ื™ื•ืช. ืžื›ื™ื•ื•ืŸ ืฉ-e ืžื•ื’ืŸ, ื™ืฉ ืœื”ืคื ื•ืช ืืœื™ื• ื“ืจืš
Math::e, ืขืœ ืžื ืช ืœืžื ื•ืข ื‘ืขื™ื•ืช ื‘ืฉื™ืžื•ืฉ ื‘ืื•ืช ื”ื—ืžื™ืฉื™ืช ื‘ืืœืคื‘ื™ืช ื‘
ื”ืจืžื” ื”ืขืœื™ื•ื ื”.

real function sqrt(real v)
ืžื—ื–ื™ืจื” ืืช ื”ืฉื•ืจืฉ ื”ืจื™ื‘ื•ืขื™ ืฉืœ v.

real function cbrt(real v)
ืžื—ื–ื™ืจื” ืืช ืฉื•ืจืฉ ื”ืงื•ื‘ื™ื™ื” ืฉืœ v.

real function exp(real v)
ืžื—ื–ื™ืจื” e**v.

ื™ื•ืžืŸ ืคื•ื ืงืฆื™ื•ืช ืืžื™ืชื™ (ืืžื™ืชื™ ื)
ืžื—ื–ื™ืจื” v ื›ืš ืฉe**v == a. ื–ื•ืจืง ื—ืจื™ื’ invalid_argument ืื a ืื™ื ื•-
ื—ื™ื•ื‘ื™.

real function log10(real a)
ืžื—ื–ื™ืจื” v ื›ืš ืฉ-10**v == a. ื–ื•ืจืง ื—ืจื™ื’ invalid_argument ืื a ืื™ื ื•-
ื—ื™ื•ื‘ื™.

real function log2(real a)
ืžื—ื–ื™ืจื” v ื›ืš ืฉ-2**v == a. ื–ื•ืจืง ื—ืจื™ื’ invalid_argument ืื a ืื™ื ื•-
ื—ื™ื•ื‘ื™.

ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช pi_value(int prec)
ืžื—ื–ื™ืจื” ืืช ื”ื™ื—ืก ื‘ื™ืŸ ื”ื™ืงืฃ ืžืขื’ืœ ืœืงื•ื˜ืจ, ืขื ืกื™ื‘ื™ื•ืช ืžื•ืงื“ืžื•ืช
ืฉืœ ื“ื™ื•ืง.

ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช ื—ื˜ื (ืืžื™ืชื™ ื)
ืžื—ื–ื™ืจื” ืืช ื”ื™ื—ืก ื‘ื™ืŸ ื”ืฆืœืข ื”ื ื’ื“ื™ืช ืœืžืชื— ื”ื’ื•ื‘ื” ืฉืœ ื–ื•ื•ื™ืช a ืฉืœ ื™ืžื™ืŸ
ืžืฉื•ืœืฉ, ื ืชื•ืŸ ื‘ืจื“ื™ืื ื™ื.

Real function cos(real a)
ืžื—ื–ื™ืจื” ืืช ื”ื™ื—ืก ื‘ื™ืŸ ื”ืฆืœืข ื”ืกืžื•ื›ื” ืœืชื—ืชื™ืช ื”ื–ื•ื•ื™ืช a ืฉืœ ื™ืžื™ืŸ
ืžืฉื•ืœืฉ, ื ืชื•ืŸ ื‘ืจื“ื™ืื ื™ื.

void function sin_cos(real a, *real sinp, *real cosp)
ื—ื•ื–ืจ ืขื sin(a) ื•-cos(a) ื”ืžืื•ื—ืกื ื™ื ื‘ืžื™ืงื•ืžื™ื ืฉืืœื™ื”ื ื”ืฆื‘ื™ืข sinp ื•-cosp
ื‘ื”ืชืืžื”. ืื ืื—ื“ ื”ืžืฆื‘ื™ืขื™ื ื”ื•ื 0, ืืœ ืชืื—ืกืŸ ื‘ืžื™ืงื•ื ื–ื”. ืื•ืœื™
ืžืขื˜ ื™ื•ืชืจ ืžื”ื™ืจ ืžืืฉืจ ืงืจื™ืื” ืœืฉืชื™ ืคื•ื ืงืฆื™ื•ืช ื”ื”ื“ืง ื‘ื ืคืจื“.

ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช ืฉื™ื–ื•ืฃ (ืืžื™ืชื™ ื)
ืžื—ื–ื™ืจื” ืืช ื”ื™ื—ืก ื‘ื™ืŸ ื”ืฆืœืข ื”ื ื’ื“ื™ืช ืœืฆืœืข ื”ืกืžื•ื›ื” ืฉืœ ื–ื•ื•ื™ืช a ืฉืœ ื™ืžื™ืŸ
ืžืฉื•ืœืฉ, ื ืชื•ืŸ ื‘ืจื“ื™ืื ื™ื. ืฉื™ื ืœื‘ ืฉ-tan(pi/2) ืื™ื ื• ืฉื’ื™ืื” ื›ืจื’ืข: ื”ื™ื ืชื”ื™ื”
ืœื”ื—ื–ื™ืจ ืžืกืคืจ ื’ื“ื•ืœ ืžืื•ื“ ื‘ื”ืชืื ืœื“ื™ื•ืง ื”ืงืœื˜ ืฉืœื•.

ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช asin(ืจื™ืืœ v)
ืžื—ื–ื™ืจื” ื›ื–ื• ืฉsin(a) == v.

real function acos(real v)
ืžื—ื–ื™ืจื” ื›ื–ื• ืฉ-cos(a) == v.

ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช atan(ืจื™ืืœ v)
ืžื—ื–ื™ืจื” ื›ื–ื• ืฉtan(a) == v.

ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช atan2(ืžืžืฉื™ x, y)
ืžื—ื–ื™ืจื” ื›ื–ื• ืฉ-tan(a) == x / y. ืžืชืžื•ื“ื“ ื‘ืฆื•ืจื” ื ื›ื•ื ื” ืขื y == 0.

real function pow (real a, real b)
ื™ื™ืฉื•ื ื”ืžืคืขื™ืœ **.

ืงื•ื‘ืฅ ืžืจื—ื‘ ื”ืฉืžื•ืช File ืžืกืคืง ืคืขื•ืœื•ืช ืขืœ ืขืจื›ื™ ืงื‘ืฆื™ื.

int function fprintf(ืงื•ื‘ืฅ f, string s, ....)
ื”ื“ืคืก ืขืจื›ื™ื ืžืขื•ืฆื‘ื™ื ืœืงื•ื‘ืฅ, ื›ืžื• ืขื ืกืคืจื™ื™ืช UNIX stdio fprintf(). fprintf()
ื•-printf() ืžืงื‘ืœื™ื ืชืช-ืกื˜ ืกื‘ื™ืจ ืฉืœ ื’ืจืกืช ืกืคืจื™ื™ืช stdio: %c, %d, %e,
%x, %o, %f, %s, %g ืคื•ืขืœื™ื ื›ืฆืคื•ื™, ื•ื›ืš ื’ื %v ืœื”ื“ืคืกื” ื—ื›ืžื” ืฉืœ ืขืจืš. ืคื•ึผืจืžึธื˜
ื ื™ืชืŸ ืœืžืงื ืžืชืงื ื™ื ื‘ื™ืŸ ืกื™ืžืŸ ื”ืื—ื•ื– ืœืื•ืช ื”ืคื•ืจืžื˜ ืœืฉื™ื ื•ื™
ืขื™ืฆื•ื‘. ื™ืฉื ื ื”ืจื‘ื” ื‘ืื’ื™ื ื™ื“ื•ืขื™ื ืขื ืขื™ืฆื•ื‘ ืงืœื˜ ื•ืคืœื˜.

ืคื•ึผืจืžึธื˜ ืื•ืชื™ื•ืช:

%c ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืžืกืคืจ ืฉืœื ืงื˜ืŸ (0..255), ื•ืžืชืขืฆื‘ ื›-ASCII
ืื•ืคื™.

%d ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืฉืœ ืžืกืคืจ ืฉืœื, ื•ืžืชืขืฆื‘ ื›ืžืกืคืจ ืฉืœื.

%x ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืฉืœ ืžืกืคืจ ืฉืœื, ื•ืžืขืฆื‘ ื›ื‘ืกื™ืก-16 (ื”ืงืกื“ืฆื™ืžืœื™)
ืžืกืคืจ ืฉืœื.

%o ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืฉืœ ืžืกืคืจ ืฉืœื, ื•ืžืชืขืฆื‘ ื›ืžืกืคืจ ืฉืœื 8 (ืื•ืงื˜ืœื™).

%e ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืžืกืคืจ ื•ืคื•ืจืžื˜ื™ื ื‘ืชื•ื•ื™ื ืžื“ืขื™ื™ื.

%f ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืžืกืคืจ, ื•ืคื•ืจืžื˜ื™ื ื‘ืกื™ืžื•ืŸ ื ืงื•ื“ื” ืงื‘ื•ืขื”.

%s ื“ื•ืจืฉ ืืจื’ื•ืžื ื˜ ืžื—ืจื•ื–ืช, ื•ืคื•ืœื˜ ืืช ื”ืžื—ืจื•ื–ืช ืคืฉื•ื˜ื• ื›ืžืฉืžืขื•.

%g ื“ื•ืจืฉ ืžืกืคืจ, ื•ืžื ืกื” ืœื‘ื—ื•ืจ ื™ื™ืฆื•ื’ ืžื“ื•ื™ืง ื•ืงืจื™ื
ืœืขืฆื‘ ืื•ืชื•.

ืคื•ึผืจืžึธื˜ ืžืฉื ื”:

ืกืคืจื•ืช ื›ืœ ืชื•ื•ื™ ื”ืคื•ืจืžื˜ ื™ืงื‘ืœื• ืฉื™ื ื•ื™ ืคื•ืจืžื˜ ืฉืœ ืžืกืคืจ ืฉืœื ื”ืžืฆื™ื™ืŸ ืืช
ืžืกืคืจ ื”ื—ืกืจ ื‘ืฉื“ื” ื”ืคื•ืจืžื˜ ืขื‘ื•ืจ ื”ื ืชื•ื ื™ื ืœืขื™ืฆื•ื‘. ื”
ื”ืขืจืš ื™ื•ื“ืคืก ื‘ื”ืชืืžื” ื™ืžื ื™ืช ื‘ืžืงื•ื ื–ื”.

digits.digits
ื”ืคื•ืจืžื˜ื™ื ื”ืืžื™ืชื™ื™ื ื™ืงื‘ืœื• ื–ื•ื’ ืžืฉื ื™ื ืคื•ืจืžื˜ื™ื ืฉืœืžื™ื ื”ืžืฆื™ื™ื ื™ื ืืช
ืจื•ื—ื‘ ืฉื“ื” ื•ื“ื™ื•ืง (ืžืกืคืจ ื”ืชื•ื•ื™ื ืื—ืจื™ ื”ื ืงื•ื“ื” ื”ืขืฉืจื•ื ื™ืช) ืฉืœ
ืขืจืš ืžืขื•ืฆื‘. ื ื™ืชืŸ ืœื”ืฉืžื™ื˜ ื›ืœ ืื—ื“ ืžื”ืžืกืคืจื™ื ื”ืฉืœืžื™ื.

- ืขืจืš ื“ื™ื•ืง ื”ืžืฆื™ื™ืŸ ื“ื™ื•ืง ืื™ื ืกื•ืคื™.

* ื”ืืจื’ื•ืžื ื˜ ื”ื‘ื ืœ-fprintf() ื”ื•ื ืžืกืคืจ ืฉืœื ื”ืžืฆื™ื™ืŸ ืืช ืจื•ื—ื‘ ื”ืฉื“ื” ืื•
ื“ื™ื•ืง ื”ืขืจืš ื”ืžืขื•ืฆื‘.

ืคื•ื ืงืฆื™ื™ืช ื”ืงื•ื‘ืฅ string_write()
ื”ื—ื–ืจ ืงื•ื‘ืฅ ืฉืื•ืกืฃ ืขืจื›ื™ื ื›ืชื•ื‘ื™ื ืœืžื—ืจื•ื–ืช.

int function close(ืงื•ื‘ืฅ f)
ืกื’ื•ืจ ืงื•ื‘ืฅ f ื•ื”ื—ื–ืจ ืื™ื ื“ื™ืงืฆื™ื” ืœื”ืฆืœื—ื”.

int function flush(ืงื•ื‘ืฅ f)
ืฉื˜ืคื• ืืช ื”ืžืื’ืจื™ื ืฉืœ ืงื•ื‘ืฅ f ื•ื”ื—ื–ืจื• ืื™ื ื“ื™ืงืฆื™ื” ืœื”ืฆืœื—ื”.

int function getc(ืงื•ื‘ืฅ f)
ืงื‘ืœ ืืช ื”ืชื• ื”ื‘ื ืžืงื•ื‘ืฅ f ื•ื”ื—ื–ืจ ืื•ืชื•.

int function end(ืงื•ื‘ืฅ f)
ืžื—ื–ื™ืจื” true ืื ื”ืงื•ื‘ืฅ f ื ืžืฆื ื‘-EOF, ืื—ืจืช false.

ืฉื’ื™ืืช ืคื•ื ืงืฆื™ื” int (ืงื•ื‘ืฅ f)
ืžื—ื–ื™ืจื” true ืื ืžืžืชื™ื ื” ืฉื’ื™ืื” ื‘ืงื•ื‘ืฅ f, ืื—ืจืช false.

int function clear_error(ืงื•ื‘ืฅ f)
ืžื ืงื” ืฉื’ื™ืื•ืช ืžืžืชื™ื ื•ืช ื‘ืงื•ื‘ืฅ f, ื•ืžื—ื–ื™ืจ ืื™ื ื“ื™ืงืฆื™ื” ืœื”ืฆืœื—ื”.

ืคื•ื ืงืฆื™ื™ืช ื”ืงื•ื‘ืฅ string_read(string s)
ืžื—ื–ื™ืจื” ืงื•ื‘ืฅ ื•ื™ืจื˜ื•ืืœื™ ืฉืชื•ื›ื ื• ื”ื•ื ื”ืžื—ืจื•ื–ืช s.

string function string_string(ืงื•ื‘ืฅ f)
ื”ื—ื–ืจ ืืช ื”ืžื—ืจื•ื–ืช ืฉื ื›ืชื‘ื” ืงื•ื“ื ืœืงื•ื‘ืฅ f, ืฉื”ื™ื” ืฆืจื™ืš ืœื”ื™ื•ืช
ื ื•ืฆืจ ืขืœ ื™ื“ื™ string_read() ืื• string_write(). ื”ื”ืชื ื”ื’ื•ืช ื‘ืงื‘ืฆื™ื ืื—ืจื™ื ื”ื™ื ื›ืจื’ืข
ืœื ืžื•ื’ื“ืจ.

ืคื•ื ืงืฆื™ื™ืช ืงื•ื‘ืฅ ืคืชื•ื—ื” (ื ืชื™ื‘ ืžื—ืจื•ื–ืช, ืžืฆื‘ ืžื—ืจื•ื–ืช)
ืคืชื— ืืช ื”ืงื•ื‘ืฅ ื‘ื ืชื™ื‘ ื”ื ืชื•ืŸ ืขื ืžื—ืจื•ื–ืช ื”ืžืฆื‘ ื”ื ืชื•ื ื”, ala UNIX stdio fopen().
ื”ืžืฆื‘ื™ื ื”ืžื•ืชืจื™ื ื”ื ื›ืžื• ื‘-stdio: "r", "w", "x", "r+", "w+" ื•-"x+".

ืคื•ื ืงืฆื™ื™ืช ืžืกืคืจ ืฉืœื fputc(ืžืกืคืจ ืฉืœื c, ืงื•ื‘ืฅ f)
ืคืœื˜ ืืช ื”ืชื• c ืœืงื•ื‘ืฅ ื”ืคืœื˜ f, ื•ื”ื—ื–ืจ ืื™ื ื“ื™ืงืฆื™ื” ืœื”ืฆืœื—ื”.

ืคื•ื ืงืฆื™ื™ืช ืžืกืคืจ ืฉืœื ungetc(ืžืกืคืจ ืฉืœื c, ืงื•ื‘ืฅ f)
ื“ื—ื•ืฃ ืืช ื”ืชื• c ื‘ื—ื–ืจื” ืœืงื•ื‘ืฅ ื”ืงืœื˜ f, ื•ื”ื—ื–ืจ ืื™ื ื“ื™ืงืฆื™ื” ืฉืœ
ื”ืฆืœื—ื”.

ืคื•ื ืงืฆื™ื™ืช ืžืกืคืจ ืฉืœื setbuf(ืงื•ื‘ืฅ f, ืžืกืคืจ ืฉืœื n)
ื”ื’ื“ืจ ืืช ื’ื•ื“ืœ ื”ืžืื’ืจ ื”ืžืฉื•ื™ืš ืœืงื•ื‘ืฅ f ืœ-n, ื•ื”ื—ื–ืจ ืืช n.

string function fgets (ืงื•ื‘ืฅ f)
ืงื‘ืœ ืฉื•ืจืช ืงืœื˜ ืžืงื•ื‘ืฅ f, ื•ื”ื—ื–ืจ ืืช ื”ืžื—ืจื•ื–ืช ืฉื”ืชืงื‘ืœื”.

file function pipe (ื ืชื™ื‘ ืžื—ืจื•ื–ืช, ืžื—ืจื•ื–ืช[*] argv, ืžืฆื‘ ืžื—ืจื•ื–ืช)
ื”ืคืขืœ ืืช ื”ืชื•ื›ื ื™ืช ื‘ื ืชื™ื‘ ื”ื ืชื•ืŸ, ื”ื—ื–ืจ ืงื•ื‘ืฅ ืฉื”ื•ื ืงืฆื” ืื—ื“ ืฉืœ a
"ืฆื™ื ื•ืจ" ืœืชื”ืœื™ืš ื”ื ืชื•ืŸ. ืืจื’ื•ืžื ื˜ ื”ืžืฆื‘ ื™ื›ื•ืœ ืœื”ื™ื•ืช "r" ื›ื“ื™ ืœืงืจื•ื ืžื”ืฆื™ื ื•ืจ ืื•
"w" ื›ื“ื™ ืœื›ืชื•ื‘ ืœืฆื™ื ื•ืจ. ื”ืืจื’ื•ืžื ื˜ argv ื”ื•ื ืžืขืจืš ืฉืœ ืžื—ืจื•ื–ื•ืช ืฉื ื•ืชื ื•ืช ืืช
ื˜ื™ืขื•ื ื™ื ืฉื™ื•ืขื‘ืจื• ืœืชื•ื›ื ื™ืช, ื›ืืฉืจ argv[0] ื‘ื“ืจืš ื›ืœืœ ื”ื•ื
ืฉื ื”ืชื•ื›ื ื™ืช.

int function print (ืงื•ื‘ืฅ f, poly v, string fmt, int base, int width, int prec, string
ืœืžืœื)
ื”ื“ืคืก ืขืจืš v ืœืงื•ื‘ืฅ f ื‘ืคื•ืจืžื˜ fmt ืขื ื”ื‘ืกื™ืก, ื”ืจื•ื—ื‘, ื”-prec ื•ื”ืžื™ืœื•ื™ ื”ื ืชื•ื ื™ื.
ื‘ืฉื™ืžื•ืฉ ืคื ื™ืžื™ ืขืœ ื™ื“ื™ File::fprintf();

int function fscanf(ืงื•ื‘ืฅ f, ืžื—ืจื•ื–ืช fmt, *poly args...)
ืžืœื ืืช ื”ืžื™ืงื•ืžื™ื ืขืœื™ื”ื ืžืฆื‘ื™ืขื™ื ืžืขืจืš args ื‘ืขืจื›ื™ื ืฉื ืœืงื—ื• ืžืงื•ื‘ืฅ f
ืœืคื™ ืžื—ืจื•ื–ืช fmt. ืžืคืจื˜ื™ ื”ืคื•ืจืžื˜ ื”ื ื›ืžื• ื‘-UNIX stdio scanf():
ืžืคืจื˜ื™ "%d", "%e", "%f", "%c" ื•-"%s" ื ืชืžื›ื™ื ืขื ื”ืฆืคื•ื™
ืžืฉื ื™ื.

int function vfscanf (ืงื•ื‘ืฅ f, ืžื—ืจื•ื–ืช fmt, (*poly)[*] args)
ื‘ื”ื™ื ืชืŸ ื”ืงื•ื‘ืฅ f, ื”ืคื•ืจืžื˜ fmt ื•ืžืขืจืš ื”ืืจื’ื•ืžื ื˜ื™ื args, fscanf()
ื›ืจืื•ื™.

Thread ืžืจื—ื‘ ื”ืฉืžื•ืช Thread ืชื•ืžืš ื‘ืคืขื•ืœื•ืช ืฉื•ื ื•ืช ืฉื™ืžื•ืฉื™ื•ืช ืœืชื›ื ื•ืช ืื™ืชื
ืืฉื›ื•ืœื•ืช, ื”ืžืกืคืงื™ื ื–ืจื™ืžืช ืฉืœื™ื˜ื” ื‘ืžืงื‘ื™ืœ ื‘ืžืจื—ื‘ ื”ื›ืชื•ื‘ื•ืช ื”ืžืฉื•ืชืฃ.
ื™ืฉ ื—ืชื™ื›ื” ืื—ืช ืฉืœ ืชื—ื‘ื™ืจ ืžื™ื•ื—ื“ ื”ืงืฉื•ืจ ืœื—ื•ื˜ื™ื.

ืžื–ืœื’ (E)
ืžืงื‘ืœ ื‘ื™ื˜ื•ื™ ืฉืจื™ืจื•ืชื™ ื•ืžืขืจื™ืš ืื•ืชื• ื‘ืฉืจืฉื•ืจ ืฆืืฆื ื—ื“ืฉ.
ื—ื•ื˜ ื”ืื‘ ืžืงื‘ืœ ืืช ื”ืฉืจืฉื•ืจ ื›ืขืจืš ื‘ื™ื˜ื•ื™ ื”ืžื–ืœื’.

ืฉืืจ ืคื•ื ืงืฆื™ื•ืช ื”-Thread ื”ืŸ ืกื˜ื ื“ืจื˜ื™ื•ืช ืœืžื“ื™.

int function kill (ืจืฉื™ืžืช ืฉืจืฉื•ืจื™ื...)
ื”ื•ืจื’ ื›ืœ ืฉืจืฉื•ืจ ืคื•ืขืœ ื‘ืจืฉื™ืžืช ื”ืžืขืจืš. ืœืœื ื•ื™ื›ื•ื—ื™ื, ื”ื•ืจื’ ืืช
ืฉืจืฉื•ืจ ืคื•ืขืœ ื›ืจื’ืข. ืžื—ื–ื™ืจื” ืืช ืžืกืคืจ ื”ืฉืจืฉื•ืจื™ื ืฉื ื”ืจื’ื•.

int function trace (ืจืฉื™ืžืช ืคื•ืœื™...)
ืžืฆื™ื’ ืืช ื”ืžืฆื‘ ืฉืœ ื›ืœ ืฉืจืฉื•ืจ ืคื•ืขืœ ื‘ืจืฉื™ืžืช ื”ืžืขืจืš. ื‘ืœื™ ื•ื™ื›ื•ื—ื™ื,
ืขื•ืงื‘ ืื—ืจ ื”ืžืฉืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ืžื—ื–ื™ืจื” ืืช ืžืกืคืจ ื”ืฉืจืฉื•ืจื™ื ืฉื”ืชื—ืงื• ืื—ืจื™ื”ื.

int function cont()
ืžืžืฉื™ืš ื‘ื‘ื™ืฆื•ืข ืฉืœ ื›ืœ ืฉืจืฉื•ืจ ืฉื ืงื˜ืข, ื•ืžื—ื–ื™ืจ ืืช ืžืกืคืจ ื”ื”ืžืฉืš
ื—ื•ื˜ื™ื.

ืคื•ื ืงืฆื™ื™ืช thread current()
ื”ื—ื–ืจ ืืช ื”ืฉืจืฉื•ืจ ื”ื ื•ื›ื—ื™.

int function list()
ืžื“ื•ื•ื— ืขืœ ื”ืฉืจืฉื•ืจ ื”ืคื•ืขืœ ื›ืขืช ืœ-stdout.

int function get_priority(thread t)
ืžื“ื•ื•ื— ืขืœ ื”ืขื“ื™ืคื•ืช ืฉืœ ื”ืฉืจืฉื•ืจ ื”ื ืชื•ืŸ.

ืคื•ื ืงืฆื™ื™ืช thread id_to_thread(int id)
ืžื—ื–ื™ืจ ืืช ื”ืฉืจืฉื•ืจ ืขื ื”ืžื–ื”ื” ื”ื ืชื•ืŸ, ืื ื ืžืฆื, ื•-0 ืื—ืจืช.

poly function join(thread t)
ืžืžืชื™ืŸ ืฉื”ืฉืจืฉื•ืจ t ื™ืกืชื™ื™ื, ื•ืžื—ื–ื™ืจ ืืช ื›ืœ ืžื” ืฉื”ื•ื ืžื—ื–ื™ืจ.

int function set_priority(thread t, int i)
ืžื ืกื” ืœื”ื’ื“ื™ืจ ืืช ื”ืขื“ื™ืคื•ืช ืฉืœ thread t ืœืจืžื” i, ื•ืžื—ื–ื™ืจื” ืืช ื”ืขื“ื™ืคื•ืช ื”ื—ื“ืฉื”.
ืกื“ืจ ืขื“ื™ืคื•ื™ื•ืช ื’ื“ื•ืœ ื™ื•ืชืจ ืื•ืžืจ ื™ื•ืชืจ ื–ืžืŸ ืจื™ืฆื”: ืžืฉื™ืžื” ืขื ืขื“ื™ืคื•ืช ื’ื‘ื•ื”ื” ื™ื•ืชืจ ืชืžื™ื“ ืชืคืขืœ
ื‘ืžืงื•ื ืžืฉื™ืžื” ื‘ืขื“ื™ืคื•ืช ื ืžื•ื›ื” ื™ื•ืชืจ. ื ื•ืฉืื™ื ื‘ืขืœื™ ืขื“ื™ืคื•ืช ืฉื•ื•ื” ื‘ื™ื•ืชืจ ื™ื”ื™ื• ืžืจืืฉ
ืจื™ื‘ื•ื™ ืžืฉื™ืžื•ืช.

ืกืžืคื•ืจ
ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ืกืžืคื•ืจ ืžืงืคืœ ืคืขื•ืœื•ืช ื‘-ADT ื”ืžื•ื‘ื ื” ื‘ืกืžืคื•ืจ. ื
ืกืžืคื•ืจ ืžืฉืžืฉ ืœืกื ื›ืจื•ืŸ ื—ื•ื˜ื™ื. ื›ืœ ืคืขื•ืœืช ืื•ืช() ื‘-
ืกืžืคื•ืจ ืžืขื•ืจืจ ืืช ื”ืฉืจืฉื•ืจ ื”ื›ื™ ืคื—ื•ืช ืขื“ื›ื ื™ ืœื—ื›ื•ืช() ืขืœ ื”ืกืžืคื•ืจ ื”ื–ื”. ื”
``ืกืคื™ืจื”'' ืฉืœ ืชื”ืœื™ื›ื™ ื”ืžืชื ื” ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืžื•ื’ื“ืจืช ื‘ื–ืžืŸ ื™ืฆื™ืจืช ื”ืกืžืคื•ืจ.

ืคื•ื ืงืฆื™ื™ืช ืกืžืคื•ืจ new(int c)
ืฆื•ืจ ืกืžืคื•ืจ ื—ื“ืฉ ืขื ืกืคื™ืจื” ืจืืฉื•ื ื™ืช ืฉืœ ืชื”ืœื™ื›ื™ ื”ืžืชื ื”. ืื c ื”ื•ื
ื—ื™ื•ื‘ื™, ื–ื” ืื•ืžืจ ืฉื—ืจื•ื˜ื™ื c ืขืฉื•ื™ื™ื ืœื—ื›ื•ืช ืขืœ ื”ืกืžืคื•ืจ ืœืคื ื™ ืฉืื—ื“ ื—ื•ืกื. ืื
c ื”ื•ื ืฉืœื™ืœื™, ื”ื•ื ืงื•ื‘ืข ืกืคื™ืจื” ืฉืœ ืฉืจืฉื•ืจื™ื ืฉื—ื™ื™ื‘ื™ื ืœื”ืžืชื™ืŸ ืขืœ ื”ืกืžืคื•ืจ
ืœืคื ื™ ื”ืžืชื ื” ื ื•ืกืคืช ืœื ืชื—ืกื•ื.

ืคื•ื ืงืฆื™ื™ืช ืกืžืคื•ืจ new()
ืฉื‚ึดื™ื—ึธื” ืกืžืคื•ืจ(0) ื•ืœื”ื—ื–ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœื•.

ืื•ืช int (ืกืžืืคื•ืจ s)
ื”ื’ื“ืœ ืกืžืคื•ืจ s. ืื s ืื™ื ื• ื—ื™ื•ื‘ื™, ื•ืฉืจืฉื•ืจ ื›ืœืฉื”ื• ื—ืกื•ื ื‘-s,
ืฉื—ืจืจ ืืช ื”ืฉืจืฉื•ืจ ื”ืคื—ื•ืช ื—ืกื•ื. ื”ื—ื–ืจ 1 ืขืœ ื”ืฆืœื—ื”.

int wait (ืกืžืืคื•ืจ s)
ื”ืงื˜ื ืช ืกืžืคื•ืจ s. ืื s ืฉืœื™ืœื™ืช, ื—ืกื•ื ืขื“ ืœืฉื—ืจื•ืจ. ื”ื—ื–ืจ 1 ืขืœ
ื”ืฆืœื—ื”.

ืžื‘ื—ืŸ int (ืกืžืืคื•ืจ s)
ื‘ื“ื•ืง ืื wait() ื‘-semaphore s ื™ื’ืจื•ื ืœื—ืกื™ืžืช ื”ืฉืจืฉื•ืจ ื”ื ื•ื›ื—ื™. ืื ื›ืš,
ื”ื—ื–ืจ 0. ืื—ืจืช, ื ืกื” ืœื”ืคื—ื™ืช ืืช s, ื•ื”ื—ื–ืจ 1 ืื ืชืฆืœื™ื—.

String ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ String ืžื›ื™ืœ ื›ืžื” ืคืขื•ืœื•ืช ื‘ืกื™ืกื™ื•ืช ื‘ืžื—ืจื•ื–ืช ADT.

ืื•ืจืš ืคื•ื ืงืฆื™ื™ืช int (ืžื—ืจื•ื–ืช s)
ืžื—ื–ื™ืจื” ืืช ืžืกืคืจ ื”ืชื•ื•ื™ื ื‘-s.

ืคื•ื ืงืฆื™ื™ืช ืžื—ืจื•ื–ืช ื—ื“ืฉื” (int c)
ืžื—ื–ื™ืจ ื›ืžื—ืจื•ื–ืช ืืช ื”ืชื• ื”ื‘ื•ื“ื“ c.

ืคื•ื ืงืฆื™ื™ืช string new(int cv[*])
ืžื—ื–ื™ืจื” ืžื—ืจื•ื–ืช ื”ืžื•ืจื›ื‘ืช ืžื”ืชื•ื•ื™ื ืฉืœ cv.

int function index(ืžื—ืจื•ื–ืช t, ืžื—ืจื•ื–ืช p)
ืžื—ื–ื™ืจื” ืืช ืื™ื ื“ืงืก ื”ืžืกืคืจื™ื ื”ืฉืœืžื™ื ืฉืœ ืžื—ืจื•ื–ืช ื”ืชื‘ื ื™ืช p ื‘ืžื—ืจื•ื–ืช ื”ื™ืขื“ t, ืื• -1 if
p ืื™ื ื” ืžื—ืจื•ื–ืช ืžืฉื ื” ืฉืœ t.

string function substr(string s, int i, int l)
ืžื—ื–ื™ืจื” ืืช ื”ืžื—ืจื•ื–ืช ื”ืžืฉื ื” ืฉืœ ื”ืžื—ืจื•ื–ืช s ืฉืžืชื—ื™ืœื” ืขื ื”ืชื• ื‘ื”ื™ืกื˜ i (ืืคืก-
ืžื‘ื•ืกืก) ื•ืžืžืฉื™ืš ืœืžืฉืš ืกืš ืฉืœ l ืชื•ื•ื™ื. ืื l ืฉืœื™ืœื™, ื”ืžื—ืจื•ื–ืช ื”ืžืฉื ื”
ื™ื•ืจื›ื‘ ืžืชื•ื•ื™ื ื”ืงื•ื“ืžื™ื ื•ืœื ืื—ืจื™ i.

PRNG ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ PRNG ืžืกืคืง ื™ืฆื™ืจื” ื•ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ืžืกืคืจื™ื ืคืกืื•ื“ื•-ืืงืจืื™ื™ื. ื”
ืžื—ื•ืœืœ ื”ืœื™ื‘ื” ื”ื•ื ืžื—ื•ืœืœ ืฆื•ืคืŸ ื–ืจื RC4, ืžืื•ื’ื“ ื›ื”ืœื›ื”. ื–ึถื”
ืœืกืคืง ื–ืจื ืฉืœ ื‘ื™ื˜ื™ื ืคืกืื•ื“ื•-ืืงืจืื™ื™ื ืžืื•ื‘ื˜ื—ื™ื ื‘ืื•ืคืŸ ืกื‘ื™ืจ
ืขืœื•ืช ืžื•ืคื—ืชืช. (ืื‘ืœ ื”ื™ื–ื”ืจ, ื”ืืชื—ื•ืœ ืžืขื˜ ื™ืงืจ.)

void function srandom(int s)
ืืชื—ื•ืœ ื”ืžื—ื•ืœืœ, ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืžืกืคืจ ื”ืฉืœื (ื‘ืื•ืคืŸ ืฉืจื™ืจื•ืชื™-ื’ื“ื•ืœ) ื‘ืชื•ืจ ื–ืจืข.

void function dev_srandom(int nbits)
ืืชื—ื•ืœ ื”ืžื—ื•ืœืœ, ื‘ืืžืฆืขื•ืช ืกื™ื‘ื™ื•ืช nbits ืฉืœ ืื ื˜ืจื•ืคื™ื” ื”ืžืชืงื‘ืœื•ืช ืžื›ืžื” ืกื‘ื™ืจื™ื
ืžืงื•ืจ ืื ื˜ืจื•ืคื™ื”. ื‘ืžืขืจื›ื•ืช UNIX, ืžืงื•ืจ ื–ื” ื”ื•ื /dev/urandom. ืžื‘ืงืฉ ืขื•ื“
ืื ื˜ืจื•ืคื™ื” ืจืืฉื•ื ื™ืช ืžื–ื• ืฉื™ืฉ ืœืžืขืจื›ืช ืขืœื•ืœื” ืœื”ื•ื‘ื™ืœ ืœืืชื—ื•ืœ (ื›ืžื• ื‘-UNIX)
ืื• ืœืชืœื™ื”, ืื– ื”ืฉืชืžืฉ ื‘ื–ื”ื™ืจื•ืช.

int function randbits(int n)
ืžื—ื–ื™ืจ n-ืงืฆืช ืžืกืคืจ ืคืกืื•ื“ื• ืืงืจืื™, ื‘ื˜ื•ื•ื— 0..(2**n)-1. ืฉื™ืžื•ืฉื™ ืœื“ื‘ืจื™ื
ื›ืžื• RSA.

int function randint(int n)
ืžื—ื–ื™ืจื” ืžืกืคืจ ืคืกืื•ื“ื• ืืงืจืื™ ื‘ื˜ื•ื•ื— 0..n-1.

void function shuffle(*(poly[*]) a)
ืžื‘ืฆืข ืขื™ืจื•ื‘ ืืžื™ืชื™ ื‘ืžืงื•ื ื™ืขื™ืœ (cf Knuth) ืฉืœ ืžืขืจืš a.

ืคื™ืงื•ื“
ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ื”ืคืงื•ื“ื” ืžืฉืžืฉ ืืช ื”ืคืงื•ื“ื•ืช ื‘ืจืžื” ื”ืขืœื™ื•ื ื” ื›ืžืชื•ืืจ ืœื”ืœืŸ. ื–ื”
ื’ื ืฉื™ืžื•ืฉื™ ืžื“ื™ ืคืขื ื‘ืคื ื™ ืขืฆืžื•.

string library_path
ืžื›ื™ืœ ืืช ื ืชื™ื‘ ื”ื—ื™ืคื•ืฉ ื”ื ื•ื›ื—ื™ ืฉืœ ื”ืกืคืจื™ื™ื”, ืจืฉื™ืžื” ืžื•ืคืจื“ืช ื‘ื ืงื•ื“ืชื™ื™ื ืฉืœ ืกืคืจื™ื•ืช ืืœ
ืœื—ืคืฉ ืงื‘ืฆื™ ืกืคืจื™ื™ื”.

int function undefine (ืฉื ืžื—ืจื•ื–ืช)
ืžื™ื™ืฉื ืืช ื”ืคืงื•ื“ื” ื”ื‘ืœืชื™ ืžื•ื’ื“ืจ ื‘ืจืžื” ื”ืขืœื™ื•ื ื”. ื”ืกืจ ืืช ื”ืฉื ื”ืžืกื•ืžืŸ ื‘ืฉื ื”ืžื—ืจื•ื–ืช
ืžืžืจื—ื‘ ื”ืฉืžื•ืช. ืคืขื•ืœื” ื–ื• ืžืกื™ืจื” ืืช ื›ืœ ื”ื”ื’ื“ืจื•ืช ื”ื’ืœื•ื™ื•ืช ืฉืœ ื”ืฉื.

int function undefine(string[*] names)
ื”ืกืจ ื›ืœ ืื—ื“ ืžื”ืฉืžื•ืช ื‘ืฉืžื•ืช ื”ืžืขืจืš ืžืžืจื—ื‘ ื”ืฉืžื•ืช. ื–ื” ืžืกื™ืจ ื”ื›ืœ
ื”ื’ื“ืจื•ืช ื’ืœื•ื™ื•ืช ืฉืœ ื›ืœ ืฉื.

int function delete (ืฉื ืžื—ืจื•ื–ืช)
ื ืกื” ืœื”ืกื™ืจ ืืช ื”ืคืงื•ื“ื” ืขื ืฉื ื”ืžื—ืจื•ื–ืช ื”ื ืชื•ืŸ ืžื”ืคืงื•ื“ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”
ืจืฉื™ืžื”, ื•ื”ื—ื–ืจ 1 ืื ืชืฆืœื™ื—.

int function lex_file(ื ืชื™ื‘ ืžื—ืจื•ื–ืช)
ื ืกื” ืœื”ืคื•ืš ืืช ื”ืงื•ื‘ืฅ ื‘ื ืชื™ื‘ ื”ื ืชื•ืŸ ืœืžืงื•ืจ ื”ื ื•ื›ื—ื™ ืฉืœ ืงื•ื“ ื ื™ืงืœ, ื•
ื”ื—ื–ืจ 1 ืื ืชืฆืœื™ื—. ืฉื™ื ืœื‘ ืฉื–ื” ืœืžืขืฉื” ``ื›ื•ืœืœ'' ืืช ื”ืงื•ื‘ืฅ ืขืœ ื™ื“ื™
ื“ื•ื—ืคื™ื ืื•ืชื• ืœืขืจื™ืžืช ืงื‘ืฆื™ื ืœืขื™ื‘ื•ื“.

int function lex_library(ืฉื ืงื•ื‘ืฅ ืžื—ืจื•ื–ืช)
ื›ืžื• lex_file(), ืื‘ืœ ืžื—ืคืฉ ื‘ืกืคืจื™ื•ืช ืฉื ื™ืชื ื• ืขืœ ื™ื“ื™ ื” library_path ืžืฉืชื ื”
ืขื‘ื•ืจ ื”ืงื•ื‘ืฅ ื”ืจืืฉื•ืŸ ืขื ืฉื ื”ืงื•ื‘ืฅ ื”ื ืชื•ืŸ.

int function lex_string(ืงื•ื“ ืžื—ืจื•ื–ืช)
ื ื™ืกื™ื•ืŸ ืœื”ืคื•ืš ืืช ืงื•ื“ ื”ื ื™ืงืœ ื”ื›ืœื•ืœ ื‘ืงื•ื“ ื”ืžื—ืจื•ื–ืช ืœื”ื™ื•ืช ื”ืงืœื˜ ื”ื‘ื.

int function edit(string[*] names)
ืžื™ื™ืฉื ืืช ืคืงื•ื“ืช ื”ืขืจื™ื›ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”. ื”ืฉืžื•ืช ื‘ืžืขืจืš ื”ื ื ืชื™ื‘ ืฉืœ
ืฉืžื•ืช ืžืจื—ื‘ื™ ืฉืžื•ืช ื”ืžื•ื‘ื™ืœื™ื ืœืฉื ื”ืกืžืœ, ืฉื”ื•ื ืื—ืจื•ืŸ.

int function new (ืฉื ืžื—ืจื•ื–ืช, poly func)
ืคื•ื ืงืฆื™ื™ืช ื”-Binds ืคื•ืขืœืช ืœืฉื ืžื—ืจื•ื–ืช ื”ืคืงื•ื“ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”: ื›ืœื•ืžืจ, ื”ื•ืคื›ืช ืื•ืชื” ืœื—ืœืง ืžืžื ื”
ืื•ืฆืจ ื”ืžื™ืœื™ื ืœืคื™ืงื•ื“ ื‘ืจืžื” ื”ืขืœื™ื•ื ื”.

int function new_names(ืฉื ืžื—ืจื•ื–ืช, poly func)
ืคื•ื ืงืฆื™ื™ืช ื”-Binds ืคื•ืขืœืช ืœืฉื ืžื—ืจื•ื–ืช ื”ืคืงื•ื“ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”: ื›ืœื•ืžืจ, ื”ื•ืคื›ืช ืื•ืชื” ืœื—ืœืง ืžืžื ื”
ืื•ืฆืจ ื”ืžื™ืœื™ื ืœืคื™ืงื•ื“ ื‘ืจืžื” ื”ืขืœื™ื•ื ื”. ืฉืœื ื›ืžื• new(), ืฉืžื•ืช ื”ืžื—ืจื•ื–ื•ืช ืฉื ื™ืชื ื• ืœ-func at
ื”ืจืžื” ื”ืขืœื™ื•ื ื” ืžื•ืขื‘ืจืช ืœืœื ื”ืขืจื›ื” ื›ืžืขืจืš ืฉืœ ืฉืžื•ืช ืžื—ืจื•ื–ื•ืช ืื• ื›ื™ื—ื™ื“ื”
ืฉื ืžื—ืจื•ื–ืช.

int function pretty_print(ืงื•ื‘ืฅ f, ืžื—ืจื•ื–ืช[*] ืฉืžื•ืช)
ืžื™ื™ืฉื ืืช ืคืงื•ื“ืช ื”ื”ื“ืคืกื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”. ื›ืœ ืื—ืช ืžืžื—ืจื•ื–ื•ืช ื”ืฉืžื•ืช ืฉืขื‘ืจื• ื ื‘ื“ืงืช
ืœืžืขืœื” ื•ื”ืงื•ื“ ื”ืžืชืื™ื ืžื•ื“ืคืก ืœืงื•ื‘ืฅ f.

ืชืฆื•ื’ืช ืคื•ื ืงืฆื™ื™ืช int (ืžื—ืจื•ื–ืช fmt, poly val)
ืžืฉืชืžืฉ ื‘-printf() ื›ื“ื™ ืœื”ืฆื™ื’ ืืช ื”ืขืจืš val ื‘ืคื•ืจืžื˜ fmt.

ื”ึดื™ืกื˜ื•ึนืจึดื™ึธื”
ื ื™ืงืœ ืฉื•ืžืจืช ืขืœ ื”ื™ืกื˜ื•ืจื™ื™ืช ืขืจื›ื™ื ื‘ืจืžื” ื”ืขืœื™ื•ื ื”, ืฉื™ืžื•ืฉื™ืช ื›ืชื•ืกืคืช ืœืฉื•ืจืช ื”ืคืงื•ื“ื”
ืขืจื™ื›ื” ื‘ืขืช ื—ื™ืฉื•ื‘. ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ ื”ื”ื™ืกื˜ื•ืจื™ื” ืžื›ื™ืœ ืคื•ื ืงืฆื™ื•ืช ืœื’ื™ืฉื” ืœื–ื”
ื”ื”ื™ืกื˜ื•ืจื™ื”.

int function show (string fmt)
ืžื™ื™ืฉื ืืช ื”ืคืงื•ื“ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื” ื‘ื”ื™ืกื˜ื•ืจื™ื” ืœืœื ืืจื’ื•ืžื ื˜ื™ื. ื”ืฆื’ ืืช ื”ืื—ืจื•ืŸ
ืขืจื›ื™ ื”ื™ืกื˜ื•ืจื™ื” ืขื ืคื•ืจืžื˜ fmt.

int function show (ืžื—ืจื•ื–ืช fmt, int count)
ืžื™ื™ืฉื ืืช ื”ืคืงื•ื“ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื” ื‘ื”ื™ืกื˜ื•ืจื™ื” ืขื ืืจื’ื•ืžื ื˜ ืื—ื“. ื”ืฆื’ ืืช ื”ืกืคื™ืจื” ื”ืื—ืจื•ื ื”
ืขืจื›ื™ ื”ื™ืกื˜ื•ืจื™ื” ืขื ืคื•ืจืžื˜ fmt.

int function show (ืžื—ืจื•ื–ืช fmt, int first, int last)
ืžื™ื™ืฉื ืืช ื”ืคืงื•ื“ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื” ื‘ื”ื™ืกื˜ื•ืจื™ื” ืขื ืฉื ื™ ืืจื’ื•ืžื ื˜ื™ื.

ื”ื•ืกืคืช ืคื•ื ืงืฆื™ื•ืช ืคื•ืœื™ (ืคื•ืœื™ ื•ืืœ)
ื”ื›ื ืก val ื‘ืจืฉื™ืžืช ื”ื”ื™ืกื˜ื•ืจื™ื” ื•ื”ื—ื–ืจ ืื•ืชื•.

ืžึตืกึทื‘
ืœืžืขืจื›ื•ืช ื”ืคืขืœื” ืจื‘ื•ืช ื™ืฉ ืžื•ืฉื’ ื›ืœืฉื”ื• ืฉืœ ``ืžืฉืชื ื™ ืกื‘ื™ื‘ื”'' ื”ืกื‘ื™ื‘ื”
ืžืจื—ื‘ ื”ืฉืžื•ืช ืžื›ื™ืœ ืคื•ื ืงืฆื™ื•ืช ืœืชืžืจืŸ ืืœื”.

int function check (ืฉื ืžื—ืจื•ื–ืช)
ืžื—ื–ื™ืจื” 1 ืื ื”ืžืฉืชื ื” ืขื ื”ืฉื ื”ืคืจื˜ื™ ื ืžืฆื ื‘ืกื‘ื™ื‘ื”, ื•-0
ืื—ืจืช.

ืคื•ื ืงืฆื™ื™ืช string get(ืฉื ืžื—ืจื•ื–ืช)
ื ื™ืกื™ื•ื ื•ืช ืœืื—ื–ืจ ื•ืœื”ื—ื–ื™ืจ ืืช ื”ืขืจืš ืฉืœ ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ืขื ื”-
ืฉื ืคืจื˜ื™. ื–ื•ืจืง ื—ืจื™ื’ invalid_argument ืื ื”ืžืฉืชื ื” ืื™ื ื• ื–ืžื™ืŸ.

int function unset (ืฉื ืžื—ืจื•ื–ืช)
ืžื ืกื” ืœื‘ื˜ืœ ืืช ื”ื”ื’ื“ืจื” ืฉืœ ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ืขื ื”ืฉื ื”ื ืชื•ืŸ, ื•ืžื—ื–ื™ืจื” an
ืื™ื ื“ื™ืงืฆื™ื” ืœื”ืฆืœื—ื”.

ืกื˜ ืคื•ื ืงืฆื™ื•ืช ืžื—ืจื•ื–ืช (ืฉื ืžื—ืจื•ื–ืช, ืขืจืš ืžื—ืจื•ื–ืช)
ื ื™ืกื™ื•ื ื•ืช ืœื”ื’ื“ื™ืจ ืืช ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ืขื ื”ืฉื ื”ื ืชื•ืŸ ืœืขืจืš ื”ื ืชื•ืŸ,
ื•ืžื—ื–ื™ืจ ืื™ื ื“ื™ืงืฆื™ื” ืœื”ืฆืœื—ื”.

ืคืงื•ื“ื•ืช


ืœื ื™ืงืœ ื™ืฉ ืงื‘ื•ืฆื” ืฉืœ ืคืงื•ื“ื•ืช ืฉืขืฉื•ื™ื•ืช ืœื”ื™ื ืชืŸ ื‘ืจืžื” ื”ืขืœื™ื•ื ื”.

ืฆื ืžื™ืฆื™ืื” ื ื™ืงืœ.

ืฆื ืž-E ืฆื ืžื ื™ืงืœ ืขื ืงื•ื“ ืกื˜ื˜ื•ืก ืฉืœื E.

ื‘ื˜ืœ ืืช ื”ื’ื“ืจืช ื”ืฉื {,NAME}
ื”ืกืจ ืืช ื”ืฉืžื•ืช ื”ืœืœื• ืžื”ืžืขืจื›ืช.

ื˜ืขืŸ E ื˜ืขืŸ ืงื•ื‘ืฅ ืฉื ื™ืชืŸ ื‘ืฉื ื”ืžื—ืจื•ื–ืช E.

ืกืคืจื™ื” E
ื˜ืขืŸ ืกืคืจื™ื™ื” ื”ื ื™ืชื ืช ื‘ืฉื ื”ืžื—ืจื•ื–ืช E. ืจืื” ืืช ื”ื“ื™ื•ืŸ ื‘-NICKLEPATH
ืžืฉืชื ื” ืกื‘ื™ื‘ื” ื‘-ENVIRONMENT ืœื”ืœืŸ, ื•ื”ื“ื™ื•ืŸ ืขืœ
Command::library_path ืœืžืขืœื”.

E # E ื”ื“ืคืก expr1 ื‘ื‘ืกื™ืก expr2.

ื”ื“ืคืก ืืช NAME
ื”ืฆื’ ื’ืจืกื” ืžืขื•ืฆื‘ืช ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ื”ืžืกื•ืžืŸ ื‘-NAME. ื”ืขืจื•ืช ื•ืžืงื•ืจื™ื•ืช
ื”ืขื™ืฆื•ื‘ ืื‘ื“ื•. ืื NAME ื”ื•ื ืžืฉืชื ื”, ื”ื“ืคืก ืืช ื”ืกื•ื’ ื•ื’ื ืืช ื”ืขืจืš.

ืขืจื•ืš ืฉื
ื”ืคืขืœ ืืช $EDITOR ืขืœ ื”ืื•ื‘ื™ื™ืงื˜ ืฉืฉืžื•, ื•ืฉืœื‘ื• ืžื—ื“ืฉ ืืช ืชื•ืฆืื•ืช ื”ืขืจื™ื›ื”.
ื–ื” ื”ื›ื™ ืฉื™ืžื•ืฉื™ ืขื ืคื•ื ืงืฆื™ื•ืช.

ื”ื™ืกื˜ื•ืจื™ื”
ื”ืฆื’ ืืช 10 ื”ืขืจื›ื™ื ืฉื”ื•ื“ืคืกื• ืœืื—ืจื•ื ื”. ื ื™ืชืŸ ืœื’ืฉืช ืืœื™ื”ื ื‘ืืžืฆืขื•ืช $n ืื™ืคื” n
ื”ื•ื ื”ืžืกืคืจ ื”ืžื•ืฆื’ ืžื™ืžื™ืŸ ืœืขืจืš ื‘ืจืฉื™ืžื” ื–ื•.

ื”ื™ืกื˜ื•ืจื™ื” E
ื”ืฆื’ ืืช ืขืจื›ื™ ื”ื”ื™ืกื˜ื•ืจื™ื” ื”ืขื“ื›ื ื™ื™ื ื‘ื™ื•ืชืจ ืฉืœ E.

ื”ื™ืกื˜ื•ืจื™ื” E,E
ื”ืฆื’ ืขืจื›ื™ ื”ื™ืกื˜ื•ืจื™ื” ืžื”ืžืกืคืจ ื”ืฉืœื ื”ืจืืฉื•ืŸ E ืขื“ ื”ืฉื ื™.

ืžื ืคื”


ื›ืืฉืจ ื—ืจื™ื’ ืœื ืžื˜ื•ืคืœ ืžื’ื™ืข ืœืจืžื” ื”ืขืœื™ื•ื ื” ื‘ืžื”ืœืš ื”ื‘ื™ืฆื•ืข, ื”ืžืฉืชืžืฉ ืžืงื‘ืœ ืžืงืฃ
ื”ื ื—ื™ื”, ื”ืžืฆื™ื™ื ืช ืฉืžืฆื‘ ื ื™ืคื•ื™ ื‘ืื’ื™ื ืคืขื™ืœ. ื‘ืžืฆื‘ ื–ื”, ืกื‘ื™ื‘ืช ืฉื•ืจืช ื”ืคืงื•ื“ื”
ื”ื•ื ื–ื” ืฉื‘ื• ื”ื•ืขืœื” ื”ื—ืจื™ื’ ืฉืœื ื˜ื•ืคืœื•. ื‘ื ื•ืกืฃ ืžืกืคืจ ืื™ืชื•ืจ ื‘ืื’ื™ื
ืคืงื•ื“ื•ืช ื–ืžื™ื ื•ืช ืœืžืฉืชืžืฉ:

trace ืงื‘ืœ ืžื—ืกื ื™ืช ืื—ื•ืจื” ื”ืžืจืื” ืืช ื”ืžืฆื‘ ื”ื ื•ื›ื—ื™, ื›ืžื• ื‘ืคืงื•ื“ื” GDB where.

ืœืžืขืœื” ืขื‘ืจื• ืœืžืขืœื” ื‘ืขืจื™ืžื” (ื›ืœื•ืžืจ, ืœื›ื™ื•ื•ืŸ ื”ื‘ื™ื˜ื•ื™ ื‘ืจืžื” ื”ืขืœื™ื•ื ื”) ืืœื GDB.

ืœืžื˜ื” ื–ื– ืœืžื˜ื” ื‘ืขืจื™ืžื” (ื›ืœื•ืžืจ, ืœื›ื™ื•ื•ืŸ ื”ื”ืงืฉืจ ื”ื ื•ื›ื—ื™) ืืœื GDB.

ื‘ื•ืฆืข ืขื–ื•ื‘ ืืช ืžืฆื‘ ื ื™ืคื•ื™ ื”ื‘ืื’ื™ื, ื ื˜ื™ืฉืช ื”ื‘ื™ืฆื•ืข.

ื‘ื ื•ืกืฃ, ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ Debug ื ืžืฆื ื‘ืžืฆื‘ ืื™ืชื•ืจ ื‘ืื’ื™ื. ื–ื” ื‘ืขื™ืงืจ
ืฉื™ืžื•ืฉ ื‘ืื™ืชื•ืจ ื‘ืื’ื™ื ืฉืœ Nickle ืขืฆืžื”.

ืœืืกื•ืฃ()
ื”ืคืขืœ ืืช ืื•ืกืฃ ื”ืืฉืคื”.

dump(ืคื•ื ืงืฆื™ื”)
ื”ื“ืคืก ืืช ืงื•ื“ ื”ื‘ืชื™ื ื”ืžื”ื•ื“ืจ ืขื‘ื•ืจ ื”ืคื•ื ืงืฆื™ื”.

ื”ืกื‘ื™ื‘ื”


EDITOR ื”ืขื•ืจืš ื”ืžืฉืžืฉ ืืช ืคืงื•ื“ืช ื”ืขืจื™ื›ื”, ื”ืžืชื•ืืจืช ื‘ืคืงื•ื“ื•ืช ืœืžืขืœื”.

NICKLERC
ื”ืžื™ืงื•ื ืฉืœ ืงื•ื‘ืฅ ื”-.nicklerc ืฉืœ ื”ืžืฉืชืžืฉ, ืฉื™ื™ื˜ืขืŸ ื‘ืชื—ื™ืœืช
ื‘ื™ืฆื•ืข ื ื™ืงืœ ืื ืืคืฉืจ.

HOME ืžืฉืžืฉ ืœืžืฆื™ืืช ื”-.nicklerc ืฉืœ ื”ืžืฉืชืžืฉ ืื NICKLERC ืื™ื ื• ืžื•ื’ื“ืจ.

NICKLEPATH
ื ืชื™ื‘ ืžื•ืคืจื“ ื‘ื ืงื•ื“ืชื™ื™ื ืฉื”ืจื›ื™ื‘ื™ื ืฉืœื• ื”ื ืกืคืจื™ื•ืช ื”ืžื›ื™ืœื•ืช ืงื•ื“ ื ื™ืงืœ. ื”
ืคืงื•ื“ืช ื”ืกืคืจื™ื™ื” ื•ื”ื“ื’ืœ -l, ื”ืžืชื•ืืจ ืœืขื™ืœ, ื—ืคืฉื• ื‘ื ืชื™ื‘ ื–ื” ืฉื ืงื•ื‘ืฅ
ืชื•ืื ืœืงื•ื‘ืฅ ื”ื ืชื•ืŸ. ื ืชื™ื‘ ืกืคืจื™ื™ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ื”ื™ืขื“ืจ ืžืฉืชื ื” ื–ื”
ื”ื•ื /usr/share/nickle.

NICKLESTART
ืฉื ื”ืงื•ื‘ืฅ ืฉืœ ื”ืงื•ื‘ืฅ ืฉืืžื•ืจ ืœื”ื™ื˜ืขืŸ ื›-bootstrap ื‘ื”ืคืขืœื” ืฉืœ Nickle.
ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ื”ื™ืขื“ืจ ืžืฉืชื ื” ื–ื” ื”ื™ื ืœื˜ืขื•ืŸ
/usr/share/nickle/builtin.5c.

ื“ื•ื’ืžืื•ืช


ื“ื•ื’ืžื” (ืœืงื•ื—ื” ืžื”- bc ืžื“ืจื™ืš ืœ:

ืžืขืจื™ืš ืคื•ื ืงืฆื™ื” ืืžื™ืชื™ืช (ืžืžืฉ x) {
ืืžื™ืชื™ a = 1;
int b = 1;
s ืืžื™ืชื™ = 1;
int i = 1;
ื‘ืขื•ื“ (1) {
a = a * x;
b = b * i;
ืืžื™ืชื™ c = a / b;
if (abs(c) < 1e-6)
Return s;
s = s + c;
i ++;
}
}

ืžื’ื“ื™ืจ ืคื•ื ืงืฆื™ื” ืœื—ื™ืฉื•ื‘ ืขืจืš ืžืฉื•ืขืจ ืฉืœ ื”ืคื•ื ืงืฆื™ื” ื”ืžืขืจื™ื›ื™ืช e ** x ื•

ืขื‘ื•ืจ (i = 1; i < 10; i++)
printf ("%g\n", ืžืขืจื™ืš (i));

ืžื“ืคื™ืก ืขืจื›ื™ื ืžืฉื•ืขืจื™ื ืฉืœ ื”ืคื•ื ืงืฆื™ื” ื”ืžืขืจื™ื›ื™ืช ืฉืœ ืขืฉืจืช ื”ืžืกืคืจื™ื ื”ืฉืœืžื™ื ื”ืจืืฉื•ื ื™ื.

ื’ึดืจึฐืกึธื”


ืžืกืžืš ื–ื” ืžืชืืจ ืืช ื’ืจืกื” 1.99.2 ืฉืœ nickle, ื›ืžื• ื’ื ื›ืžื” ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ื™ื•ืชืจ. ื–ื” ื”ื™ื”
ืžื•ืคืฅ ืขื ื’ืจืกื” 2.77 ืฉืœ nickle.

ื”ืฉืชืžืฉ ื‘-nickle ื‘ืื™ื ื˜ืจื ื˜ ื‘ืืžืฆืขื•ืช ืฉื™ืจื•ืชื™ onworks.net


ืฉืจืชื™ื ื•ืชื—ื ื•ืช ืขื‘ื•ื“ื” ื‘ื—ื™ื ื

ื”ื•ืจื“ ืืคืœื™ืงืฆื™ื•ืช Windows & Linux

ืคืงื•ื“ื•ืช ืœื™ื ื•ืงืก

Ad