Mybuild - рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА

Qt рдХреЗ рд▓рд┐рдП рдирдП рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд╛рд▓ рдХреЗ рдПрдХ рд▓реЗрдЦ рдиреЗ рдореБрдЭреЗ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛ рджреА рдЬреЛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдереА - рддрдм рд╣рдо рдПрдХ рдЙрдкрдпреБрдХреНрдд рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рднреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рдереЗред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд▓рдЪреАрд▓реА рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо Mybuild рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдмрд┐рд▓реНрд▓реА рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ Embox рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдУрдПрд╕ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рд▓рдЪреАрд▓реА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЫреЛрдЯрд╛ рдерд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдм рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ), рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд╡-рдирд┐рд░реНрдорд┐рдд рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдереЗ, рдЙрдирдореЗрдВ рд╣рдо рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рднреА рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рд╡рд┐рдЪрд╛рд░ рдкреНрд░рдХрдЯ рд╣реБрдП рдХрд┐ рд╣рдо рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╡рд░реНрдгрди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдореЙрдбреНрдпреВрд▓, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдирдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдПрдХ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА


рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рднреВрдЦ рдЦрд╛рдиреЗ рд╕реЗ рдЖрддреА рд╣реИред рдХрд╛рд░реНрдпрд╢реАрд▓рддрд╛ (рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмреИрд╕рд╛рдЦреА) рдПрдХ рд╕реНрдиреЛрдмреЙрд▓ рдХреА рддрд░рд╣ рдмрдврд╝ рд░рд╣реА рдереА, рдпрд╣ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рд░реНрдорд┐рдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд▓рд╛рднрд╣реАрди рд╣реЛ рдЧрдпрд╛, рдФрд░ рдпрд╣ рдмрд╕ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛, рдФрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╣рдордиреЗ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдореЗрдХ рдФрд░ рдЙрд╕рдХреЗ рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рд▓реЗрдЦ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдордиреЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП Kbuild рдЕрд╕реЗрдВрдмрд▓реА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВ рдЦреБрдж рдХреЛ рдЙрд╕рдХреА рдереЛрдбрд╝реА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реВрдВред

рдмреЗрд╢рдХ, рд╡рд╣рд╛рдБ рдлрд╛рдпрджреЗ рд╣реИрдВ:

рдПрдХ рд░рд╛рд╕реНрддрд╛ рдпрд╛ рджреВрд╕рд░рд╛, рдЙрд╕ рд╕рдордп рд╣рдореЗрдВ рдпрд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓реА рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЫреЛрдЯреЗ рд╡рд┐рдХрд╛рд╕ рдереЗ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдФрд░ рд╣рдорд╛рд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддреЛ, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдирд┐рдпрдорд┐рдд рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА рдереА, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рд╢реБрджреНрдз GNU рдореЗрдХ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛


"рд╢реБрджреНрдз рдЬреАрдПрдирдпреВ рдореЗрдХ" рдкрд░, рдореИрдВ рдереЛрдбрд╝рд╛ рдЪрд╛рд▓рд╛рдХ рдерд╛ред рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдореИрдиреБрдЕрд▓ рд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рднрд╛рд╖рд╛ рдХреА рдЧрд░реАрдмреА рдХреА рдУрд░ рднреА рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рд╣рдордиреЗ рд╢реБрд░реВ рдХреА, рд╡рд╣ рднрд╛рд╖рд╛ рдХреА рд╡рд┐рдХрдЯрддрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╡рд┐рд╖рдп "рдЕрд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рд╣рдм рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХрд╛ рд╣рдХрджрд╛рд░ рд╣реИ, рдпрд╣рд╛рдВ рдореИрдВ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реВрдВрдЧрд╛ (рд╢рд╛рдпрдж рдХреЛрдИ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдЖрдПрдЧрд╛)ред

рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ рд╕реБрдзрд╛рд░

рднрд╛рд╖рд╛ рдмрдирд╛рдУ рд▓рд╛рдЗрди-рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдмреИрдХрд╕реНрд▓реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐ рдпрд╣ рдмрд╕ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдХ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХрд▓-рд▓рд╛рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ (рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдФрд░ рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рддрдХ рдорд╛рдиреНрдп)ред

рдЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдм рдмреИрдХрд╕реНрд▓реИрд╢ рдХреЗ рдмрд┐рдирд╛ рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдХреЛрдб рдЗрдВрдбреЗрдВрдЯреЗрд╢рди (рдЯреИрдм рдпрд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ) рдХреЗ рдЕрдВрджрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рд▓реИрдореНрдмрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди, рдЗрдирд▓рд╛рдЗрди рд╕рд┐рдВрдкрд▓ рдлрдВрдХреНрд╢рди, рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реЗ рдлреАрдЪрд░реНрд╕ рдХреЛ рднрд╛рд╖рд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рдХреИрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдХреЛ рдореЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп:
рдпрд╣ рдерд╛
рдмрди рдЧрдпрд╛ рд╣реИ
reverse = \ $(call fold,,$1,__reverse_fold) # Called with the following args: # 1. An already reversed list part. # 2. Next element. __reverse_fold = \ $2 $1 
 define reverse # Start from the empty list. $(fold ,$1, # Prepend each new element ($2) to # the result of previous computations. $(lambda $2 $1)) endef 
OOP рдЬреЛрдбрд╝реЗрдВ

рдЕрдм рдЬрдм рдЖрдк рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдкрдардиреАрдп рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдФрд░ рдмрдиреНрд╕ рдЬреЛрдбрд╝реЗрдВред рдореЗрдХ рдореЗрдВ рдХреЛрдИ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬреЛ рд╣рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди, рдХреЙрд▓рд┐рдВрдЧ рдХреЗ рддрд░реАрдХреЗ рдЖрджрд┐ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреНрд░реАрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрди рдХреЛрдб "Privet, Habrahabr" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
 define class-Greeter $(field greeting, $(or $(value 1),Hello)) # Arg 1: who to greet. $(method sayHello, $(info $(get-field greeting), $1!)) endef define greet $(for greeter <- $(new Greeter,Privet), $(invoke greeter->sayHello,Habrahabr) $(greeter))# <- Return the instance. endef 

рдЗрди рджреЛ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдмрд╛рдж, рд╡рд┐рдХрд╛рд╕ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рддрд░реНрдХ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реАред

рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛


рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣рд░реА рдбреАрдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдИ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЖрдВрддрд░рд┐рдХ рдбреАрдПрд╕рдПрд▓ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп-рдкреНрд░рдпреЛрдЬрди рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рд╕рдмрд╕реЗрдЯ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЬрд┐рд╕реЗ рдЖрдк рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рдЬреАрдПрдирдпреВ рдореЗрдХ рдФрд░ рдЗрд╕рдХреА рдЕрдирд╛рдбрд╝реА рднрд╛рд╖рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдбреАрдПрд╕рдПрд▓ рд╣реА рд░рд╣рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рднрд╛рд╖рд╛ рд╣реИред

рдореИрдВ рдЭрд╛рдбрд╝реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рдорд╛рд░реВрдВрдЧрд╛ рдФрд░ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рднрд╛рд╖рд╛ рдЬрд╛рд╡рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЬрд╛рд╡рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╕рдВрдж рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреНрд░рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ рд╕рд░рд▓ рдФрд░ рд╕реАрдзрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдХреА рддрд░рд╣, Mybuild DSL рдореЗрдВ рдкреИрдХреЗрдЬ рдФрд░ рдЖрдпрд╛рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рд╡рд░рдг рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдлрд╛рдЗрд▓реЗрдВ, рд╣рдо рдореЗрд░реА-рдлрд╛рдЗрд▓реЗрдВ (рдЙрдирдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ) рдХрд╣рддреЗ рд╣реИрдВред

 /* Our first example */ module HelloWorld { source "hello.c" } 

рднрд╛рд╖рд╛ рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


