рд▓рд▓рд┐рдд (рднрд╛рд╖рд╛рдУрдВ рдХреА рдмрд╛рддрдЪреАрдд рдкрд░)

рд╣рдо рднрд╛рд░рддреАрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ - рдЬрд╛рд╡рд╛, рд╕реНрдкреНрд░рд┐рдВрдЧ, рдЖрджрд┐ред
рд▓реЗрдХрд┐рди рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЬрд┐рдирдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдереА, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЦреБрдж рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд╣реЛрдЧрд╛ред
рдФрд░ рд╡реЗ C / C ++ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдирддреАрдЬрддрди, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ:

рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИред
рдпрд╣ Tcl рдкрд░ рдХрдорд╛рдВрдб рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред
рджреЗрд╢реА Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ (рдФрд░ JTcl рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛) (рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рднрд╛рд░рддреАрдпреЛрдВ рдиреЗ рдРрд╕рд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдерд╛)ред
рдХрдорд╛рдВрдб рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрдорд╛рдВрдб C ++ рдХреЛрдб (рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╛рд╡рд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЧреВ рд╣реИред
рд╣рд┐рдВрджреБрдУрдВ рдиреЗ JNI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛, рдФрд░ рдореИрдВрдиреЗ JNA рдореЗрдВ C рдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдпрд╛

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдХрд╛рдо рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?

рдЬрд╛рд╡рд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди (jline) рдПрдХ рд▓рд╛рдЗрди рдкрдврд╝рддреА рд╣реИ,
рдЬреЗрдПрдирдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реА (рдЯреАрд╕реАрдПрд▓ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдирд╛)
TCL рд▓рд╛рдЗрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЙрд╕рдХреА рдЖрдЬреНрдЮрд╛ рд╣реИ рдпрд╛
рдЬрд╛рд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C (рдпрджрд┐ рдХрдорд╛рдВрдб рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЧрдИ рд╣реИ)
C, JNI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЬрд╛рд╡рд╛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
JNI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ C рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЕрдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ, рддреЛ
JNA рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

рдЕрдм рднрд╛рд░рддреАрдпреЛрдВ рдХрд╛ рдХреЛрдб рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдо Tcl рдХреЛ JTcl рд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗ (рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)

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


All Articles