рдирдпрд╛рдБ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рдореНрдпрд╛рд╕

рдзреЗрд░реИ рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ рдореИрд▓реЗ рдореЗрд░реЛ рдЖрдлреНрдиреИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдореЗрд░реЛ рд╣рд╛рдд рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВред рдо рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рд╕рдореНрднрд╡рддрдГ рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓, рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднрд╛рд╖рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рдпрд╕ рд▓реЗрдЦрдорд╛ рдо рдореЗрд░реЛ рдХрд╛рдордХреЛ рдореБрдЦреНрдп рдЪрд░рдгрд╣рд░реВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рд░, рд╕реБрд░реБрдорд╛, рднрд╛рд╖рд╛рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд░ рдпрд╕рдХреЛ рдкрд╣рд┐рд▓реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ, рдЬреБрди рдореИрд▓реЗ рд╣рд╛рд▓ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреБред

рдорд▓рд╛рдИ рдЕрдЧреНрд░рд┐рдо рднрдиреНрди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдореИрд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлреНрд░реА рдкрд╛рд╕реНрдХрд▓рдорд╛ рд▓реЗрдЦреЗрдХреЛ рдЫреБ, рдХрд┐рдирдХрд┐... рдпрд╕рдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднреЗрд▓рд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рдХрдореНрдкрд╛рдЗрд▓рд░ рдЖрдлреИрдВрд▓реЗ рдзреЗрд░реИ рдЕрдиреБрдХреВрд▓рд┐рдд рдмрд╛рдЗрдирд░реАрд╣рд░реВ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫ (рдо O2 рдлреНрд▓реНрдпрд╛рдЧрдХреЛ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛рдХрд╛ рд╕рдмреИ рдШрдЯрдХрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджрдЫ)ред

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

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

рд╕реНрдЯреНрдпрд╛рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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

VM рд▓реЗ рдзреЗрд░реИ рд╕реНрдЯреНрдпрд╛рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ:

  1. рдореБрдЦреНрдп рд╕реНрдЯреНрдпрд╛рдХред
  2. рд░рд┐рдЯрд░реНрди рдкреЛрдЗрдиреНрдЯрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдЯреНрдпрд╛рдХред
  3. рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рди рдЧрд░реНрдиреЗ рд╕реНрдЯреНрдпрд╛рдХред
  4. рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН / рд╕рдорд╛рддреНрдиреБрд╣реЛрд╕реН / рдЕрдиреНрддрдорд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд╕реНрдЯреНрдпрд╛рдХ рдмреНрд▓рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕реНрдерд┐рд░ рд░ рдЪрд░

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

рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛

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

рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ / рд╕рдорд╛рддреНрдиреЗ / рдЕрдиреНрддрдорд╛ рдмреНрд▓рдХрд╣рд░реВ

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

рдорд▓реНрдЯрд┐рдереНрд░реЗрдбрд┐рдЩ

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

VMs рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рд╣реНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ

рдпреЛ рдмрд┐рдирд╛ рдЧрд░реНрдиреЗ рдХреБрдиреИ рдЙрдкрд╛рдп рдЫреИрдиред VM рд▓реЗ рдЖрдпрд╛рддрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рдЬрд╕рд░реА рдпрд╕рд▓рд╛рдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫред рддрдкрд╛рдИрд▓реЗ рдХреЛрдбрдХреЛ рдЕрдВрд╢ рдореНрдпрд╛рд╕рдорд╛ рд░ рдХреЛрдбрдХреЛ рдЕрдВрд╢ рдорд╛рддреГрднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдХрдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

VMs рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдЯрдХреЛрдбрдорд╛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдореНрдпрд╛рд╕ рднрд╛рд╖рд╛рдмрд╛рдЯ рдЕрдиреБрд╡рд╛рджрдХ

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

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

рдЕрдиреБрд╡рд╛рджрдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛

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

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

рдХреЛрдб рдЕрдиреБрдХреВрд▓рди