рдЕрдм рдЖрдкрдХреЛ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдкрд╛рд░реНрд╕рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрдИ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВ, рдЬреЛ рдПрдХ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдкрд╛рд░реНрд╕рд░ рд╕реЗ рд▓реЗрдХрд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдкрд╛рд░реНрд╕рд░ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╡рдВрд╢ рд╡рд┐рдзрд┐ рдпрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрдореНрдмрд┐рдиреЗрдЯрд░рд┐рдпрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХрдИ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдмрд╛рдж рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдмрд╕реЗ, рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЪрд░рдг рдореЗрдВред рд╣рдордиреЗ рд╕реНрд╡рд░реНрдг рдкрд╛рд░реНрд╕рд░ рдмрд┐рд▓реНрдбрд░ (http://goldparser.org/) рдХреЛ рдПрдХ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛, рдпрд╣ рдПрдХ рд╕рд░рд▓ рд╡реНрдпрд╛рдХрд░рдг рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдбреАрдмрдЧрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрддреНрдкрдиреНрди рдкрд╛рд░реНрд╕рд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд░рдЦрддрд╛ рд╣реИ, рдЗрд╕реЗ рдореЗрдХ рдкрд░ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред )ред

рддреЛрддреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкреЗрдбрд╝ рд╣реИред



рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреА рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╕рд╛рди рдкрд╣реБрдВрдЪ рднреА рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдм рдЖрдкрдХреЛ рдкрд╛рд░реНрд╕ рдЯреНрд░реА рдХреЛ рдЕрд░реНрдердореЗрдЯрд┐рдХ рдореЙрдбрд▓ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрд╕реА рдЪрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рд╕рд╛рде рдПрдХ рдЖрдИрдбреАрдИ рд╕реЗ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЧреНрд░рд╣рдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд▓рдЧрдЗрди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХреНрд╕рдЯреЗрдХреНрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рд╡реНрдпрд╛рдХрд░рдг рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдСрдЯреЛ-рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдЖрдзреБрдирд┐рдХ рдЖрдИрдбреАрдИ рдХреЗ рдЕрдиреНрдп рдЦреБрд╢рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдг рд╕рдВрдкрд╛рджрдХ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдХреНрд╕ рд╕реНрд╡рдпрдВ рдИрдПрдордПрдл рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдореЙрдбрд▓рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдЗрд╕рдиреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП EMF рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдПрдХ рдИрдПрдордПрдл рдореЙрдбрд▓ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдбреАрдПрд╕рдПрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ (рд╣рдо рдХреГрдкрдпрд╛ рдПрдХреНрд╕рдЯреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЧрдП рдереЗ)ред рдЕрдм рдЖрдкрдХреЛ рдореЙрдбрд▓ рдХреЛ рдореЗрдХ рдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ Xpand рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ (рдЗрд╕реЗ рдЙрд╕реА рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ Xtext рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЬреЛ рд╣рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЙрдбрд▓ рд╕реЗ рдкрд╛рда рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЕрдВрддрд┐рдо рдЪрд░рдг рдПрдХ рдЧреЛрдВрдж-рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реИ рдЬреЛ рдкрд╛рд░реНрд╕ рдЯреНрд░реА рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред



рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдкрд░ рд╡рд╛рдкрд╕


рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдВрддрд░-рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдереАред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рд░рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдореЗрд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред
 module Foo { depends Bar, Baz } 

рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХрд╛ рдкреВрд░рд╛ рдЧреНрд░рд╛рдл рд╣реИ, рддреЛ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЗ рд╕рдмрдЧреНрд░рд╛рдл рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред

рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, Mybuild, рдЧреНрд░рд╛рдлрд╝рд╡рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдХ рдЧреНрд░рд╛рдл рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рд╕рд░рд▓ рдПрдордмреЙрдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдлрд╝ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╣реИред


рд░рдирдЯрд╛рдЗрдо рдмреВрдЯ рдСрд░реНрдбрд░

рд╕рд┐рд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдкреВрд░реА рд╕рдордЭ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕ рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЙрд╕ рдХреНрд░рдо рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рднреА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реА рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреЗ рдиреЛрдбреНрд╕ рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрд╕рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмреВрдЯрд▓реЛрдбрд░ рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рд╡рд┐рдХрд▓реНрдк рдФрд░ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдПрдБ

рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп рдЬреЛ рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛, рд╡рд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдерд╛ред рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
 module HelloWorld { source "hello.c" option string greeting = "Hello, world!" } 
 int main(void) { printf("%s\n", OPTION_STRING_GET(greeting)); return 0; } 
рдФрд░ рдпрджреНрдпрдкрд┐ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрднреА рднреА рдмрд╣реБрдд рд╕реБрдЦрдж рдирд╣реАрдВ рд╣реИ, рдЕрднреА рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 configuration Main { include HelloWorld(greeting = "Hello, Habrahabr!") } 

рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг

рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣рдж рддрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдереА, рдХрд┐ рд╣рдо рди рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЛрдб (рд╕реА рдФрд░ рдЕрд╕реЗрдВрдмрд▓рд░ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ) рдФрд░ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣рд┐рдд рдореЗрдХрдлрд╛рдЗрд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдерд╛ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рд▓рд┐рдВрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛)ред

 $(IMAGE): $($_heap_lds) $($_heap_lds): $($_SELFDIR)/heap.lds.S $(AUTOCONF_DIR)/config.lds.h @$(MKDIR) $(@D) \ && $(CPP) -P -undef $(CPPFLAGS) \ -imacros $(AUTOCONF_DIR)/config.lds.h \ -MMD -MT $@ -MF $@.d -o $@ $< -include $($_heap_lds).d 

рдЕрдм рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдЦреБрдж рдХреЗ рд▓рд┐рдП рддрдп рдХрд░рддреА рд╣реИ рдХрд┐ "heap.lds.S" рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ:
 module HeapAlloc { source "heap.lds.S" } 

рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг

рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕реНрд░реЛрдд рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрд╕рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ (.ories.S) рджреНрд╡рд╛рд░рд╛ рд╣реБрдИред рдХрднреА-рдХрднреА рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХреА рд╕рд╛рдордЧреНрд░реА рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдпрд╣рд╛рдВ рд╣рдордиреЗ рдПрдиреЛрдЯреЗрд╢рди рдореИрдХреЗрдирд┐рдЬреНрдо рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдЬрд╛рд╡рд╛ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ред рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рд╣рдордиреЗ рдЙрдирдХреА рдорджрдж рд╕реЗ рд▓рд╛рдЧреВ рдХреА, рд╡рд╣ рд╣реИ рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХ рдлреЛрд▓реНрдбрд░ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
 module Httpd { @ InitFS source "index.html" } 

рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рдореЙрдбреНрдпреВрд▓ рд╣реЛ, рдЙрдирдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛ, рд╕реЛрд░реНрд╕ рдХреЛрдб рдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреНрдп рдПрдиреЛрдЯреЗрд╢рди рднреА рд╣реЛрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдЕрд╡рд╕рд░ рд╣реИрдВред

рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдФрд░ рд╕рд╛рд░ рдореЙрдбреНрдпреВрд▓

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рдЬреЛ рд╣рдордиреЗ рдЕрдиреНрдп рд╕рдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрдЪреНрдЪ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдУрдПрд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЕрд╡рд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдпреЛрдЬрдирд╛ рд░рдгрдиреАрддрд┐ред рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдиреАрддрд┐ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП SCHED_FIFO рдпрд╛ SCHED_OTHER рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╕рдВрднрд╡рддрдГ рдиреАрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рддреАрди рдирд┐рдпреЛрдЬрди рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред рд╕рд░рд▓рддрдо рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдЖрджрд┐рдо рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдпрд╛ рдЕрдиреНрдп рдкреНрд░рд╡рд╛рд╣ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдФрд░ рдПрдХ рд░рдгрдиреАрддрд┐ рд╣реИ рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреА рд╣реИ рдХрд┐ рдзрд╛рдЧрд╛ рдХрд┐рддрдиреЗ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдХрдо рд╕реЗ рдХрдо рд╕рд░рд▓ рд╡рд┐рд░рд╛рд╕рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рддрд╛рдХрд┐ рдЖрдк рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХреЗрдВ, рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдгреЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХреЗрдВред рдЦреИрд░, рдЬрдм рд╕реЗ рдПрдХ рдЬрд░реВрд░рдд рдереА, рд╣рдордиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддрдп рдХрд┐рдпрд╛:
 @ DefaultImpl(TrivialSchedStrategy) abstract module SchedStrategy { } module TrivialSchedStrategy extends SchedStrategy { source "trivial.c", "trivial.h" } module PriorityBasedSchedStrategy extends SchedStrategy { source "priority_based.c", "priority_based.h" } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдиреЛрдЯреЗрд╢рди ( @DefaultImpl ) рднреА @DefaultImpl рдирд╣реАрдВ @DefaultImpl , рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ SchedStrategy рд▓рд╛рдЧреВ SchedStrategy , рддреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ TrivialSchedStrategy рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдмреЗрд╢рдХ, рдпрд╣ рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рднреА рдХреНрд╖рдорддрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрднреА рднреА рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдХрд▓рди рдЭрдВрдбреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рд▓реЗрдЦ рд╡реИрд╕реЗ рднреА рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЬреЛ рдХреЛрдИ рднреА Mybuild рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕реЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдХреА рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

рдмреЗрд╢рдХ, рдмрд╣реБрдд рдХреБрдЫ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдФрд░ рдкреЙрд▓рд┐рд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо, рд╣рдордиреЗ рдЕрднреА рддрдХ рдореВрд▓ Embox рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ Mybuild рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рдХреБрдЫ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдирд╣реАрдВ рд╣реИред

рд╕рдВрджрд░реНрдн

рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

Source: https://habr.com/ru/post/In144935/


All Articles