cproc - C рднрд╛рд╖реЗрд╕рд╛рдареА рдирд╡реАрди рдХреЙрдореНрдкреЕрдХреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░

рд╡реЗрд▓рдБрдб рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд swc рдХрдВрдкреЛрдЭрд┐рдЯ рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рд╡рд┐рдХрд╛рд╕рдХ, рдорд╛рдпрдХреЗрд▓ рдлреЛрд░реНрдиреА, C11 рдорд╛рдирдХ рдЖрдгрд┐ рдХрд╛рд╣реА GNU рд╡рд┐рд╕реНрддрд╛рд░рд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░рд╛ рдПрдХ рдирд╡реАрди cproc рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ. рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХрдВрдкрд╛рдЗрд▓рд░ QBE рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪрд╛ рдмреЕрдХрдПрдВрдб рдореНрд╣рдгреВрди рд╡рд╛рдкрд░ рдХрд░рддреЛ. рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб C рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рд╡рд┐рдирд╛рдореВрд▓реНрдп ISC рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рд╡рд┐рдХрд╛рд╕ рдЕрджреНрдпрд╛рдк рдкреВрд░реНрдг рдЭрд╛рд▓реЗрд▓рд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдмрд╣реБрддреЗрдХ C11 рддрдкрд╢реАрд▓рд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рд╕рдзреНрдпрд╛ рд╕рдорд░реНрдерд┐рдд рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдордзреНрдпреЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓-рд▓реЗрдВрде рдЕреЕрд░реЗ, рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░, рдкреАрдЖрдпрдИ (рдкреЛрдЭрд┐рд╢рди рдЗрдВрдбрд┐рдкреЗрдВрдбрдВрдЯ рдХреЛрдб) рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдЪреА рдирд┐рд░реНрдорд┐рддреА рдЖрдгрд┐ рд╕рд╛рдорд╛рдпрд┐рдХ рд▓рд╛рдпрдмреНрд░рд░реА, рдЗрдирд▓рд╛рдЗрди рдЕрд╕реЗрдВрдмрд▓рд░, "рд▓рд╛рдБрдЧ рдбрдмрд▓" рдкреНрд░рдХрд╛рд░, _рдереНрд░реЗрдб_рд▓реЛрдХрд▓ рд╕реНрдкреЗрд╕рд┐рдлрд╛рдпрд░, рдЕрд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░, рдкреНрд░реАрдлрд┐рдХреНрд╕рд╕рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рдЖрд╣реЗрдд. (рдПрд▓"...").

рддреНрдпрд╛рдЪ рд╡реЗрд│реА, cproc рдЪреА рдХреНрд╖рдорддрд╛ рдЖрдзреАрдЪ рд╕реНрд╡рддрдГ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╢реА рдЖрд╣реЗ, mcpp, gcc 4.7, binutils рдЖрдгрд┐ рдЗрддрд░ рдореВрд▓рднреВрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ. рдЗрддрд░ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕рдордзреАрд▓ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдлрд░рдХ рдореНрд╣рдгрдЬреЗ рдХреЙрдореНрдкреЕрдХреНрдЯ рдЖрдгрд┐ рдЬрдЯрд┐рд▓ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдгреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдмреЕрдХрдПрдВрдб рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ рдЬреЛ рдкреНрд░рдЧрдд рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕рдЪреНрдпрд╛ рдХрд╛рдордЧрд┐рд░реАрдЪреНрдпрд╛ 70% рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЛ, рдкрд░рдВрддреБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЛрдареНрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕рдЪреНрдпрд╛ 10% рдЪреНрдпрд╛ рдЖрдд рдЖрд╣реЗ. Glibc, bsd libc рдЖрдгрд┐ Musl рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╣ Linux рдЖрдгрд┐ FreeBSD рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ x86_64 рдЖрдгрд┐ aarch64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдмрд┐рд▓реНрдбрд┐рдВрдЧрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