рдирд╡реАрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЕрд╢

рдЕрдиреЗрдХ рд╡рд░реНрд╖рд╛рдВрдкрд╛рд╕реВрди рдореА рдорд╛рдЭреА рд╕реНрд╡рддрдГрдЪреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛. рдорд▓рд╛ рдорд╛рдЭреНрдпрд╛ рдорддреЗ, рд╢рдХреНрдп рддрд┐рддрдХреА рд╕реЛрдкреА, рдкреВрд░реНрдгрдкрдгреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рд╕реЛрдпреАрдЪреА рднрд╛рд╖рд╛ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреА рд╣реЛрддреА.

рдпрд╛ рд▓реЗрдЦрд╛рдд рдореА рдорд╛рдЭреНрдпрд╛ рдХрд╛рдорд╛рдЪреЗ рдореБрдЦреНрдп рдЯрдкреНрдкреЗ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ рдЖрдгрд┐ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛, рднрд╛рд╖реЗрдЪреА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рд╕рдВрдХрд▓реНрдкрдирд╛ рдЖрдгрд┐ рддрд┐рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ, рдЬреНрдпрд╛рд╡рд░ рдореА рд╕рдзреНрдпрд╛ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗ.

рдореА рдЖрдзреАрдЪ рд╕рд╛рдВрдЧреВ рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рдореА рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХрд▓реНрдк рдлреНрд░реА рдкрд╛рд╕реНрдХрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓рд╛ рдЖрд╣реЗ, рдХрд╛рд░рдг... рддреНрдпрд╛рд╡рд░реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрд╡рддрдГрдЪ рдЦреВрдк рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдмрд╛рдпрдирд░реА рддрдпрд╛рд░ рдХрд░рддреЛ (рдореА O2 рдзреНрд╡рдЬрд╛рд╕рд╣ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рд╕рд░реНрд╡ рдШрдЯрдХ рдЧреЛрд│рд╛ рдХрд░рддреЛ).

рднрд╛рд╖рд╛ рд░рдирдЯрд╛рдЗрдо

рд╕рд░реНрд╡ рдкреНрд░рдердо, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдмрджреНрджрд▓ рдмреЛрд▓рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ рдЬреЗ рдорд▓рд╛ рдорд╛рдЭреНрдпрд╛ рднрд╛рд╖реЗрдд рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд┐рд╣рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдореА рд╕реНрдЯреЕрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛, рдХрджрд╛рдЪрд┐рдд, рдХрд╛рд░рдг рддреЛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рд╣реЛрддрд╛. рдорд▓рд╛ рд░рд╢рд┐рдпрди рднрд╛рд╖реЗрдд рд╣реЗ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рдпрд╛рдмрджреНрджрд▓ рдПрдХрд╣реА рд╕рд╛рдорд╛рдиреНрдп рд▓реЗрдЦ рд╕рд╛рдкрдбрд▓рд╛ рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЗрдВрдЧреНрд░рдЬреА рднрд╛рд╖реЗрддреАрд▓ рд╕рд╛рдордЧреНрд░реАрд╢реА рдкрд░рд┐рдЪрд┐рдд рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдореА рдорд╛рдЭреА рд╕реНрд╡рддрдГрдЪреА рд╕рд╛рдпрдХрд▓ рдбрд┐рдЭрд╛рдЗрди рдЖрдгрд┐ рд▓рд┐рд╣рд╛рдпрд▓рд╛ рдмрд╕рд▓реЛ. рдкреБрдвреЗ рдореА рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рддреАрд▓ рдорд╛рдЭреНрдпрд╛ "рдкреНрд░рдЧрдд" рдХрд▓реНрдкрдирд╛ рдЖрдгрд┐ рдШрдбрд╛рдореЛрдбреА рд╕рд╛рджрд░ рдХрд░реЗрди.

рд╕реНрдЯреЕрдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА

рдЕрд░реНрдерд╛рдд, рд╡реНрд╣реАрдПрдордЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рд╕реНрдЯреЕрдХ рдЖрд╣реЗ. рдорд╛рдЭреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ рддреЗ рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рдореВрд▓рдд: рд╣рд╛ рдкреЙрдЗрдВрдЯрд░рдЪрд╛ рдПрдХ рд╕рд╛рдзрд╛ рдЕреЕрд░реЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╡рд░рдЪреНрдпрд╛ рднрд╛рдЧрд╛рдЪрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЖрд╣реЗ.
рдЬреЗрд╡реНрд╣рд╛ рддреЗ рд╕реБрд░реВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ 256 рдШрдЯрдХрд╛рдВрдЪреА рдЕреЕрд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреЗ. рд╕реНрдЯреЕрдХрд╡рд░ рдЕрдзрд┐рдХ рдкреЙрдЗрдВрдЯрд░ рдврдХрд▓рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдЪрд╛ рдЖрдХрд╛рд░ рдкреБрдвреАрд▓ 256 рдШрдЯрдХрд╛рдВрдиреА рд╡рд╛рдврддреЛ. рддреНрдпрд╛рдиреБрд╕рд╛рд░, рд╕реНрдЯреЕрдХрдордзреВрди рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрддрд╛рдирд╛, рддреНрдпрд╛рдЪрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

VM рдЕрдиреЗрдХ рд╕реНрдЯреЕрдХ рд╡рд╛рдкрд░рддреЗ:

  1. рдореБрдЦреНрдп рд╕реНрдЯреЕрдХ.
  2. рд░рд┐рдЯрд░реНрди рдкреЙрдЗрдВрдЯреНрд╕ рд╕рд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдЯреЕрдХ.
  3. рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░рд╛ рд╕реНрдЯреЕрдХ.
  4. рд╣рдБрдбрд▓рд░ рд╕реНрдЯреЕрдХ рд╡рд╛рдкрд░реВрди рдкрд╣рд╛/рдХреЕрдЪ рдХрд░рд╛/рд╢реЗрд╡рдЯреА рдмреНрд▓реЙрдХ рдХрд░рд╛.

рд╕реНрдерд┐рд░рд╛рдВрдХ рдЖрдгрд┐ рдЪрд▓

рд╣реЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛрдбрдЪреНрдпрд╛ рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдЫреЛрдЯреНрдпрд╛ рддреБрдХрдбреНрдпрд╛рдд рд╣рд╛рддрд╛рд│рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рд╕реНрдерд┐рд░ рдкрддреНрддреНрдпрд╛рдВрджреНрд╡рд╛рд░реЗ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рддрд╛рдд. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╣реЗ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рдкреЙрдЗрдВрдЯрд░рдЪреЗ рдЕреЕрд░реЗ рдЖрд╣реЗрдд, рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реЗрд▓рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЕрдиреБрдХреНрд░рдордгрд┐рдХреЗрджреНрд╡рд╛рд░реЗ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ - рдореНрд╣рдгрдЬреЗ. рд╕реНрдерд┐рд░ рдкрддреНрддрд╛. рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реНрдЯреЕрдХрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдврдХрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдХрд┐рдВрд╡рд╛ рддреЗрдереВрди рд╡рд╛рдЪрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдЦрд░рдВ рддрд░, рдХрд╛рд░рдг рдЖрдордЪреА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореВрд▓рдд: рд╡реНрд╣реАрдПрдо рдореЗрдорд░реАрдордзреАрд▓ рдореВрд▓реНрдпрд╛рдВрд╕рд╛рдареА рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдд рдЕрд╕рддрд╛рдирд╛, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреЙрдЗрдВрдЯрд░реНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВрди рднрд╛рд╖реЗрдЪреЗ рд╡рд░реНрдЪрд╕реНрд╡ рдЖрд╣реЗ.

рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░рд╛

