ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° програмскиот јазик Lua 5.4

По ΠΏΠ΅Ρ‚ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Π²ΠΎΡ˜ достапни ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ Π›ΡƒΠ° 5.4, Π±Ρ€Π· ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ програмски јазик Π·Π° ΡΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°ΡšΠ΅ кој Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ користСн ΠΊΠ°ΠΊΠΎ Π²Π³Ρ€Π°Π΄Π΅Π½ јазик (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΈΠ»ΠΈ ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ СкстСнзии). ΠšΠΎΠ΄ΠΎΡ‚ Π½Π° Ρ‚ΠΎΠ»ΠΊΡƒΠ²Π°Ρ‡ΠΎΡ‚ Lua Π΅ напишан Π²ΠΎ C ΠΈ дистрибуирани ΠΎΠ΄ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° MIT.

Π›ΡƒΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Сдноставна ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Π»Π½Π° синтакса со моќни моТности Π·Π° опис Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΏΡ€Π΅ΠΊΡƒ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Π°ΡΠΎΡ†ΠΈΡ˜Π°Ρ‚ΠΈΠ²Π½ΠΈ Π½ΠΈΠ·ΠΈ ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ€Π»ΠΈΠ²Π° сСмантика Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚. Π›ΡƒΠ° користи Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ˜ΡœΠΈ Ρ˜Π°Π·ΠΈΡ‡Π½ΠΈ конструкции Π²ΠΎ Π±Π°Ρ˜Ρ‚Π΅ΠΊΠΎΠ΄ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π²Ρ€Π²ΠΎΡ‚ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° рСгистри со автоматско ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ Ρ“ΡƒΠ±Ρ€Π΅. Π‘Π°ΠΌΠΈΠΎΡ‚ ΠΏΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°Ρ‡ Π΅ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ ΠΊΠ°ΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° која лСсно ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° C ΠΈ C++ Ρ˜Π°Π·ΠΈΡ†ΠΈΡ‚Π΅.

Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π΅ Π½ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Ρ“ΡƒΠ±Ρ€Π΅ΡŸΠΈΡ˜Π° - β€œΠ³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡΠΊΠ°β€œ, ΡˆΡ‚ΠΎ Π³ΠΎ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΠΈ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ достапниот Ρ€Π΅ΠΆΠΈΠΌ Π·Π° постСпСно ΡΠΎΠ±ΠΈΡ€Π°ΡšΠ΅ Ρ“ΡƒΠ±Ρ€Π΅. Новиот Ρ€Π΅ΠΆΠΈΠΌ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° почСсто водСњС Π½Π° скратСно ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€Π°ΡšΠ΅, ΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ˜ΡœΠΈ само Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° создадСни ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ. ЦСлосно ΠΏΡ€Π΅ΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ситС ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ сС Π²Ρ€ΡˆΠΈ само Π°ΠΊΠΎ, ΠΏΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ‚Ρ€Π°Π²Π΅Ρ€ΡΠΈΡ€Π°ΡšΠ΅, Π½Π΅ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС постигнС саканата ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°. Овој пристап Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° постигнСтС повисоки пСрформанси ΠΈ Π΄Π° ја Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΊΠΎΠ³Π° складиратС Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΈ ΡˆΡ‚ΠΎ ΠΆΠΈΠ²Π΅Π°Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ способност Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° константни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ со Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ β€žconstβ€œ. Π’Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π΄ΠΎΠ΄Π΅Π»Π°Ρ‚ само Сднаш ΠΈ, ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π°Ρ‚, Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½Π°Ρ‚.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ "Π΄Π° сС Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ", ΠΊΠΎΠΈ сС Π΄ΠΎΠ΄Π΅Π»Π΅Π½ΠΈ со помош Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ "close" ΠΈ Π»ΠΈΡ‡Π°Ρ‚ Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (со Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ const), ΠΊΠΎΠΈ сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ Π½ΠΈΠ² ΠΏΠΎ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ врСдноста Π΅ Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π° (сС ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ "__close") сСкогаш ΠΊΠΎΠ³Π° ќС Π³ΠΎ Π½Π°ΠΏΡƒΡˆΡ‚ΠΈ опсСгот, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ Π·Π°Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΎΡ‚, Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π° со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΡ€Π΅ΠΊΠΈΠ½/одСњС/Π²Ρ€Π°ΡœΠ°ΡšΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·Π»Π΅Π· ΠΊΠΎΠ³Π° ќС сС појави Π³Ρ€Π΅ΡˆΠΊΠ°.
  • Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ "кориснички ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈβ€ž, која ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° моТност Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ C Π²ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ Lua (прСтставува Π±Π»ΠΎΠΊ ΠΎΠ΄ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΠΈΠ»ΠΈ содрТи C ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡), сСга ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ врСдности (ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΌΠ΅Ρ‚Π°Ρ‚Π°Π±Π΅Π»ΠΈ).
  • ΠŸΡ€Π΅Ρ‚ΡΡ‚Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡƒΡ‡Π°Ρ˜Π½ΠΈ Π±Ρ€ΠΎΠ΅Π²ΠΈ - math.random.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ систСм Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ° ΠΊΠΎΠΈ сС ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈ ΠΈ, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅, Π½Π΅ Π²Π»ΠΈΡ˜Π°Π°Ρ‚ Π½Π° ΠΏΠΎΠ½Π°Ρ‚Π°ΠΌΠΎΡˆΠ½ΠΎΡ‚ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅ Π·Π° функцискитС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ врСдности.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° сСмантика Π·Π° Π½Π°Π±Ρ€ΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ†Π΅Π»ΠΈ Π±Ρ€ΠΎΠ΅Π²ΠΈ Π²ΠΎ јамки "Π·Π°β€œ. Π‘Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΡšΠ° сС прСсмСтува ΠΏΡ€Π΅Π΄ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ циклусот, со ΡˆΡ‚ΠΎ сС ΠΈΠ·Π±Π΅Π³Π½ΡƒΠ²Π° ΠΏΡ€Π΅Π»Π΅Π²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° ΠΈ Π²Ρ€Ρ‚Π΅ΡšΠ΅. Ако ΠΏΠΎΡ‡Π΅Ρ‚Π½Π°Ρ‚Π° врСдност Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° ΠΎΠ΄ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° врСдност, сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Π³Ρ€Π΅ΡˆΠΊΠ°.
  • Π’ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° 'Π½ΠΈΠ·Π°.gmatchΠ”ΠΎΠ΄Π°Π΄Π΅ Π½ΠΎΠ² ΠΈΠ·Π±ΠΎΡ€Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€žinitβ€œ, кој ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° Π½Π° која ΠΏΠΎΠ·ΠΈΡ†ΠΈΡ˜Π° Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ (стандардно, ΠΎΠ΄ 1 Π·Π½Π°ΠΊ).
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ сС Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 'lua_resetthread' (ја рСсСтира Π½ΠΈΠ·Π°Ρ‚Π°, Π³ΠΎ Π±Ρ€ΠΈΡˆΠ΅ Ρ†Π΅Π»ΠΈΠΎΡ‚ ΠΊΡƒΠΏ ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΈ Π³ΠΈ Π·Π°Ρ‚Π²ΠΎΡ€Π° ситС ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ β€žΠ·Π° Π·Π°Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅β€œ) ΠΈ β€žΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½.Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ' (ја Π·Π°Ρ‚Π²ΠΎΡ€Π° ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Π°Ρ‚Π° ΠΈ ситС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ β€žΠ΄Π° сС Π·Π°Ρ‚Π²ΠΎΡ€Π°Ρ‚β€œ).
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π½ΠΈΠ·ΠΈ Π²ΠΎ Π±Ρ€ΠΎΠ΅Π²ΠΈ сС прСмСстСни Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° β€žΡΡ‚Ρ€ΠΈΠ½Π³β€œ.
  • ΠŸΠΎΠ²ΠΈΡ†ΠΈΡ‚Π΅ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° распрСдСлба Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° сСга ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ успСат Π°ΠΊΠΎ сС Π½Π°ΠΌΠ°Π»ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° мСморискиот Π±Π»ΠΎΠΊ.
  • Π’ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° 'Π½ΠΈΠ·Π°.Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π”ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° спСцификаторот Π½Π° Π½ΠΎΠ²ΠΈΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ β€ž%pβ€œ (ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΎΡ‚ Π²Ρ€Π°Ρ‚Π΅Π½ ΠΎΠ΄ lua_topointer).
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° utf8 ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° ΡˆΠΈΡ„Ρ€ΠΈ Π½Π° Π·Π½Π°Ρ†ΠΈ со Π±Ρ€ΠΎΠ΅Π²ΠΈ Π΄ΠΎ 2^31.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€