рд▓рд░реНрдирд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рд╕реБрдЭрд╛рд╡

рдЕрдЪреНрдЫрд╛ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ habrahabr.ru

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

рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ (рд╡рд░реНрдХрд┐рдВрдЧ рдЯрд╛рдЗрдЯрд▓ PL / 2) рдФрд░ рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рд╡рд░реНрдХрд┐рдВрдЧ рдЯрд╛рдЗрдЯрд▓ PL / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХреЗ рдлрд╛рдпрджреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдореИрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдиреБрдХрд╕рд╛рди рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред


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

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

рддреЛ, рд╢реИрдХреНрд╖рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдкреНрд░рдореБрдЦ рддрддреНрд╡ред

рд╕реНрд░реЛрдд рдкрд╛рда



рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд╛рда (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ [рдирд╛рдо] рдЯреБрдХрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдкреАрдПрд▓ / 2, рдПрд╕рдХреНрдпреВрдПрд▓, рдПрдЪрдЯреАрдПрдордПрд▓, рдкрд╛рда, рдкреАрдПрд▓ / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯред

рдХреЛрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд▓рд╛рдЗрди рдХреА рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореЗрдЯрд╛ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ

рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдВрдд рдХреЛ рд▓рд╛рдЗрди рдХреА рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдиреБрдХреНрд░рдо / рдореЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдкреАрдПрд▓ / 2 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд╕рдорд╛рди рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдХрдо рд╕реЗ рдХрдо 4 рдкрджреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд╛рда рд╕рдВрд░рдЪрдирд╛



рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рд╕реНрддрд░ рдХреЗ рдмреАрдЪ рдмрджрд▓рд╛рд╡ рдХрд╛ рдЖрдХрд╛рд░ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИред рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдкрд░ рдСрдкрд░реЗрдЯрд░ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕реНрддрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХрдо рд╕реЗ рдХрдо 3 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдСрдлрд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ

рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрддрд░ рд╕реНрд░реЛрдд рдореЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ, рдХреЛрдИ рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рддреАрдХ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕



рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрд╖реНрдардХ рдЧреНрд░рд╣рдг рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

рдХреЛрд╖реНрдардХ (...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐

рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ [...] рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЖрдпрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ {...} рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

{... ... -} - рдХреЛрд╖реНрдардХ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ - рд╕рдВрдмрдВрдзрдкрд░рдХ рд╡рд░реНрдЧ рдХреЗ рд╢рд░реАрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

{# ... #} - рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдмреНрд▓реЙрдХ рдХреЗ рд╢рд░реАрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

{$ ... $} - рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╡рд░реНрдЧ рд╕реНрдерд┐рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп рдмрд╛рд╣рд░реА рдлреНрд░реЗрдо рдХреЛрд╖реНрдардХ

{* ... *} - рд╡рд░реНрдЧ рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд┐рдХрд╛рдп рдХрд╛ рд╡рд┐рд╡рд░рдг

{& ... &} - рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдХрд╛ рд╡рд░реНрдгрди

{@ @ @} - рдиреЗрдорд╕реНрдкреЗрд╕ рдмреЙрдбреА

{| ... |} - рд╕рдорд╛рдирд╛рдВрддрд░ рдмреНрд▓реЙрдХ

{% ...%} - рдкреНрд░рдмрдВрдзрд┐рдд рдмреНрд▓реЙрдХ

{= ... =} - рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╡рд░реНрдЧ

{...} - рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдмреНрд▓реЙрдХ

рдСрдкрд░реЗрдЯрд░реЛрдВ



==    =/=    :=    ++   --   +  -  *  /  -/-   (    ,  ..  IDE) (? boolean ? value_true :: value_false ?) -   


рдЗрдВрдкреАрд░рд┐рдпрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ



рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ:

рдХреЛрд╖реНрдардХ рдХреЗ рдмреАрдЪ рд╕рдВрд▓рдЧреНрди рдСрдкрд░реЗрдЯрд░ {рдФрд░ &} рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╛рда рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ

рдирд┐рд╖реНрдкрд╛рджрди рдЖрджреЗрд╢ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдФрд░ рд╢рд╛рдЦрд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╢рд░реНрдд рдкрд░ рдкреВрд░реНрддрд┐

 if (){ ... } 


рд╢рд░реНрддреЛрдВ рдХреЗ рдкрд╣рд▓реЗ рдорд┐рд▓рдиреЗ рдкрд░ рдмреНрд▓реЙрдХ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ

 decision{ if (<1>) ... if (<2>) ... else ... } 


рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╕реНрд╡рд┐рдЪ рдЬреЛ рдПрдХ рд╕реНрдерд┐рд░ рдпрд╛ рдПрдХ рдЧрдгрдирд╛ рдХреЗ рд╕рджрд╕реНрдп рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ

 switch (<>){ case <1>: ... case <2>: ... else ... } 


рдЖрдк рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЯрд░реНрдирд░реА рдЪрдпрди рдСрдкрд░реЗрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реВрдк рдСрдкрд░реЗрдЯрд░
 loop [explicit] [] { for <[]  [ := ]>; from <>; while <,     >; next < >; where <   > ... continue; ... break [ ]; ... } 

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

рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐



рдСрдкреНрдЯ-рдЖрдЙрдЯ рд▓реЗрдирджреЗрди рдФрд░ рдкрд╛рд░реНрд╕рд▓ рдкреНрд░рдмрдВрдзрди

 transaction{ finalize { } catch { } { throw //  catch  finalize revoke //     ,        finalize } } 


рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ



new - рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ
рдбреНрд░реЙрдк - рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ

рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рдЪрдпрди рдХрд░реЗрдВ :: = - рдирд╛рдорд┐рдд рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдореНрдорд┐рд▓рд┐рдд + = - рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢
рд╣рдЯрд╛рдирд╛ - = - рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛рдирд╛
рдЕрджреНрдпрддрди - рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХрдИ рдЕрджреНрдпрддрди

рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧ рдпрд╛ рдЙрд╕рдХреЗ рдЧреБрдгреЛрдВ / рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди

рдЕрдиреБрджрд╛рди + = - рдПрдХ рд╡рд░реНрдЧ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рдЕрдиреБрдореЗрдп рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ
рдЗрдирдХрд╛рд░ + = - рдХрд┐рд╕реА рд╡рд░реНрдЧ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдирд╛
Revoke - рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБ рдЕрдзрд┐рдХрд╛рд░ рд╣рдЯрд╛ рджреЗрдВ

рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░



рд╡рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд╣реАрдВ



рднреЗрдбрд╝ рдХрд╛ рдмрдЪреНрдЪрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рд╕реВрдЪреА рдСрдкрд░реЗрдЯрд░реЛрдВ



рдЖрджреЗрд╢рд┐рдд рд╕реВрдЪрд┐рдпреЛрдВ рдкрд░ рдЕрд╕реНрддрд┐рддреНрд╡рдЧрдд рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдорд╛рддреНрд░рд╛рддреНрдордХ


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рд╕рд┐рд░ :: = %> (\ true),
рдкреВрдВрдЫ :: = ~> (\ true)

рдХреЛрдбрд╛рдВрддрд░рдХ



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

рд╣реИрд▓реЛ рджреБрдирд┐рдпрд╛



 hallo.pl2   program     default.Default.Main() meta source="pl2" name="example2" using user.OS.IO; // using OS Console interface program (String arguments[] \execution time command line parameters\ ) {& Console.write_line("Hallo, world!"); &} /meta *** hallo.pl2 *** 


рдкреАрдПрд▓ / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯ



PL / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЪрд░ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХ рд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ) рдПрдХ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

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

рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг:
 <?xml version="1.0" encoding="windows-1251"?> <pl2script> <type id="type.class.Scene" save="true"> <help id="class.Scene.help">pl2script/game/scene.htm</help> <system> <class id="class.Scene" domain="type" save="true"> <name> <ascii>Scene</ascii> <local></local> </name> <tip id="class.Scene.tip"> <ascii>Game class as a main class for a game</ascii> <local>    </local> </tip> </class> <property id="class.Scene..." domain="string" save="true"> <name> <ascii>prop ...</ascii> <local>prop ...</local> </name> <tip id="class.Scene..tip"> <ascii>tip ...</ascii> <local>  ...</local> </tip> </property> </system> </type> </pl2script> 


рд╡рд╕реНрддреБ рдХрд╛ рд╡рд┐рд╡рд░рдг:
 <?xml version="1.0" encoding="windows-1251"?> <pl2script> <scene id="game."> <name></name> <description> </description> <message>    </message> <way id="game.universe" path="Universe/index" enabled="true"></way> <way id="game.solar" path="Solar/index" enabled="true"> </way> <way id="game.earth" path="Earth/index" enabled="true"></way> <way id="game.country" path="country/index" enabled="true"> </way> <way id="game.body" path="body/index" enabled="true"> </way> <way id="game.nature" path="nature/index" enabled="true"> </way> <way id="game.school" path="school/index" enabled="true"> </way> <way id="game.plant" path="plant/index" enabled="true"> </way> <way id="game.university" path="university/index" enabled="true"> </way> </scene> </pl2script> 


рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред

рд╕рдВрджрд░реНрдн:
habrahabr.ru/post/136272 рд╕реНрдХреВрд▓ рдореЗрдВ рдкрдврд╝рддреЗ рд╕рдордп рдХреМрди рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?
habrahabr.ru/post/176243 "рд░рд╛рд╖реНрдЯреНрд░реАрдп" рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ

рдкреНрд░реЛрдЬреЗрдХреНрдЯ - github.com/palexisru/pl2_rus/wiki

INSTEAD рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рд▓реБрдЖ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдУрдИрдИ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

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


All Articles