рдорд╛рдЭреНрдпрд╛ VM рдордзреНрдпреЗ рддреЗ рдЕрд░реНрдз-рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЖрд╣реЗ. рддреНрдпрд╛. рдХрдЪрд░рд╛ рд╡реЗрдЪрдгрд╛рд▒реНрдпрд╛рд▓рд╛ рдХрдзреА рдХреЙрд▓ рдХрд░рд╛рдпрдЪрд╛ рд╣реЗ рд╡рд┐рдХрд╕рдХ рд╕реНрд╡рддрдГ рдард░рд╡рддреЛ. рдкрд╛рдпрдерди, рдкрд░реНрд▓, рд░реБрдмреА, рд▓реБрдЖ рдЗ. рдкреНрд░рдорд╛рдгреЗ рд╣реЗ рдирд┐рдпрдорд┐рдд рдкреЙрдЗрдВрдЯрд░ рдХрд╛рдЙрдВрдЯрд░ рд╡рд╛рдкрд░реВрди рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА. рдорд╛рд░реНрдХрд░ рдкреНрд░рдгрд╛рд▓реАрджреНрд╡рд╛рд░реЗ рддреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХреЗрд▓реА рдЬрд╛рддреЗ. рддреНрдпрд╛. рдЬреЗрд╡реНрд╣рд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд▓рд╛ рддрд╛рддреНрдкреБрд░рддреЗ рдореВрд▓реНрдп рдирд┐рдпреБрдХреНрдд рдХрд░рд╛рдпрдЪреЗ рдЕрд╕рддреЗ, рддреЗрд╡реНрд╣рд╛ рдпрд╛ рдореВрд▓реНрдпрд╛рд╕рд╛рдареА рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд▒реНрдпрд╛рдЪреНрдпрд╛ рд╕реНрдЯреЕрдХрдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ. рднрд╡рд┐рд╖реНрдпрд╛рдд, рд╕рдВрдЧреНрд░рд╛рд╣рдХ рддреНрд╡рд░реАрдд рдкреЙрдЗрдВрдЯрд░реНрд╕рдЪреНрдпрд╛ рдЖрдзреАрдЪ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдордзреВрди рдзрд╛рд╡рддрд╛рдд.

рдкреНрд░рдпрддреНрди/рдкрдХрдбреА/рд╢реЗрд╡рдЯреА рдЕрд╡рд░реЛрдз рд╣рд╛рддрд╛рд│рдгреЗ

рдХреЛрдгрддреНрдпрд╛рд╣реА рдЖрдзреБрдирд┐рдХ рднрд╛рд╖реЗрдкреНрд░рдорд╛рдгреЗ, рдЕрдкрд╡рд╛рдж рд╣рд╛рддрд╛рд│рдгреА рд╣рд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рдШрдЯрдХ рдЖрд╣реЗ. рд╡реНрд╣реАрдПрдо рдХреЛрд░ рдЯреНрд░рд╛рдп..рдХреЕрдЪ рдмреНрд▓реЙрдХрдордзреНрдпреЗ рдЧреБрдВрдбрд╛рд│рд▓реЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЛ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд▓реНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛рдмрджреНрджрд▓ рдХрд╛рд╣реА рдорд╛рд╣рд┐рддреА рд╕реНрдЯреЕрдХрд╡рд░ рдкреБрд╢ рдХрд░реВрди рдХреЛрдб рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рдирд╡рд░ рдкрд░рдд рдпреЗрдК рд╢рдХрддреЛ. рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдбрдордзреНрдпреЗ, рддреБрдореНрд╣реА рдХреЛрдбрдЪреЗ рдЯреНрд░рд╛рдп/рдХреЕрдЪ/рд╢реЗрд╡рдЯреА рдмреНрд▓реЙрдХреНрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рдХреЕрдЪ (рдЕрдкрд╡рд╛рдж рд╣рдБрдбрд▓рд░) рдЖрдгрд┐ рд╢реЗрд╡рдЯреА/рдПрдВрдб (рдмреНрд▓реЙрдХрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА) рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛.

рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ

рд╣реЗ VM рд╕реНрддрд░рд╛рд╡рд░ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ. рд╣реЗ рд╕реЛрдкреЗ рдЖрдгрд┐ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ. рд╣реЗ рд╡реНрдпрддреНрдпрдп рдкреНрд░рдгрд╛рд▓реАрд╢рд┐рд╡рд╛рдп рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдореНрд╣рдгреВрди рдХреЛрдб рдЕрдиреЗрдХ рдереНрд░реЗрдбреНрд╕рдордзреНрдпреЗ рдЕрдиреБрдХреНрд░рдореЗ рдЕрдиреЗрдХ рд╡реЗрд│рд╛ рд╡реЗрдЧрд╛рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ.

VM рд╕рд╛рдареА рдмрд╛рд╣реНрдп рд▓рд╛рдпрдмреНрд░рд░реА

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

VM рд╕рд╛рдареА рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдореЕрд╢ рднрд╛рд╖реЗрддреВрди рдмрд╛рдпрдХреЛрдбрдордзреНрдпреЗ рдЕрдиреБрд╡рд╛рджрдХ

рдордзреНрдпрд╡рд░реНрддреА рднрд╛рд╖рд╛

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

рдЕрдиреБрд╡рд╛рджрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдореА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рд╕рд░реНрд╡реЛрддреНрддрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдирд┐рд╡рдбрд▓реЗ рдирд╛рд╣реА. рдЗрддрд░ рдЕрдиреБрд╡рд╛рджрдХрд╛рдВрдкреНрд░рдорд╛рдгреЗ рдЕрдиреБрд╡рд╛рджрдХ рдХреЛрдб рдЯреНрд░реА рдмрдирд╡рдд рдирд╛рд╣реА. рддреЛ рд╕рдВрд░рдЪрдиреЗрдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдкрд╛рд╣рддреЛ. рддреНрдпрд╛. рдЬрд░ рдкрд╛рд░реНрд╕ рдХреЗрд▓реЗрд▓рд╛ рдХреЛрдбрдЪрд╛ рднрд╛рдЧ тАЬwhile <condition>:тАЭ рд╕рд╛рд░рдЦрд╛ рджрд┐рд╕рдд рдЕрд╕реЗрд▓, рддрд░ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рд╣реЗ рдПрдХ while рд▓реВрдк рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдПрдХ while loop construct рдореНрд╣рдгреВрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдПрдХ рдЬрдЯрд┐рд▓ рд╕реНрд╡рд┐рдЪ-рдХреЗрд╕ рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА.

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

рдХреЛрдб рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди

рдЗрдереЗ рдЕрд░реНрдерд╛рддрдЪ рддреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдХрд░рддрд╛ рдЖрд▓реА рдЕрд╕рддреА (рдЖрдгрд┐ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЬрд╛рдИрд▓, рдкрдг рдирдВрддрд░, рдЬрд╕реЗ рдХреА рдПрдЦрд╛рджреНрдпрд╛рд▓рд╛ рдЬрд╡рд│ рдпреЗрдИрд▓ рддрд╕реЗ). рдЖрддрд╛рдкрд░реНрдпрдВрдд, рдСрдкреНрдЯрд┐рдорд╛рдпрдЭрд░рд▓рд╛ рдХреЗрд╡рд│ рдЕрд╕реЗрдВрдмреНрд▓реАрдордзреВрди рди рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдХреЛрдб, рд╕реНрдерд┐рд░рд╛рдВрдХ рдЖрдгрд┐ рдЖрдпрд╛рдд рдХрд╕реЗ рдХрд╛рдкрд╛рдпрдЪреЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ. рддрд╕реЗрдЪ, рд╕рдорд╛рди рдореВрд▓реНрдпрд╛рд╕рд╣ рдЕрдиреЗрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдПрдХрд╛рдиреЗ рдмрджрд▓рд▓реЗ рдЬрд╛рддрд╛рдд. рдЗрддрдХрдВрдЪ.

рдореЕрд╢ рднрд╛рд╖рд╛

рднрд╛рд╖реЗрдЪреА рдореВрд▓рднреВрдд рд╕рдВрдХрд▓реНрдкрдирд╛