рдпрд╣рд╛рдБ, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпрд╕рд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдереНрдпреЛ (рд░ рд▓рд╛рдЧреВ рд╣реБрдиреЗрдЫ, рддрд░ рдкрдЫрд┐, рдпрд╕рдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдкреБрдЧреНрдиреЗ рдмрд┐рддреНрддрд┐рдХреИ)ред рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо, рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬрд░рд▓рд╛рдИ рдорд╛рддреНрд░ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХреЛ рдХреЛрдб, рд╕реНрдерд┐рд░рддрд╛ рд░ рдПрд╕реЗрдореНрдмрд▓реАрдмрд╛рдЯ рдЖрдпрд╛рддрд╣рд░реВ рдХрд╛рдЯреНрдиреЗред рд╕рд╛рдереИ, рдПрдЙрдЯреИ рдорд╛рдирдХрд╛ рд╕рд╛рде рдзреЗрд░реИ рд╕реНрдерд┐рд░рддрд╛рд╣рд░реВ рдПрдХрджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рд╣реБрдиреНрдЫрдиреНред рдпрддрд┐ рдиреИред

рдорд╛рд╕ рднрд╛рд╖рд╛

рднрд╛рд╖рд╛ рдХреЛ рдЖрдзрд╛рд░рднреВрдд рдЕрд╡рдзрд╛рд░рдгрд╛

рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╕рдореНрднрд╡ рд╕рдмреИ рднрдиреНрджрд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░ рд╕рд░рд▓ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдерд┐рдпреЛред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рд╡рд┐рдХрд╛рд╕рд▓реЗ рдЖрдлреНрдиреЛ рдХрд╛рд░реНрдпрд▓рд╛рдИ рдзрдорд╛рдХрд╛ рд╕рд╛рде рд╕рд╛рдордирд╛ рдЧрд░реНрджрдЫред

рдХреЛрдб рдмреНрд▓рдХрд╣рд░реВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд░ рдХрд╛рд░реНрдпрд╣рд░реВ

рднрд╛рд╖рд╛рдорд╛ рд╕рдмреИ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдмреГрд╣рджрд╛рдиреНрддреНрд░рдХреЛ рд╕рд╛рде рдЦреЛрд▓рд┐рдПрдХрд╛ рдЫрдиреНред : рд░ рдЕрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдиреНрдж рдЫрдиреН рдЕрдиреНрдд.

рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд░ рдХрд╛рд░реНрдпрд╣рд░реВ рдХреНрд░рдорд╢рдГ proc рд░ func рдХреЛ рд░реВрдкрдорд╛ рдШреЛрд╖рд┐рдд рдЧрд░рд┐рдиреНрдЫред рддрд░реНрдХрд╣рд░реВ рдХреЛрд╖реНрдардХрд╣рд░реВрдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдЫрдиреНред рд╕рдмреИ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВ рдЬрд╕реНрддреИ рдЫрдиреНред

рдЕрдкрд░реЗрдЯрд░ рдлрд┐рд░реНрддреА рддрдкрд╛рдИрдВ рдкреНрд░рдХрд╛рд░реНрдп, рдЕрдкрд░реЗрдЯрд░рдмрд╛рдЯ рдорд╛рди рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдмреНрд░реЗрдХ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛/ рдкреНрд░рдХрд╛рд░реНрдпрдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдпрджрд┐ рдпреЛ рд▓реВрдк рдмрд╛рд╣рд┐рд░ рдЫ рднрдиреЗ)ред

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

...

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

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

рд╕рдорд░реНрдерд┐рдд рдбрд┐рдЬрд╛рдЗрдирд╣рд░реВ

  • рд▓реВрдкреНрд╕: for..end, while..end, ..end рд╕рдореНрдо
  • рд╕рд░реНрддрд╣рд░реВ: рдпрджрд┐...[рдЕрдиреНрдп...]рдЕрдиреНрдд, рд╕реНрд╡рд┐рдЪ...[рдХреЗрд╕...рдЕрдиреНрдд...][рдЕрдиреНрдп...]рдЕрдиреНрдд
  • рд╡рд┐рдзрд┐рд╣рд░реВ: proc <name>():... end, func <name>():... end
  • рд▓реЗрдмрд▓ рд░ рдЬрд╛рдиреБрд╣реЛрд╕реН: <рдирд╛рдо>:, рдЬрдореНрдк <рдирд╛рдо>
  • enum enumerations рд░ рд╕реНрдерд┐рд░ arraysред

рдЪрд░рд╣рд░реВ

рдЕрдиреБрд╡рд╛рджрдХрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрдЫ, рд╡рд╛ рдпрджрд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреБ рдЕрдШрд┐ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди