URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 108689
[ Назад ]

Исходное сообщение
"Kaitai Struct запустил веб-версию компилятора"

Отправлено opennews , 28-Июл-16 12:18 
Проект Kaitai Struct (http://kaitai.io/), позволяющий (https://www.opennet.me/opennews/art.shtml?num=44226) описывать бинарные форматы структур данных с помощью декларативного языка, а затем исследовать файлы с помощью визуализатора и компилировать этим описания в готовый код парсера на поддерживаемых языках программирования, запустил (http://kaitai.io/repl) веб-версию компилятора. Веб-версия компилятора работает целиком на стороне клиента (т.е. исполняется на JavaScript, а не просто отсылает код на сервер и получает готовый результат).


Благодаря технологии ScalaJS, JavaScript-версия компилятора использует тот же код, что и обычный компилятор ksc, вызываемый из командной строки. В качестве примеров в веб-версии доступны разборы форматов DOS MZ .exe, Doom .wad, пакетов IPv4, изображений GIF и архивов ZIP. В репозитарии форматов (https://github.com/kaitai-io/kaitai_struct_formats) доступны еще около десятка примеров .ksy-описаний.

URL: http://kaitai.io/repl
Новость: http://www.opennet.me/opennews/art.shtml?num=44864


Содержание

Сообщения в этом обсуждении
"Kaitai Struct запустил веб-версию компилятора"
Отправлено Аноним84701 , 28-Июл-16 13:18 
> Проект Kaitai Struct, позволяющий описывать бинарные

Как было в той новости "ожидается поддержка С и С++", так  и осталось:
---
Supported languages

Official Kaitai Struct compiler now supports compiling .ksy into source modules for the following languages:

Java
JavaScript
Python
Ruby
---


"Kaitai Struct запустил веб-версию компилятора"
Отправлено Аноним , 28-Июл-16 14:43 
Парсер бинарного формата не компилируется в сишку? Максимум ненужно.

"Kaitai Struct запустил веб-версию компилятора"
Отправлено Аноним , 28-Июл-16 17:48 
Ты не понимаешь, работа с бинарными форматами в этом скриптовом крапе редкостное порево. Особенно в JavaScript. Хотя отдельные экспонаты умудряются парсить ни много ни мало а OSM'ный PBF на стороне клиента, из яваскрипта. И даже типизированные массивы эмулируют для гуано (в основном микрософтовского) которое их не умеет.

"Kaitai Struct запустил веб-версию компилятора"
Отправлено angra , 28-Июл-16 22:37 
В таком "скриптовом крапе" как perl существуют встроенные pack/unpack. В других скриптовых языках они есть в виде либ, в том числе и для js. Так что особых проблем с парсингом бинарных форматов нет. Ну по крайней мере для тех, кто смог осилить эти функции.

"Kaitai Struct запустил веб-версию компилятора"
Отправлено GreyCat , 28-Июл-16 16:27 
Поддержка C++ - work in progress. В этой JavaScript-версии, опубликованной сегодня, она есть, как несложно убедиться, посмотрев на комбобокс выбора языков. На дня выпустим v0.4 - будет ровно такая же в обычном command line компиляторе. Другой вопрос, что там далеко не все еще работает: http://kaitai.io/ci/

"Kaitai Struct запустил веб-версию компилятора"
Отправлено Аноним , 28-Июл-16 17:53 
> Поддержка C++ - work in progress.

А просто си - не того, чтобы везде подцепить можно было? Ruby и прочий JS это замечательно, но они - вещи в себе. Их interop с остальными равен нулю. На JS не больно сделаешь библиотеку котрую потом из Ruby вызвать можно будет. Плюсы в этом плане не сильно лучше - на плюсах сделать реюзабельную из других мест библиотеку не то чтобы совсем невозможно, но - изврат и все-равно потребует использовать наружу сишные интерфейсы, потому что с плюсовыми в этом плане не задалось.


"Kaitai Struct запустил веб-версию компилятора"
Отправлено GreyCat , 28-Июл-16 20:51 
>> Поддержка C++ - work in progress.
> А просто си - не того, чтобы везде подцепить можно было? Ruby
> и прочий JS это замечательно, но они - вещи в себе.
> Их interop с остальными равен нулю.

Да проблема в том, что с C interop по таким вопросам тоже сам по себе никому не нужен. Ну, будет какая-то штука, которая умеет парсить входящий поток и раскладывать по struct'ам в памяти - дальше-то что? Для подключения такого в любой другой язык по сути придется вручную переописать эти структуры на этом языке - а какой в этом смысл, если суть проекта как раз в том, чтобы не делать этого, а получить готовый результат на любом языке?

Кроме того, с чистым C на самом деле есть несколько принципиальных вопросов: например, там будет совсем ручной memory management (и разным потребителям он нужен иногда сильно разный), или, например, это будет первый язык, который не укладывается в концепцию "все можно сделать выражением".


"Kaitai Struct запустил веб-версию компилятора"
Отправлено _ , 28-Июл-16 17:12 
На сайте первые две строки в дроп-боксе выбора языка - cpp_stl и csharp  ...
А ты - Ъ?

"Kaitai Struct запустил веб-версию компилятора"
Отправлено Аноним84701 , 28-Июл-16 18:23 
>> поддержка С и С++
> На сайте первые две строки в дроп-боксе выбора языка - cpp_stl и csharp
> csharp

Казалось бы, причем тут шарп?
Хотя да, мне интересно было бы для сей, а вот про плюсы с той новости я скопипастил возможно зря.


> На сайте первые две строки в дроп-боксе выбора языка

На главном сайте:
---     
Language-neutral: write once, use in all supported languages:

Java
JavaScript
Python
Ruby
---
А копипастил вообще с  гитхаба (с которого и брал информацию, т.к. мало ли что может не попасть на основной):
https://github.com/kaitai-io/kaitai_struct

> А ты - Ъ?

Не, куда уж мне до си-шарповиков (


"Kaitai Struct запустил веб-версию компилятора"
Отправлено Аноним , 28-Июл-16 20:32 
C++ STD для моральных  … реверсеров!