рд╕рд░реНрд╡рд╛рдд рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рд╕реЛрдкреА рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреЗ рд╣реА рдореБрдЦреНрдп рдХрд▓реНрдкрдирд╛ рд╣реЛрддреА. рдорд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХреА рд╡рд┐рдХрд╛рд╕ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЛ.

рдХреЛрдб рдмреНрд▓реЙрдХ, рдХрд╛рд░реНрдпрдкрджреНрдзрддреА рдЖрдгрд┐ рдХрд╛рд░реНрдпреЗ

рднрд╛рд╖реЗрддреАрд▓ рд╕рд░реНрд╡ рдмрд╛рдВрдзрдХрд╛рдореЗ рдХреЛрд▓рдирдиреЗ рдЙрдШрдбрд▓реА рдЬрд╛рддрд╛рдд. : рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд░рджреНрд╡рд╛рд░реЗ рдмрдВрдж рдЖрд╣реЗрдд рд╢реЗрд╡рдЯ.

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рдХрд╛рд░реНрдпреЗ рдЕрдиреБрдХреНрд░рдореЗ proc рдЖрдгрд┐ func рдореНрд╣рдгреВрди рдШреЛрд╖рд┐рдд рдХреЗрд▓реА рдЬрд╛рддрд╛рдд. рдпреБрдХреНрддрд┐рд╡рд╛рдж рдХрдВрд╕рд╛рдд рд╕реВрдЪреАрдмрджреНрдз рдЖрд╣реЗрдд. рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЗрддрд░ рднрд╛рд╖рд╛рдВрдкреНрд░рдорд╛рдгреЗрдЪ рдЖрд╣реЗ.

рдСрдкрд░реЗрдЯрд░ рдкрд░рдд рддреБрдореНрд╣реА рдлрдВрдХреНрд╢рди, рдСрдкрд░реЗрдЯрд░рдХрдбреВрди рдореВрд▓реНрдп рдкрд░рдд рдХрд░реВ рд╢рдХрддрд╛ рдмреНрд░реЗрдХ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛/рдлрдВрдХреНрд╢рдирдордзреВрди рдмрд╛рд╣реЗрд░ рдкрдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ (рдЬрд░ рддреЗ рд▓реВрдкрдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЕрд╕реЗрд▓).

рдирдореБрдирд╛ рдХреЛрдб:

...

func summ(a, b):
  return a + b
end

proc main():
  println(summ(inputln(), inputln()))
end

рд╕рдорд░реНрдерд┐рдд рдбрд┐рдЭрд╛рдИрдиреНрд╕

  • рд▓реВрдк: for..end, while..end, to..end
  • рдЕрдЯреА: рдЬрд░..[else..]рдПрдВрдб рдХрд░рд╛, рд╕реНрд╡рд┐рдЪ рдХрд░рд╛..[рдХреЗрд╕..рдПрдВрдб..][рдЕрдиреНрдп...]рд╢реЗрд╡рдЯ
  • рдкрджреНрдзрддреА: proc <name>():... end, func <name>():... end
  • рд▓реЗрдмрд▓ рдХрд░рд╛ рдЖрдгрд┐ рдЬрд╛: <name>:, рдЬрдВрдк <name>
  • рдПрдирдо рдЧрдгрдиреЗ рдЖрдгрд┐ рд╕реНрдерд┐рд░ рдЕреЕрд░реЗ.

рдЪрд▓

рдЕрдиреБрд╡рд╛рджрдХ рддреНрдпрд╛рдВрдирд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрддреЛ, рдХрд┐рдВрд╡рд╛ рд╡рд┐рдХрд╕рдХрд╛рдиреЗ рддреНрдпрд╛рдВрдирд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА var рд▓рд┐рд╣рд┐рд▓реНрдпрд╛рд╕.

рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЗ:

a ?= 10
b ?= a + 20

var a = 10, b = a + 20

рдЬрд╛рдЧрддрд┐рдХ рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХ рдЪрд▓ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд.

OOP

рдмрд░рдВ, рдЖрдореНрд╣реА рд╕рд░реНрд╡рд╛рдд рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЖрд▓реЛ рдЖрд╣реЛрдд. рдореЕрд╢ рд╕рд░реНрд╡ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреЕрд░рд╛рдбрд╛рдЗрдореНрд╕рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. рддреНрдпрд╛. рд╡рд░реНрдЧ, рд╡рд╛рд░рд╕рд╛, рдмрд╣реБрд░реВрдкрддрд╛ (рдбрд╛рдпрдиреЕрдорд┐рдХрд╕рд╣), рдбрд╛рдпрдиреЕрдорд┐рдХ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЖрдгрд┐ рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг (рдкреВрд░реНрдг).

рдкреБрдвреАрд▓ рдЕрдбрдЪрдг рди рдХрд░рддрд╛, рдлрдХреНрдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЗ рджреЗрдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ.

рдПрдХ рд╕рд╛рдзрд╛ рд╡рд░реНрдЧ рдЖрдгрд┐ рддреНрдпрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреЗ:

uses <bf>
uses <crt>

class MyClass:
  var a, b
  proc Create, Free
  func Summ
end

proc MyClass::Create(a, b):
  $a = new(a)
  $b = new(b)
end

proc MyClass::Free():
  Free($a, $b)
  $rem()
end

func MyClass::Summ():
  return $a + $b
end

proc main():
  x ?= new MyClass(10, 20)
  println(x->Summ())
  x->Free()
end

рдЖрдЙрдЯрдкреБрдЯ: 30.

рд╡рд╛рд░рд╕рд╛ рдЖрдгрд┐ рдмрд╣реБрд░реВрдкрддрд╛:

uses <bf>
uses <crt>

class MyClass:
  var a, b
  proc Create, Free
  func Summ
end

proc MyClass::Create(a, b):
  $a = new(a)
  $b = new(b)
end

proc MyClass::Free():
  Free($a, $b)
  $rem()
end

func MyClass::Summ():
  return $a + $b
end

class MyNewClass(MyClass):
  func Summ
end

func MyNewClass::Summ():
  return ($a + $b) * 2
end

proc main():
  x ?= new MyNewClass(10, 20)
  println(x->Summ())
  x->Free()
end

рдЖрдЙрдЯрдкреБрдЯ: 60.

рдбрд╛рдпрдиреЕрдорд┐рдХ рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдЭрдо рдмрджреНрджрд▓ рдХрд╛рдп? рд╣реЛрдп, рд╣реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЖрд╣реЗ!:

uses <bf>
uses <crt>

class MyClass:
  var a, b
  proc Create, Free
  func Summ
end

proc MyClass::Create(a, b):
  $a = new(a)
  $b = new(b)
end

proc MyClass::Free():
  Free($a, $b)
  $rem()
end

func MyClass::Summ():
  return $a + $b
end

class MyNewClass(MyClass):
  func Summ
end

func MyNewClass::Summ():
  return ($a + $b) * 2
end

proc main():
  x ?= new MyClass(10, 20)
  x->Summ ?= MyNewClass::Summ
  println(x->Summ())
  x->Free()
end

рдЖрдЙрдЯрдкреБрдЯ: 60.

рдЖрддрд╛ рд╕рд╛рдзреА рдореВрд▓реНрдпреЗ рдЖрдгрд┐ рд╡рд░реНрдЧрд╛рдВрд╕рд╛рдареА рдЖрддреНрдордкрд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдереЛрдбрд╛ рд╡реЗрд│ рдШреЗрдКрдпрд╛:

uses <bf>
uses <crt>

class MyClass:
  var a, b
end

proc main():
  x ?= new MyClass
  println(BoolToStr(x->type == MyClass))
  x->rem()
  println(BoolToStr(typeof(3.14) == typeReal))
end

рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдИрд▓: рдЦрд░реЗ, рдЦрд░реЗ.

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдЖрдгрд┐ рд╕реНрдкрд╖реНрдЯ рдкреЙрдЗрдВрдЯрд░ рдмрджреНрджрд▓

?= рдСрдкрд░реЗрдЯрд░рдЪрд╛ рд╡рд╛рдкрд░ рдореЗрдорд░реАрдордзреАрд▓ рд╡реНрд╣реЕрд▓реНрдпреВрд▓рд╛ рдкреЙрдЗрдВрдЯрд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдирд┐рдпреБрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
= рдСрдкрд░реЗрдЯрд░ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреАрд▓ рдкреЙрдЗрдВрдЯрд░ рд╡рд╛рдкрд░реВрди рдореЗрдорд░реАрдордзреАрд▓ рдореВрд▓реНрдп рдмрджрд▓рддреЛ.
рдЖрдгрд┐ рдЖрддрд╛ рд╕реНрдкрд╖реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕рдмрджреНрджрд▓ рдереЛрдбреЗрд╕реЗ. рдореА рддреНрдпрд╛рдВрдирд╛ рднрд╛рд╖реЗрдд рдЬреЛрдбрд▓реЗ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗрдд.
@<variable> тАФ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд╕рд╛рдареА рд╕реНрдкрд╖реНрдЯ рдкреЙрдЗрдВрдЯрд░ рдШреНрдпрд╛.
?<variable> тАФ рдкреЙрдЗрдВрдЯрд░рджреНрд╡рд╛рд░реЗ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдорд┐рд│рд╡рд╛.
@= тАФ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рд▓рд╛ рд╕реНрдкрд╖реНрдЯ рдкреЙрдЗрдВрдЯрд░рджреНрд╡рд╛рд░реЗ рдореВрд▓реНрдп рдирд┐рдпреБрдХреНрдд рдХрд░рд╛.

рдирдореБрдирд╛ рдХреЛрдб:

uses <bf>
uses <crt>

proc main():
  var a = 10, b
  b ?= @a
  PrintLn(b)
  b ?= ?b
  PrintLn(b)
  b++
  PrintLn(a)
  InputLn()
end

рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдИрд▓: рдХрд╛рд╣реА рд╕рдВрдЦреНрдпрд╛, 10, 11.

рдкреНрд░рдпрддреНрди рдХрд░рд╛.. рдкрдХрдбрд╛.. [рд╢реЗрд╡рдЯреА..]рд╢реЗрд╡рдЯ

рдирдореБрдирд╛ рдХреЛрдб:

uses <bf>
uses <crt>

proc main():
  println("Start")
  try:
    println("Trying to do something...")
    a ?= 10 / 0
  catch:
    println(getError())
  finally:
    println("Finally")
  end
  println("End")
  inputln()
end

рднрд╡рд┐рд╖реНрдпрд╛рд╕рд╛рдареА рдпреЛрдЬрдирд╛

рдореА GraalVM рдЖрдгрд┐ Truffle рдХрдбреЗ рдмрдШрдд рд░рд╛рд╣рддреЛ. рдорд╛рдЭреНрдпрд╛ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╛рд╣реА, рддреНрдпрд╛рдореБрд│реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ рд╕рдзреНрдпрд╛ рдХреЗрд╡рд│ рдкрд╛рдпрдердирд╢реА рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдЖрд╣реЗ. рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдореА GraalVM рдХрд┐рдВрд╡рд╛ LLVM рд╡рд░ рдЖрдзрд╛рд░рд┐рдд JIT рд╕рдВрдХрд▓рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВ рд╢рдХреЗрди.

рднрд╛рдВрдбрд╛рд░

рдЖрдкрдг рдШрдбрд╛рдореЛрдбреАрдВрд╕рд╣ рдЦреЗрд│реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд╕реНрд╡рддрдГ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░реВ рд╢рдХрддрд╛.

рд╡реЗрдмрд╕рд╛рдЗрдЯ
GitHub рд╡рд░ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА

рдЖрдкрдг рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╢реЗрд╡рдЯрдкрд░реНрдпрдВрдд рд╡рд╛рдЪрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж.

рд╕реНрддреНрд░реЛрдд: www.habr.com

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