Kaitai Struct 0.9

CовсСм Π½Π΅Π΄Π°Π²Π½ΠΎ Π²Ρ‹ΡˆΠ»Π° очСрСдная вСрсия Kaitai Struct 0.9 β€” языка описания ΠΈ инструмСнтария парсинга всСвозмоТных Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сСтСвых ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ„Π°ΠΉΠ»ΠΎΠ² с изобраТСниями/Π°ΡƒΠ΄ΠΈΠΎ/Π²ΠΈΠ΄Π΅ΠΎ, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ², ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Ρ‚. Π΄.). НСсмотря Π½Π° Π½Π΅ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ выглядящий Π½ΠΎΠΌΠ΅Ρ€ вСрсии 0.9 β€” это ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π° послСдниС 2.5 Π³ΠΎΠ΄Π°. Π—Π° это врСмя язык вырос Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ сСмСйства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²:

Π―Π·Ρ‹ΠΊ ΠΏΡ€ΠΈΠ·Π½Π°Π½ GitHub ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСйчас Π² Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ 400 free / open source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… для парсинга всСвозмоТных экзотичСских Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, начиная ΠΎΡ‚ рСвСрс-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€, кончая Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² связи спутников.

Из основных Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π² языка 0.9 стоит Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ:

  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… языков (Python Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Construct, Nim, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² HTML)
  • ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ соврСмСнных C++ (smart pointers, отсутствиС нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, исправлСниС всСх извСстных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти)
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ адрСсации Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· синтаксис Π²ΠΈΠ΄Π° foo::bar::baz
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ описанным условиям (valid)
  • вычислСниС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² статичСских структур Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°ΠΉΡ‚Π°Ρ… ΠΈ Π±ΠΈΡ‚Π°Ρ… (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ sizeof ΠΈ bitsizeof)
  • Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС языка Π² Π²ΠΈΠ΄Π΅ JSON-схСмы, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ гСнСрируСтся докумСнтация

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru